專案成功仰賴共同語言與流程。本文涵蓋目錄文檔規範、設計標記與流程選擇、用例建模、開放/封閉原則、設計由契約、以及各類實務撇步。
每個目錄必須包含 README,內容包括:
目標:新人入職六個月內,僅憑文檔與原始碼標頭,即可獨立穿越整個專案原始碼樹。
團隊成員技術背景不一,缺乏共同語言會導致無休止爭論、倦怠與進度停滯。送團隊受訓、選定方法論(如 CRC 類別職責卡),統一溝通基礎。CRC 非正式鼓勵團隊合作,聚焦物件行為而非屬性,參考書籍《Using CRC Cards》。
用例 描述涉及多個物件的完整交易,或一組物件(如組織)的行為。用例模型蒐集多個用例,規格化整個應用系統行為及外部參與者互動。
經代碼審查、單元測試通過的類別不應輕易修改,僅透過擴展新增功能。實務上即善用抽象與多型:抽象萃取共同流程,繼承定義介面約束衍生類別。
契約為程式碼間正式承諾。物件/方法宣稱執行 X,呼叫端信任其履行。Eiffel 等語言以前置/後置條件強制執行,其他語言需靠信任。搭配語言級驗證機制,程式設計如組裝規格零件般可靠。
<= 或 >=,禁用 ==。if ($abool = $bbool) 易混淆;改為先賦值再測試。if (0) 註解大段程式碼:避免 /**/ 不支援巢狀註解問題。