開發大型C++軟體系統不只需要了解邏輯設計知識,為了專案成功,您更需要掌握實體設計的觀念,它是開發過程的技術面向,很多資深的軟體開發工程師都不一定很有這方面的經驗。坊間書籍大多是探討邏輯設計,鮮少述及實體設計。
本書是需要大量專業C++開發工作如資料庫、作業系統、編譯器以及軟體框架的權威書籍,它也是教導如何開發大型系統的第一本書,更是少數幾本由C++程式語言的實際面來探討物件導向設計的其中之一。
在本書中,Lakos先生將傳授將大型系統拆解成由小型、易於維護的軟體元件所構成的實體(不是繼承)架構。系統本身如果不具有環形實體相依性,對它維護、測試與重複利用會比對相互緊密相依的系統容易且經濟。除了闡述好的實體設計就像好的邏輯設計一樣重要之外,作者也提供一系列技巧用以消除環形、編譯時期與連結時期相依關係。作者接著會延伸這些觀念到非常非常大型的系統,而在本書後段將探討單一元件設計常見的top-down方式。
本書附錄A收錄了一個非常有價值的設計範式:“Protocol Hierarchy”,用來避免產生過胖的介面,同時將實體相依關係最小化。附錄B則是實作一個ANSI C相容的C++程序介面,附錄C介紹一組UNIX下的工具,用以萃取與分析實體相依性,最後,附錄D整理本書介紹的所有設計規則、設計指南以及原理,以便讓您快速參考。
John Lakos先生曾任職於Mentor Graphics(明導國際),它是一家撰寫過無數大型C++程式的公司,也是第一家嘗試完全採用C++來進行大型軟體開發的公司。Lakos先生在1987年就已經是C++開發的專家,並在1990開始於哥倫比亞大學開設物件導向程式設計的研究所課程。