你不可能在我的軟件中找到哪怕一個重復(fù)的代碼塊角寸!--擼碼的最低標(biāo)準(zhǔn)

前言

最近在對公司的一個已有客戶端進行bug的修復(fù)以及功能的擴展開發(fā)。很不愉悅的一件事情是死相,當(dāng)看到一個很小很小的bug融求,例如Label的背景顯示出問題了,Label的字體大小不符合文檔要求算撮,我們最直接的想法應(yīng)該就是找到這個Label的相關(guān)代碼段生宛,進行一兩處代碼的修改應(yīng)該就能簡單完事了县昂。然而就是這么簡單的bug,我至少修改了十幾處代碼陷舅!十幾處倒彰!十幾次啊@痴觥4洹(重要的事情講三遍!)原因是什么呢仰剿?無疑是代碼抽象層次太低创淡,復(fù)制粘貼代碼太多!太多南吮!太多了琳彩!

淺談軟件體系結(jié)構(gòu)與軟件設(shè)計模式

在《軟件體系與設(shè)計》一書中,軟件體系結(jié)構(gòu)定義如下:軟件體系結(jié)構(gòu)意指“軟件的整體結(jié)構(gòu)和這種結(jié)構(gòu)為系統(tǒng)提供概念完整性的方式”部凑;設(shè)計模式定義如下:設(shè)計模式描述了在某一個特定場景與可能影響模式應(yīng)用和使用方式的“影響力”中解決某個特定設(shè)計問題的設(shè)計結(jié)構(gòu)汁针。眾所周知的,當(dāng)下常用的設(shè)計模式有MVC砚尽,MVVM,MVP等辉词,MVC已經(jīng)是個老生常談的設(shè)計模式了必孤,現(xiàn)在也在逐步被其他設(shè)計模式,例如MVVM瑞躺,MVP所替代敷搪。這幾個設(shè)計模式具體是什么,有什么不同幢哨,我就不說了赡勘,谷歌,百度一下捞镰,一搜會有一大堆的文章介紹這些模式闸与,畢竟是當(dāng)下流行的東西。各位看客在這里只需要簡單知道岸售,雖然軟件的規(guī)模越來越大践樱,程序越來越復(fù)雜,MVC已經(jīng)不能滿足要求了凸丸,為了進一步降低耦合度拷邢,開發(fā)出更加高質(zhì)量的程序就不能再繼續(xù)使用老牌的MVC了。一個良好的設(shè)計模式屎慢,可以有利于我們開發(fā)出結(jié)構(gòu)清晰瞭稼,后期利于長期維護以及功能擴展的軟件忽洛,也有利于在開發(fā)過程中快速構(gòu)建開發(fā)軟件。

模塊化

除了要有良好開發(fā)模式环肘,另外一個不得不談的就是模塊化欲虚。所謂模塊化,可以理解化一個簡單的構(gòu)件廷臼,這個構(gòu)件可以是一個圖形的組件苍在,或者一個處理數(shù)據(jù)邏輯的單元。比如一個圖片輪詢播放的組件荠商,或者是一個處理網(wǎng)絡(luò)請求的庫寂恬。最簡單的理解應(yīng)該是模塊與模塊之間應(yīng)該是相互獨立,信息隱蔽莱没,高聚合度初肉,低耦合度,只通過簡單接口進行交互的饰躲。

抽象

要想模塊化就必須要學(xué)會抽象牙咏。一個抽象可以簡單理解為只單純負(fù)責(zé)處理一件事情的方法、類或者過程函數(shù)嘹裂。一個理解抽象時機的簡單方法是妄壶,如果你在寫代碼的時候還在使用復(fù)制粘貼,或者還在一處又一處的碼著重復(fù)的代碼寄狼,那么你就該思考一下你有沒有必要把重復(fù)的地方抽象成一個函數(shù)丁寄,或者一個類了。

最后一言

不要復(fù)制粘貼代碼泊愧!不要復(fù)制粘貼代碼伊磺!不要復(fù)制粘貼代碼!即使你學(xué)不會什么是模塊化删咱,什么是設(shè)計模式屑埋,什么是軟件體系結(jié)構(gòu),起碼也要懂得起碼那么一丁點的抽象好么L底獭摘能!請不要做一個耿直的把代碼擼了一遍又一遍的人!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末敲街,一起剝皮案震驚了整個濱河市徊哑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聪富,老刑警劉巖莺丑,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡梢莽,警方通過查閱死者的電腦和手機萧豆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昏名,“玉大人涮雷,你說我怎么就攤上這事∏峋郑” “怎么了洪鸭?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長仑扑。 經(jīng)常有香客問我览爵,道長,這世上最難降的妖魔是什么镇饮? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任蜓竹,我火速辦了婚禮,結(jié)果婚禮上储藐,老公的妹妹穿的比我還像新娘俱济。我一直安慰自己,他們只是感情好钙勃,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布蛛碌。 她就那樣靜靜地躺著,像睡著了一般辖源。 火紅的嫁衣襯著肌膚如雪左医。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天同木,我揣著相機與錄音,去河邊找鬼跛十。 笑死彤路,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芥映。 我是一名探鬼主播洲尊,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奈偏!你這毒婦竟也來了坞嘀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤惊来,失蹤者是張志新(化名)和其女友劉穎丽涩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡矢渊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年继准,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矮男。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡移必,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出毡鉴,到底是詐尸還是另有隱情崔泵,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布猪瞬,位于F島的核電站憎瘸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏撑螺。R本人自食惡果不足惜含思,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甘晤。 院中可真熱鬧含潘,春花似錦、人聲如沸线婚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽塞弊。三九已至漱逸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間游沿,已是汗流浹背饰抒。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诀黍,地道東北人袋坑。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像眯勾,于是被迫代替她去往敵國和親枣宫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

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