高效程式設計師的特徵:聰明 懶惰

thinkphp發表於2014-06-04

這裡我使用了聰明,懶惰和程式設計師這幾個詞。我說的這幾個詞的意思是:

程式設計師:有積極活力的,專注於用程式碼解決真實世界裡的問題不是指那些夢想家,那些永遠只想不做的人

聰明:能夠周全的思考問題(不是那些耍小聰明的人)

懶惰:就像是程式中的lazy-loading,是指延後寫程式碼的時間(而不是無所事事的人)。正確的軟體開發應該是懶惰式開發,也被稱作忍耐式開發;這種開發方式的表現是,在真正動手寫程式碼前,程式設計師要花大量的時間通盤考慮所有可能的解決方案和途徑。這可以看作是延緩寫程式碼,在沒有完全理解問題前絕不動手寫程式碼。先把問題理解清楚,確保將要寫的程式碼能真正的解決問題,這將會避免之後寫出大量無用的程式碼。

inspection

這裡說的先把問題弄清楚,表現有:

真正的理解需求,讓產品部門(業務分析部門)弄清楚他們真正需求的是什麼。這些部門通常不給足夠的時間來整理需求他們經常不是請教問題領域專家,而是順從領導的意見他們通常無法提供前後一致或完整的需求意見。

清楚跟團隊中的其它程式設計師或其他團隊中的程式設計師需要那些互動,如何互動,這包括:使用白板交流畫流程圖(UML或Visio)你需要花大量的時間調研,來確保需求符合實情,來做工作讓你和同事的交流有共同的語言語義。然而,程式設計師都喜歡立刻衝上去程式設計,喜歡在電腦前不停的敲程式碼。

instructor-led-computer-training-sm

在真正的軟體開發中,只有5%的開發時間是有效率的(你可以參考《程式設計師開發效率悖論》)。如果你發現一個程式設計師用100%的時間都在盯著螢幕,那麼,你看到的這個程式設計師是最糟糕的程式設計師。

如果一個程式設計師總是在電腦前編碼,這絕對是一個不好的訊號。

高效的程式設計師總是不斷檢查他對需求的理解,確保他們的程式碼和需求是同步的。高效的程式設計師是頻繁的和產品經理/業務人員溝通交流,你可以經常看到他們使用白板與同事和架構師交流討論。程式設計師的閱歷和經驗都是用來提高開發效率,這最優秀的程式設計師:他們思考程式碼的時間增加而寫程式碼時間減少對問題的透徹理解使除錯程式碼的速度更快深思熟慮後的程式碼速度更快程式碼長度更短程式設計師從心理上講都是喜愛自己的程式碼的。

Life-Experience

爛程式設計師不喜歡去修改已經寫成的爛程式碼。相比起優化自己的程式碼,他們更願意簡單的增加更多的程式碼,以此來彌補之前的缺陷。更糟糕的是,他們喜歡把責任歸咎於他人。最終,一堆不好用的程式碼上在來另外一堆不好用的程式碼,整個系統變得到處是bug,極不穩定。

Untitled

優秀的程式設計師經常也會寫出爛程式碼,但他們能看到那些程式碼需要優化,哪些需要重寫。優秀的程式設計師和不優秀的程式設計師的區別就在於對有問題的程式碼的態度,優秀的程式設計師的做法是:如果程式碼整體上好的,那就重構程式碼。如果程式碼整體上有問題,那就重新程式碼當程式碼中有需要優化或需要重寫的地方時,時間拖的越久,你就越難回頭解決這些問題。因為對這些程式碼依賴的程式會越來越多,越來越深,當你優化這些程式碼時,相關的依賴也需要進行相關修改。當積累的問題越來越多時,輕鬆的優化/重新這些程式碼已經變得不可能。而使用繼續增加程式碼的方式來彌補之前程式碼問題,會讓系統變得越來越不穩定。

如果腦子裡沒想清楚,那就懶一些,把寫程式碼的時間往後推。

[英文原文:Productive Developers are Smart and Lazy ]

轉自:外刊IT評論

相關閱讀
評論(1)

相關文章