本文摘自造成代碼難以維護(hù)的35個惡習(xí)狠半,英文原版是Avoid these 35 habits that lead to unmaintainable code
噩死。
代碼組織##
- 總是說“一會兒弄好”颤难,但從來不兌現(xiàn)。(缺乏任務(wù)管理和時間管理能力)
- 堅(jiān)持所謂的高效已维、優(yōu)雅的“一行代碼流”行嗤,事實(shí)上,可讀性才是最重要的垛耳,聰明是第二位的栅屏。
- 無意義的優(yōu)化。(類似網(wǎng)頁大小之類的優(yōu)化最后再做)堂鲜。
- 不注重代碼樣式和風(fēng)格的嚴(yán)謹(jǐn)栈雳。
- 使用無意義的命名。
- 忽略經(jīng)過驗(yàn)證的最佳實(shí)踐(例如代碼審核缔莲、TDD甫恩、QA、自動化部署等酌予,推薦閱讀軟件開發(fā)必讀經(jīng)典著作:Making Software:What Really Works磺箕,and Why We Believe It)。
- 給自己埋雷抛虫。(例如使用不會報錯的庫或者忽略例外)
團(tuán)隊(duì)工作##
- 過早放棄計(jì)劃松靡。
- 堅(jiān)持一個無效的計(jì)劃。
- 總是喜歡單打獨(dú)斗建椰。(必須強(qiáng)迫自己與團(tuán)隊(duì)分享進(jìn)度和想法雕欺,避免錯覺,提高效率)
- 拒絕書寫糟糕的代碼棉姐。(日程緊迫的時候可以寫一些“糟糕”的代碼屠列,這是程序員的能力而不是bug,當(dāng)然有時間的時候一定要回頭償還“技術(shù)債”)
- 抱怨他人伞矩。
- 不與團(tuán)隊(duì)分享所學(xué)笛洛。
- 向主管/客戶反饋的速度過慢。
- 不會充分利用Google乃坤。
- 著重個人編碼風(fēng)格苛让。
- 帶著個人情緒看待他人對自己代碼的評論和注釋。
寫代碼##
- 不懂優(yōu)化策略湿诊。
- 使用錯誤的工具狱杰。
- 不追求對開發(fā)工具和IDE的精熟。
- 忽略報錯信息厅须。
- 迷戀趁手的開發(fā)工具仿畸。(不同類型的開發(fā)任務(wù)需要匹配對應(yīng)的最佳開發(fā)工具,例如Sublime適合動態(tài)語言,而Eclipse適合Java错沽,如果你喜歡vim或EMACS簿晓,并不意味著能用這些工具干所有事)
- 不注重代碼中復(fù)制的可適配性。(不養(yǎng)成把代碼中的活動部件分離出來的習(xí)慣甥捺,會導(dǎo)致技術(shù)債暴增)
- 喜歡重新發(fā)明車輪抢蚀。
- 盲目地剪切/粘貼代碼镀层。
- 應(yīng)付差事镰禾,不求甚解,不花時間搞清楚項(xiàng)目運(yùn)作的機(jī)理唱逢。
- 對自己寫的代碼過度自信吴侦。
- 不去考慮每一個設(shè)計(jì)、方案或者代碼庫的“副作用”坞古。(一個成功的用例并不意味著“萬能藥”)
- 在一個地方卡住了但堅(jiān)持不呼救备韧。
測試與維護(hù)##
- 只去寫能通過的測試。
- 重要項(xiàng)目中忽略性能測試痪枫。
- 不去核實(shí)代碼是否真的可用织堂,沒有養(yǎng)成開發(fā)中及時快速測試的習(xí)慣。
- 重大改動延遲推送奶陈。
- 拋棄和逃避自己的代碼易阳。
- 忽略其他非功能性需求。(例如安全和性能吃粒,準(zhǔn)備一份這方面的清單潦俺,忽略這些會毀掉你所有成果)