2008年4月13日 星期日

N13 佈置容易看懂的軟體結構減少文件製作

似乎除了設計者之外的所有人都贊同文件的重要性,認為留下適當的文件是該做的事。但是真正在做事的人一邊寫程式還得一邊更新文件,這樣子相當於處理兩倍的工作量,每一個地方都這麼做的話肯定會累死的;但是要是只更新一邊就會造成內容不同步:正確的是程式,錯誤的文件就沒人要看,等於白做。

厲害的程式設計者通常不寫文件,就是因為他們覺得文件寫了很久卻沒有參考價值,反而拖累他們的開發進度。可是問題是他們寫的東西雖然功能正常,想要瞭解裡面做的事時,除了在沒有文字描述的輔佐下難以看懂之外,還得面臨詢問時得到“我忘記了”的回答。

大陸某大公司說他們採用敏捷開發,其大意是先定義好系統的模組,並且完整定義出每個模組的介面,結構經過討論確定後,每個模組的內容再由負責的人直接在裡面寫程式實作。發現這與我使用的開發方法很接近,只是我連模組裡的軟體結構都有佈置的準則。

每個獨立區域(包括System、Package、Module、Component)都應該要至少有一張靜態結構的Class Diagram,還要有完整的Interface與Interface Method清單來描述這個區域“應該”具有的功能;另外“如何”履行這些應該具有的功能,就努力將之收集在Controller的方法裡,以標明原因與目的的詳細註解加以描述,同時還是要記錄流程內使用同一Package內的動作Method。

動態的流程使用註解說明每一步驟的使用,靜態的動作記錄詳細的操作方式與使用效果,如此一來可以省卻變動性質最大的流程描述文件,同時保持記錄全部動作的必要資訊。

沒有留言:

張貼留言