Ruby七日談.第二夜—面向對象

不覺春消散得這般快馏段,下午出去掃個尾轩拨,臨河樟樹上一躺、跟著歌哼哼唧唧院喜,旁邊的鳥兒也是亡蓉。還有許多松鼠穿來蕩去。微風一來够坐,似夢似醉寸宵。

心里念著,有酒的神仙也不過如此吧元咙。作為一只JAVA猿,在不寫程序的時光里巫员,生活簡簡單單庶香,虛度得如此美好。

但程序的世界雜念太多简识,以致背離了美的初衷赶掖。今夜我要談—面—向—對—象!我不喜歡它七扰,以Ruby之名奢赂。

喬布斯在90年代的一個電視節(jié)目里曾談到面向對象,舉了個咖啡的例子颈走。從前的程序需要知道一杯摩卡的每個制作細節(jié)膳灶,親自制作;而面向對象立由,僅需走進咖啡館轧钓、沖著漂亮的女服務員、“嗨?一杯摩卡”锐膜。

雖然喬布斯寫程序沒我厲害毕箍,但不可否認這個栗子很好。wikipedia關于OOP的首句畫風卻是這樣:
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes and code, in the form of procedures, often known as methods.

不明覺厲道盏!下午我躺在樹上一陣微風而柑、沁人心脾文捶。但在嘈雜的咖啡館,經(jīng)常旁邊坐著一堆發(fā)際線明顯的年青人媒咳,有的大叫拄轻、有的臉紅,混亂之中好不容易才辨識了一句“面向對象就是封裝伟葫、繼承恨搓、多態(tài)”。

很多程序猿入行起就被強行灌入了很多高大尚的酒筏养,醉了便再也不醒人事斧抱。也忘記了像喬布斯那樣說人話,我寧愿記起前臺那身材正點的妹紙渐溶。

面向對象辉浦,精髓更多是面向漂亮的女孩子,而不是像SOLID原則這樣生硬的花招茎辐。Spring團隊花了很多年才將“控制反轉”換成了“依賴注入”宪郊,雖然技術實現(xiàn)都一樣、但忽略了問題的本質拖陆。

很多程序猿愛分析xx的原理弛槐,但對xx所解決的問題、卻理解不深依啰。工作實踐上做系統(tǒng)設計乎串,解決方案從來都有N種,跟據(jù)所面臨的問題來擇其優(yōu)劣速警。

OOP將復雜的世界解藕成對象和關系叹誉,關系更加重要點,就像人跟社會闷旧、社會更重要一樣长豁。OOP就像交易的契約、通行貨幣忙灼,是對服務的承諾匠襟。以物易物,我養(yǎng)牛的不需要種小麥缀棍,拿錢交易宅此。

軟件設計思想是沒有邊界,但語言從來都有爬范。

作為Rubyer父腕,我深知Java是有罪的,在面向對象方面青瀑,因為它很庸腫璧亮,繼承萧诫、抽象、還有死版的接口枝嘶。繼承是很糟糕的一套帘饶,好在GO已經(jīng)沒有繼承機制。Object-C曾經(jīng)必有.h和.m來分別定義interface和實現(xiàn)群扶,幸運的是Swift把它干掉了及刻。

Ruby的迷人在于它有很多很多方式叫人爽,無論從哪偷來的竞阐。首先一種是“Duck Typing"缴饭,英雄莫問出處,你只要叫的像只鴨子骆莹、走得像只鴨子颗搂,即便是個人、但在我心中永遠都是只鴨子幕垦。

In Ruby, we rely less on the type (or class) of an object and more on its capabilities. Hence, Duck Typing means an object type is defined by what it can do, not by what it is. Duck Typing refers to the tendency of Ruby to be less concerned with the class of an object and more concerned with what methods can be called on it and what operations can be performed on it. In Ruby, we would use respond_to? or might simply pass an object to a method and know that an exception will be raised if it is used inappropriately.

代碼不會思考丢氢,但人會。優(yōu)秀的語言不關心咖啡小妹是長腿的還是胸大的先改,它關注的應該是能為我提供咖啡的服務疚察。Ruby天然萌。

