優(yōu)雅編程之這樣編寫代碼杂数,你就“正惩鹌瑁”了(十五)

開心一笑

【昨天晚上我做了一個夢:上帝告訴我,我今生注定孤獨(dú)揍移。破解的方法只有給十個傻子發(fā)短消息次和。我當(dāng)時就哭了:天哪,我只認(rèn)識你一個那伐,我完了踏施。】

提出問題

項(xiàng)目開發(fā)中編寫代碼需要注意的一些習(xí)慣罕邀?畅形??

解決問題

勵志圖片

解耦與得墨忒耳法則

編寫羞怯代碼

把你的代碼組織成最小單元(模塊),并限制它們的交互诉探。

好籬笆促成好鄰居

建好方法之間的籬笆束亏,不要讓它們相互影響。

墨忒耳法則規(guī)定:某個對象的任何方法都應(yīng)該只調(diào)用屬于以下情況的方法:

  • 這個對象自己擁有的方法阵具;
  • 傳入該方法的參數(shù)的方法碍遍;
  • 該方法創(chuàng)建的對象的方法;
  • 該對象直接擁有的對象的方法阳液;

墨忒耳法則使任何給定程序中的模塊之間的耦合減至最少怕敬。

編寫極可能遵守的墨忒爾法則的代碼。

例如:

class A{
    private B b = new B();
    private void methodE(){}
    public void methodA(C c){
        D d = new D();
        methodE(); //1這個對象自己擁有的方法帘皿,可調(diào)用 
        c.print(); //2傳入該方法的參數(shù)的方法东跪,可調(diào)用 
        d.invert(); //3該方法創(chuàng)建的對象的方法,可調(diào)用 
        b.kill(); //4該對象直接擁有的對象的方法鹰溜,可調(diào)用 
        F f = b.getF();
        f.rock(); //該對象依賴對象的實(shí)現(xiàn)的模塊虽填,不可調(diào)用。
    }
}

元程序設(shè)計(jì)

再好的天才也無法勝過對細(xì)節(jié)的專注

我們可以讓我們的代碼變得高度可配置和“軟和”曹动,也就是容易適應(yīng)變化 斋日。

要配置,不要集成

目標(biāo)就是把我們的系統(tǒng)變得高度可配置墓陈,諸如算法恶守,數(shù)據(jù)庫產(chǎn)品第献,界面風(fēng)格之類都作為配置選項(xiàng)供選擇配置。

將抽象放進(jìn)代碼兔港,細(xì)節(jié)放進(jìn)元數(shù)據(jù)

元數(shù)據(jù)(metadata)是關(guān)于數(shù)據(jù)的數(shù)據(jù)庸毫,是對任何對應(yīng)用進(jìn)行描述的數(shù)據(jù)。最常見的例子可能是數(shù)據(jù)庫schema或數(shù)據(jù)字典衫樊。

不要讓你的項(xiàng)目(或你的職業(yè)生涯)走上渡渡鳥的道路(毛里求斯島上的渡渡鳥不能適應(yīng)人類和他們的家畜的出現(xiàn)飒赃,很久就滅絕了。這是人類記載的第一起物種滅絕)

時間耦合

時間是軟件架構(gòu)的一個常常被忽視的方面科侈。

時間有兩個方面對我們很重要:并發(fā)(事情在同一時間發(fā)生)和次序(事情在時間中的相對位置)

我們需要容許并發(fā)盒揉,并考慮解除任何時間或次序上的依賴

分析工作流,以改善并發(fā)性

總是為并發(fā)進(jìn)行設(shè)計(jì)

在設(shè)計(jì)時考慮了并發(fā)兑徘,到時我們就可以更容易地滿足可伸縮性或性能需求刚盈。

用服務(wù)進(jìn)行設(shè)計(jì)

我們需要的不是組件,而是服務(wù)挂脑,位于定義良好的藕漱、一致的接口之后的獨(dú)立開發(fā)的對象。

它只是視圖

不要把程序?qū)懗梢粋€大塊崭闲,應(yīng)該”分而治之“肋联,把程序劃分成模塊。

模塊的一個好定義就是刁俭,它具有單一的橄仍、定義良好的責(zé)任。

使視圖與模型分離

