高效程式設計師的特徵:聰明,懶惰
這裡我使用了聰明,懶惰和程式設計師這幾個詞。我說的這幾個詞的意思是:
-
程式設計師:有積極活力的,專注於用程式碼解決真實世界裡的問題
- 不是指那些夢想家,那些永遠只想不做的人
- 聰明:能夠周全的思考問題(不是那些耍小聰明的人)
- 懶惰:就像是程式中的lazy-loading,是指延後寫程式碼的時間(而不是無所事事的人)。
正確的軟體開發應該是懶惰式開發,也被稱作忍耐式開發;這種開發方式的表現是,在真正動手寫程式碼前,程式設計師要花大量的時間通盤考慮所有可能的解決方案和途徑。這可以看作是延緩寫程式碼,在沒有完全理解問題前絕不動手寫程式碼。先把問題理解清楚,確保將要寫的程式碼能真正的解決問題,這將會避免之後寫出大量無用的程式碼。
這裡說的先把問題弄清楚,表現有:
-
真正的理解需求,讓產品部門(業務分析部門)弄清楚他們真正需求的是什麼。
- 這些部門通常不給足夠的時間來整理需求
- 他們經常不是請教問題領域專家,而是順從領導的意見
- 他們通常無法提供前後一致或完整的需求意見。
-
清楚跟團隊中的其它程式設計師或其他團隊中的程式設計師需要那些互動,如何互動,這包括:
- 使用白板交流
- 畫流程圖(UML或Visio)
你需要花大量的時間調研,來確保需求符合實情,來做工作讓你和同事的交流有共同的語言語義。然而,程式設計師都喜歡立刻衝上去程式設計,喜歡在電腦前不停的敲程式碼。
在真正的軟體開發中,只有5%的開發時間是有效率的(你可以參考《程式設計師開發效率悖論》)。如果你發現一個程式設計師用100%的時間都在盯著螢幕,那麼,你看到的這個程式設計師是最糟糕的程式設計師。
如果一個程式設計師總是在電腦前編碼,這絕對是一個不好的訊號。
高效的程式設計師總是不斷檢查他對需求的理解,確保他們的程式碼和需求是同步的。高效的程式設計師是頻繁的和產品經理/業務人員溝通交流,你可以經常看到他們使用白板與同事和架構師交流討論。程式設計師的閱歷和經驗都是用來提高開發效率,這最優秀的程式設計師:
- 他們思考程式碼的時間增加而寫程式碼時間減少
- 對問題的透徹理解使除錯程式碼的速度更快
- 深思熟慮後的程式碼速度更快
- 程式碼長度更短
程式設計師從心理上講都是喜愛自己的程式碼的。
爛程式設計師不喜歡去修改已經寫成的爛程式碼。相比起優化自己的程式碼,他們更願意簡單的增加更多的程式碼,以此來彌補之前的缺陷。更糟糕的是,他們喜歡把責任歸咎於他人。最終,一堆不好用的程式碼上在來另外一堆不好用的程式碼,整個系統變得到處是bug,極不穩定。
優秀的程式設計師經常也會寫出爛程式碼,但他們能看到那些程式碼需要優化,哪些需要重寫。優秀的程式設計師和不優秀的程式設計師的區別就在於對有問題的程式碼的態度,優秀的程式設計師的做法是:
- 如果程式碼整體上好的,那就重構程式碼。
- 如果程式碼整體上有問題,那就重新程式碼
當程式碼中有需要優化或需要重寫的地方時,時間拖的越久,你就越難回頭解決這些問題。因為對這些程式碼依賴的程式會越來越多,越來越深,當你優化這些程式碼時,相關的依賴也需要進行相關修改。當積累的問題越來越多時,輕鬆的優化/重新這些程式碼已經變得不可能。而使用繼續增加程式碼的方式來彌補之前程式碼問題,會讓系統變得越來越不穩定。
如果腦子裡沒想清楚,那就懶一些,把寫程式碼的時間往後推。
相關文章
- 智慧行業聰明者,程式設計師應該瞭解的CRM行業程式設計師
- 聰明的程式設計師容易做出錯誤的戰略決策 - earthly程式設計師
- 幽默:程式設計師耍小聰明導致認知負擔 - tef程式設計師
- 聰明人和傻子和程式設計師程式設計師
- 邦芒職場:職場中實現高效而“懶惰”的方法
- 面試官“你的期望薪資是多少?”聰明的程式設計師都是這樣答的!面試程式設計師
- 程式設計師應當學會“偷懶”程式設計師
- 聰明的程式設計師應該知道什麼是最值得解決的問題 - Fagner Brack程式設計師
- 讓“懶惰” Linux 運維工程師事半功倍的 10 個關鍵技巧!Linux運維工程師
- 谷歌程式設計師有哪些高效的程式設計習慣?谷歌程式設計師
- “懶”的聰明:年輕人智慧生活洞察報告(附下載)
- 高效程式設計師的七個習慣程式設計師
- IntelliJ IDEA 2023:聰明如你,程式設計更輕鬆 mac/win版IntelliJIdea程式設計Mac
- [愛偷懶的程式設計師系列]-Section 1. “懶”是一切需求的根源程式設計師
- 聰明的陷阱
- 簡明高效的 Java 併發程式設計學習指南Java程式設計
- 程式設計師的macOS系列:高效Alfred進階程式設計師MacAlfred
- 程式設計師面試把自己的工資說高了30%,內心忐忑不安,網友:放聰明點!程式設計師面試
- 程式設計師怎麼高效做筆記程式設計師筆記
- 高階程式設計師的七大特徵,你有幾條?程式設計師特徵
- 萬事不決騰格爾,遊戲公司的懶惰遊戲
- 讓 Java 程式設計師更加高效的開發工具Java程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- 高效程式設計程式設計
- 優秀的程式設計師都有的十條特徵,你中了幾條?程式設計師特徵
- 聰明優秀
- 認知偏差:懶惰其實是不存在的 - Devon Pricedev
- 一個女程式設計師徵男友的需求說明書程式設計師
- 程式設計師筆記|如何編寫高效能的Java程式碼程式設計師筆記Java
- 高效程式設計師的45個習慣 讀書筆記程式設計師筆記
- 推薦給“懶惰” Linux 運維工程師的 10 個關鍵技巧,瞬間提升運維效率!Linux運維工程師
- 美女程式設計師觀點:程式設計師最重要的非程式設計技巧程式設計師
- 普通程式設計師和厲害程式設計師的差距!程式設計師
- Java程式設計師如何高效學習,才能加快成為架構師的步伐Java程式設計師架構
- 程式設計師何苦為難程式設計師?程式設計師
- Windows10 程式設計師十大常用高效的軟體Windows程式設計師
- 好程式設計師分享Java面試題:物件導向的四個基本特徵程式設計師Java面試題物件特徵
- 【1024程式設計師節】程式設計師,你學程式設計的初衷是什麼?程式設計師
- 程式設計師偷懶指南 — 用chrome外掛實現前端資訊推送程式設計師Chrome前端