
第十三章
雙系統故事
建築是研究如何浪費空間的工藝。
- Philip Johnson
軟體系統就像個城市—有一個錯綜複雜的公路網及許多旅館,還有很多小路跟建築物。
在忙碌的城市中有許多事情發生:控制流不斷地出現,編織它們的生命,然後死去。大
量的資料被累積、儲存,及銷毀。裡面有許多建築物:有的既高聳且漂亮,有的低矮且
實用,有的破舊不堪,年久失修。因為資料會在它們周圍流動,所以會有塞車、尖鋒時
刻及道路施工。你的軟體程式品質,與落實多少城市計畫有直接關係。
有一些軟體系統很幸運,它們是有經驗的建築師經過周詳的考慮設計的。它們是以優雅
與平衡的概念來建構的。它們具備很棒的地圖,易於巡覽。其他的軟體不是這麼幸運,
是從一些意外收集的程式中長出來的軟體建築。缺乏運輸設施,建築既單調且乏善可
陳。如果你在裡面,會完全無法找到出路。
你的程式住在哪裡? 你要建構哪種軟體城市? 113
在本章中,我會述說這兩種軟體城市的故事。這是真正的故事,而且如同所有好故事,
這一個故事有一個合乎道德的結尾。有人說
經驗是很好的老
師,但他人的經驗更棒,如
果你從這些專案的錯誤與成功經驗中學習,或許你會替自己(還有你的軟體)省下很多
痛苦。
這兩個系統特別有趣,因為它們非常不同,儘管表面上看起來非常類似,有類似的程式
大小、產品領域,及具有相同經驗水準的工程師。
在這個故事中,為了保護無辜的人,名字都已被更改。還有有罪的人。