《人月神話》出版以來,IT行業的科技公司們一直苦苦追尋傳說中以一當十的超級程序員,最新的研究表明確實存在這樣一小撮效率奇高的“程序金剛”,但是如何從一位普通程序猿如何能夠蛻變成金剛呢?
近日web開發專家Christian Maioli總結了導致程序猿效率低下,代碼像意大利面條一樣難以維護的35條惡習(歸為代碼組織、團隊工作、寫代碼、測試與維護四大類)。
代碼組織
1.總是說“一會弄好”,但從來不兌現。(缺乏任務管理和時間管理能力)
2.堅持所謂的高效、優雅的“一行代碼流”,事實上,可讀性才是最重要的,聰明是第二位的。
3.無意義的優化。(類似網頁大小之類的優化最后再做)
4.不注重代碼樣式和風格的嚴謹。
5.使用無意義的命名。
6.忽略經過驗證的最佳實踐(例如代碼審核、TDD、AQ、自動化部署等,推薦閱讀軟件開發必讀經典著作:Making Software:What Really Works,and Why We Believe It)。
7.給自己埋雷。(例如使用不會報錯的庫或者忽略例外)
團隊工作
8.過早放棄計劃
9.堅持一個無效的計劃
10.總是單打獨斗。(必須強迫自己與團隊分享進度和想法,避免錯覺,提高效率)
11.拒絕書寫糟糕的代碼。(日程緊迫的時候可以寫一些“糟糕”的代碼,這是程序員的能力而不是bug,當然,有時間的時候一定要回頭償還“技術債”)
12.抱怨他人。
13.不與團隊分享所學。
14.向主管/客戶反饋的速度過慢
15.不會充分利用Google
16.看重個人編碼風格
17.帶著個人情緒看待他人對自己代碼的評論和注釋
寫代碼
18.不懂優化策略
19.使用錯誤的工具。
20.不追求對開發工具和IDE的精熟。
21.忽略報錯消息。
22.迷戀稱手的開發工具。(不同類型的開發任務需要匹配對應的最佳開發工具,例如Sublime適合動態語言,而Eclipse適合Java,如果你喜歡vim或emacs,并不意味著能用這些工具干所有事)
23.不注重代碼中賦值的可配置性。(不養成把代碼中的活動部件分離出來的習慣,會導致技術債暴增)
24.喜歡重新發明車輪。
25.盲目地剪切/粘貼代碼。
26.應付差事,不求甚解,不花時間搞清楚項目運作的機理。
27.對自己寫的代碼過度自信。
28.不去考慮每一個設計、方案或者代碼庫的“副作用”。(一個成功的用例并不意味著“萬靈藥”)
29.在一個地方卡住了但堅持不呼救。
測試與維護
30.只去寫能通過的測試
31.重要項目中忽略性能測試
32.不去核實代碼是否真的可用,沒有養成開發中及時快速測試的習慣。
33.重大改動延遲推送
34.拋棄和逃避自己的代碼。
35.忽略其他非功能性需求。(例如安全和性能,準備一份這方面的清單,忽略這些會毀掉你的所有成果)