還有更酷的武器讓很多程序語言哭暈在廁所盏道。我曾做一個特別惡心的需求稍浆,那年還很年青,產(chǎn)品姐姐說就照著xx那樣做猜嘱,于是把那個業(yè)務線的代碼copy過來,過程疼得就像連根拔起一棵大樹嫁艇,涉及10來個類朗伶,我需要的僅是那200行不到的功能。

這是個很悲傷的故事步咪。因為它亂用了繼承论皆,像蜘蛛網(wǎng)一樣牽一發(fā)而動全身。Ruby有include猾漫,帶組合的味道点晴。

module ModuleA
def greet
puts 'hello world'
end
end

module ModuleB
include ModuleA
end

ModuleB.new.greet

hello, world!非常美妙悯周,就像下午那陣微風粒督、浮動著靜靜的河水,令人懷念禽翼。我躺在樹上酣睡了半天屠橄,樹下路過個小女孩族跛,就像發(fā)現(xiàn)新大陸一樣沖著媽媽尖叫,“看锐墙,有大叔在樹上睡覺礁哄。”

也許我老了溪北,不再年青桐绒,卻更懂時間。曾經(jīng)在風景里瞎逛之拨,今天在風景的樹上一躺茉继,也成了風景本身。我不是在嘲笑Java敦锌、也無意亂噴什么馒疹,而是真愛自由、開放乙墙、包容的Ruby颖变。

2016/04/17
于上海

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市听想,隨后出現(xiàn)的幾起案子腥刹,更是在濱河造成了極大的恐慌,老刑警劉巖汉买,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衔峰,死亡現(xiàn)場離奇詭異,居然都是意外死亡蛙粘,警方通過查閱死者的電腦和手機垫卤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來出牧,“玉大人久橙,你說我怎么就攤上這事中贝〔芭猓” “怎么了镀首?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長伯复。 經(jīng)常有香客問我慨代,道長,這世上最難降的妖魔是什么啸如? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任侍匙,我火速辦了婚禮,結果婚禮上组底,老公的妹妹穿的比我還像新娘丈积。我一直安慰自己筐骇,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布江滨。 她就那樣靜靜地躺著铛纬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唬滑。 梳的紋絲不亂的頭發(fā)上告唆,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音晶密,去河邊找鬼擒悬。 笑死,一個胖子當著我的面吹牛稻艰,可吹牛的內容都是我干的懂牧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尊勿,長吁一口氣:“原來是場噩夢啊……” “哼僧凤!你這毒婦竟也來了?” 一聲冷哼從身側響起元扔,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤躯保,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后澎语,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體途事,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年擅羞,在試婚紗的時候發(fā)現(xiàn)自己被綠了尸变。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡减俏,死狀恐怖振惰,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情垄懂,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布痛垛,位于F島的核電站草慧,受9級特大地震影響,放射性物質發(fā)生泄漏匙头。R本人自食惡果不足惜漫谷,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蹂析。 院中可真熱鬧舔示,春花似錦碟婆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至俺祠,卻和暖如春公给,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蜘渣。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工淌铐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔫缸。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓腿准,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拾碌。 傳聞我的和親對象是個殘疾皇子吐葱,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容

  • Awesome Ruby Toolbox Awesome A collection of awesome Ruby...
    debbbbie閱讀 2,877評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)倦沧,斷路器唇撬,智...
    卡卡羅2017閱讀 134,660評論 18 139
  • 當英雄老了 當世界不再需要他們了 當科技發(fā)展到可以人為制造替代他們了 等待他們的 或許只有死亡了 因為他們被視為不...
    chason_yong閱讀 432評論 0 0
  • 相逢是首歌, 與親人相逢像是在春天里 有著和煦的陽光展融,鼓舞的動力 還有肥沃的土壤窖认,支持的欣慰 讓我茁壯成長! 相逢...
    梁采文閱讀 345評論 0 0
  • 夏日將至告希,抓住春的尾巴扑浸,到洛陽相遇牡丹 圖片拍攝于 洛陽國際牡丹園 手機拍攝未修圖,器材iphone 7 plus
    亦木竹夭閱讀 247評論 0 0