開心一笑
【昨天晚上我做了一個夢:上帝告訴我,我今生注定孤獨(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)贊,頂踩衩,歡迎留下寶貴的意見嚼鹉,多謝支持!