天天看點

軟體開發過程中的食物鍊

McConnell在《代碼大全》中的一個十分貼切的比喻:

程式員是軟體食物鍊的最後一環。架構師吃掉需求,設計師吃掉架構,而程式員則消化設計。

我們用真實的食物鍊來比喻軟體食物鍊。在健康的生态環境中,海鷗吃新鮮的鲑魚。這對海鷗是營養豐富的大餐,因為鲑魚吃的是新鮮的青魚,而青魚吃的是新鮮的水蝽。這是一條健康的食物鍊。在軟體開發中,如果食物鍊的每一級都有健康的食物,那麼最終就會獲得由快樂的程式員編寫出的健康的代碼。

在受到污染的環境中,水蝽在核廢料中遊泳,青魚被聚氯聯二苯(PCB)污染,而吃青魚的鲑魚又在洩漏的原油中遊蕩。3海鷗,很不幸,它位于食物鍊的最後一環,是以它吃下去的不僅僅是不健康的鲑魚體内的原油,還有青魚體内的聚氯聯二苯和水蝽體内的核廢料。在軟體開發中,如果需求被污染了,那麼它就會污染架構,而架構又會污染建構。這樣會導緻程式員脾氣暴躁、營養失調;開發出的軟體具有放射性污染,而且周身都是缺陷。

如果你正為某個高度疊代的項目做計劃,那麼在開始建構活動之前,你需要針對将要構造的每一片段,先弄清哪些是最關鍵的需求和架構要素。建造住宅小區的施勞工員,在開始建造第一棟房子之前,并不需要知道小區裡面每一棟房子的每一個細節。但他會調查施工場所,制定下水道和電線的走向等。如果施勞工員準備不充分,那麼建造過程很可能會因為“需要在某所已經造好的房子的地下挖一條下水道”而延誤。

......大師就是大師,我等隻能膜拜了...

繼續閱讀