第四章至第六章為程式設計師提供了一系列實用的編碼原則和實踐技巧。
第四章:注重實效的偏執
這一章深入探討了程式設計師在面對複雜性和不確定性時,如何保持一種“偏執”的態度來確保軟體的質量和可靠性。
程式設計師應該對自己的程式碼持懷疑態度,始終假設它可能存在錯誤,直到經過嚴格的測試和驗證。“偏執”在這裡指的是一種對細節的嚴格關注,以及對潛在問題的不懈追求。本章強調了防禦性程式設計的重要性,即在編寫程式碼時考慮到可能的異常情況,並加以處理。程式設計師應該編寫可測試的程式碼,確保每個元件都能夠獨立地進行測試。更要學習如何有效地使用斷言(assertions)來捕捉錯誤,以及如何設計故障安全系統。本章還提到了“最小化預先假設”的原則,即在設計系統時儘量減少對環境的假設,以提高系統的健壯性。
第五章:彎曲或折斷
本章討論了在軟體設計和開發中如何處理壓力和變化。
程式設計師應該學會靈活應對變化,而不是固執地堅持原始計劃。“彎曲或折斷”這一章節,比喻了軟體設計和開發中的靈活性與剛性。在快速變化的技術環境中,程式設計師必須學會適應和變通。本章提倡設計具有彈性的系統,能夠在面對壓力和變化時彎曲而非折斷。模組化設計、避免過度耦合和使用策略模式,都是實現這種彈性的方法。書中指出,完美的設計是不存在的,重要的是能夠快速響應變化,透過迭代開發逐步完善產品。程式設計師應當接受這一點,不斷調整和最佳化自己的工作方式,以適應不斷變化的需求。這種靈活性不僅體現在技術上,也體現在心態上,是對程式設計師職業成長的重要考驗。
第六章:當你編碼時
本章提供了具體的編碼實踐建議。
本章聚焦於編碼過程中的具體實踐,提供瞭如何提高程式碼質量和效率的實用建議。簡潔性是本章強調的重點,程式設計師應當追求程式碼的清晰和簡潔,避免不必要的複雜性。程式碼的可讀性被提升到了至關重要的位置,因為程式碼首先是為人編寫的,其次才是為機器執行。當然也要掌握重構技巧的學習和使用,這可以幫助程式設計師不斷地最佳化程式碼結構,提高其可讀性和可維護性。此外,本章還強調了單元測試的重要性,它確保了程式碼的每個部分都能夠獨立地工作,並且符合預期。持續整合和自動化測試的實踐,則是維護程式碼庫健康和團隊協作效率的關鍵。透過遵循這些實踐,程式設計師可以在編碼過程中不斷提升自己的技能和作品的質量。