見地
作者:
成為一名好的軟件開發員不僅要終身學習,而且要避免軟件開發中常見的七宗罪。
——尼爾·麥卡利斯特
成為一名好的軟件開發人員不僅需要終身學習,還要避免軟件開發中常見的七宗罪——欲望強烈、胃口大、貪婪、懶惰、憤怒、嫉妒和驕傲。
第一宗罪——欲望強烈 。當前,編程語言逐漸成熟,新的關鍵字、旨在提高代碼可讀和可重用性的結構被廣泛使用,編程的規則也隨之改變,程序員需要研讀大量設計模式資料。但紙上知識在實踐中並不一定有效。編程大師喬爾·斯波斯基說:“能售出是產品開發的一個很重要的目標。”迷戀工具的程序員會忽略這一點,請采取有效的措施抑製衝動,。
第二宗罪——胃口大。一旦產品問世,你會忍不住開始籌劃更新。它可以有什麼新特性?哪些方麵在第一輪開發中沒考慮到?程序員容易重複犯同樣的錯誤,導致代碼庫臃腫且難於管理。評估你現有代碼的質量和可維護性,使代碼重構成為每一輪開發的注意事項之一。
第三宗罪——貪婪。自己團隊閉門寫的代碼庫,實現的卻是其他團隊已寫代碼的一大半功能。開發團隊如果缺乏明確的目標,就會重複勞動,產生多餘而失控的代碼庫。經營性開發項目的首要任務之一是確保每個參與者知道別人在做什麼。分享應該是座右銘。
第四宗罪——懶惰。缺少輸入驗證,這個看似業餘的錯誤卻經常出現在經驗豐富的程序員編寫的代碼中。許多安全漏洞可以追溯到未驗證用戶的輸入格式是否正確。許多工具可以幫助程序員避免這種情況發生。輸入驗證應當在程序的核心部分,而不是在用戶界麵上,不這樣做,就是偷懶。
第五宗罪——憤怒。程序員很容易忘記,他們寫的代碼會比他們在某個公司呆的時間還長,接任者很難搞清楚每個代碼片斷的意思。因此,手下留情吧,多給他們一些提示。但請記住,注釋難以理解或注釋太多,和沒有注釋一樣糟糕。代碼本身就已說明做什麼了,注釋隻需說明原因即可。
第六宗罪——嫉妒。也許你有理由不實施項目版本控製,但功能強大、有效的版本控製係統已經免費,服務供應商甚至提供分布式項目主機代碼,實施項目版本控製變得非常容易。因此,你應該在開始一個項目時先建一個代碼庫,除非你能忍受除了你之外的所有人都可以修改代碼。
第七宗罪——驕傲。除非已經用特殊測試驗證過代碼,不然,你不能確定軟件沒有缺陷。但有太多開發人員不做代碼單元測試,他們聲稱測試不能完善功能。一些開發者甚至不把質量測試列入項目預算。有缺陷的代碼到達客戶手中後再進行修正已經太遲。賣出軟件前的測試越多,越能控製損失。