其實(shí)就是MVC設(shè)計(jì)模式的核心思想牍戚。

黑板

黑板系統(tǒng)讓我們完全解除了我們的對象之間的耦合侮繁,并提供了一個”論壇“,知識消費(fèi)者和生產(chǎn)者可以在哪里匿名如孝、異步地交換數(shù)據(jù)宪哩,還能減少我們必須編寫的代碼的數(shù)量。

可以用黑板協(xié)調(diào)完全不同的事實(shí)和因素第晰,同時又使各個參與方保持獨(dú)立锁孟、甚至隔離。

讀書感悟

來自林白《一個人的戰(zhàn)爭》

  • 一個人的戰(zhàn)爭意味著一個巴掌自己拍自己茁瘦,一面墻自己擋住自己品抽,一朵花自己毀滅自己,一個人的戰(zhàn)爭意味一個女人自己嫁自己甜熔。
  • 人生的確像一場夢圆恤,無數(shù)的影像從眼前經(jīng)過,然后消失了纺非,永遠(yuǎn)不再回來哑了,你不能確定是不是真正經(jīng)歷過了某些事情。
  • 多米自我總結(jié)說:“當(dāng)初我是不是真正愛過烧颖?我愛的是不是他弱左?我想我根本沒有愛他,我愛的其實(shí)是自己的愛情炕淮,在長期平淡單調(diào)的生活中拆火,我的愛情是一些來自自身的虛擬火焰,我愛的真實(shí)這些火焰涂圆∶蔷担”

其他

如果有帶給你一絲絲小快樂,就讓快樂繼續(xù)傳遞下去润歉,歡迎轉(zhuǎn)載模狭,點(diǎn)贊,頂踩衩,歡迎留下寶貴的意見嚼鹉,多謝支持!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末驱富,一起剝皮案震驚了整個濱河市锚赤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌褐鸥,老刑警劉巖线脚,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異叫榕,居然都是意外死亡浑侥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門晰绎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锭吨,“玉大人,你說我怎么就攤上這事寒匙×闳纾” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵锄弱,是天一觀的道長考蕾。 經(jīng)常有香客問我,道長会宪,這世上最難降的妖魔是什么肖卧? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮掸鹅,結(jié)果婚禮上塞帐,老公的妹妹穿的比我還像新娘拦赠。我一直安慰自己,他們只是感情好葵姥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布荷鼠。 她就那樣靜靜地躺著,像睡著了一般榔幸。 火紅的嫁衣襯著肌膚如雪允乐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天削咆,我揣著相機(jī)與錄音牍疏,去河邊找鬼。 笑死拨齐,一個胖子當(dāng)著我的面吹牛鳞陨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瞻惋,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼炊邦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了熟史?” 一聲冷哼從身側(cè)響起馁害,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蹂匹,沒想到半個月后碘菜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡限寞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年忍啸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片履植。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡计雌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玫霎,到底是詐尸還是另有隱情凿滤,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布庶近,位于F島的核電站翁脆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鼻种。R本人自食惡果不足惜反番,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罢缸,春花似錦篙贸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至养铸,卻和暖如春雁芙,著一層夾襖步出監(jiān)牢的瞬間轧膘,已是汗流浹背钞螟。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谎碍,地道東北人鳞滨。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像蟆淀,于是被迫代替她去往敵國和親拯啦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,152評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理熔任,服務(wù)發(fā)現(xiàn)褒链,斷路器,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 大家好疑苔,我是Bill甫匹。 今天想和大家談?wù)勎覟槭裁撮_簡書,目的非常簡單惦费,就是想通過寫來鍛煉自己的思維兵迅。 大家知道,我...
    二十少閱讀 308評論 0 5
  • 把過往塞進(jìn)船艙 供奉起父親的靈位啟航 我溯江而上 從渾水里網(wǎng)出魚 在江風(fēng)刺殺情欲的夜里 低語向它問我的生命 我身體...
    Joker橙小K閱讀 293評論 4 5
  • 今年是一級消防師資格考試開考的第三年。為了不讓自己有時間能空下來瞧省,雖然身為一枚理工白癡扯夭,還是毫不猶豫的報(bào)了名。 交...
    鑫悅閣閱讀 706評論 1 3