我之所以要用聰明和懶惰來形容高效的程式設計師,原因有以下幾點: 聰明是因為能找出問題的正解 懶惰是因為不願寫多餘的**(即不會長時間地坐在電腦前) 好的軟體開發過程應該是懶惰的軟體開發,亦稱耐心開發,原因是開發人員在寫**之前會先將時間花在透徹地考慮各種解決方案上。
這是懶惰開發的主旨,即在不了解之前就不會開始寫**。這個負責任的態度減少了他們所需要寫的**量。
主要需要做到以下幾點:
這些過程都是需要時間的。然而,不少開發人員往往一拿到問題就開始急於敲**,然後再花費大把大把的時間修改**。
事實上,只有5%都不到的時間才真正是有生產力的。所以下回你要是看到某個開發人員將他100%的時間都緊盯著螢幕,不與其他人做任何互動,那麼只能說你找來的程式設計師可不太好啊。
高效的開發人員會時不時地檢查對需求的理解,以確保與**相一致。富有生產力的開發人員會經常與產品經理/業務分析員分析交流,也時常可以看到他們與同事和架構師出雙入對。當然資深的開發人員也會因其自身豐富的經驗而變得非常有效率。事實上,最好的開發人員與其他人相比:
然而,總的說來,隨著時間的推移,開發人員的生產效率並沒有隨之而增長,即從成千上萬的開發人員那兒可以證實,豐富的經驗和生產力是無關的。事實上,我們的生產效率在過去50年間已經提高了8倍,所以,從總體上說,經驗與生產力水平是不相干的。
很多人很勤快,還沒有好好理解需求就開始動手寫**。並且,迅速編寫的**往往不能很好的適應其他人的**。而這一問題往往只有在整合**的時候才能被發現,但是已經晚了。優秀的開發人員很有耐心,他知道快速編碼的風險。
差的開發人員往往不願意去改變自己寫得不好的**。他們只會選擇增添更多的**來彌補不足,而不會重寫不理想的**。更糟的是,他們往往會去責怪其他人有不良的**,而不願意自我檢討。在他們手中,最終只會導致乙個嚴重缺陷和不穩定的系統。
當然,好的開發人員也會寫出差的**,非最優的**。所不同的是,他們願意認識自己的不足,並且對於有問題的部分:
當開發人員生產並維護了非最優**,隨著時間的推移,那麼修改這些**就會變得越來越難。這是因為你的同事需要在這些**介面上寫**,然後再建立繁雜的介面等等使用這些非最優**。並且隨著**庫的發展,會有更多更多的**是依賴這些原始**編寫出來的。故而,後面寫的**再怎麼好也幾乎增加不了**的穩定性,也不能對略有改動時bug增殖的情況產生影響。總之,開發過程會變得越來越慢、越來越難。
所以,如果有什麼疑問,那麼不妨偷個懶,晚點再寫**,須知,磨刀不誤砍柴工啊!
英文原文:productive developers are smart and lazy
碼農網 – 小峰
高效程式設計師的特徵 聰明,懶惰
這裡我使用了聰明,懶惰和程式設計師這幾個詞。我說的這幾個詞的意思是 聰明 能夠周全的思考問題 不是那些耍小聰明的人 懶惰 就像是程式中的lazy loading,是指延後寫 的時間 而不是無所事事的人 正確的軟體開發應該是懶惰式開發,也被稱作忍耐式開發 這種開發方式的表現是,在真正動手寫 前,程式設...
高效程式設計師的特徵 聰明,懶惰
這裡我使用了聰明,懶惰和程式設計師這幾個詞。我說的這幾個詞的意思是 正確的軟體開發應該是懶惰式開發,也被稱作忍耐式開發 這種開發方式的表現是,在真正動手寫 前,程式設計師要花大量的時間通盤考慮所有可能的解決方案和途徑。這可以看作是延緩寫 在沒有完全理解問題前絕不動手寫 先把問題理解清楚,確保將要寫的...
高效的程式設計師什麼樣?聰明 懶惰
程式設計師 有積極活力的,專注於用 解決真實世界裡的問題。不是指那些夢想家,那些永遠只想不做的人 聰明 能夠周全的思考問題 不是那些耍小聰明的人 懶惰 就像是程式中的lazy loading,是指延後寫 的時間 而不是無所事事的人 正確的軟體開發應該是懶惰式開發,也被稱作忍耐式開發 這種開發方式的表...