作者簡介
作者簡介Martin Fowler 是ThoughtWorks公司的首席科學家(ThoughtWorks是一間專業的企業級軟體開發與系統整合公司)。早在1980年代,他就是率先使用物件技術建置多分層企業級應用程式的領航者。他也是多本經典名著的作者,包括《Analysis Patterns》、《UML Distilled》、《Planning Extreme Programming》和《Refactoring》等等,以上書籍均由Addison-Wesley出版。他的個人網站:https://www.martinfowler.com。譯者簡介陳傳興(Bruce Chen) 由MS-DOS 6.22與Intel 486 DX2-66進入資訊領域,在QBasic寫下第一行Hello World,就愛上了開發的世界,目前任職於遠東金士頓科技擔任資深工程師。現任微軟最有價值專家(Microsoft MVP),喜歡分享技術心得於部落格,瀏覽量超過七百萬。STUDY4與twMVC社群核心成員。合著出版作品有《ASP.NET MVC4網站開發美學》、《ASP.NET MVC 5網站開發美學》。協助翻譯Github上擁有9.6K星星的《ASP.NET Core 開發人員指南》,為繁體與簡體中文化的主要貢獻者。張立顗(Poy Chang) 10歲開始用FPE玩遊戲,目前任職於遠東金士頓科技擔任資深工程師。現任微軟最有價值專家(Microsoft MVP),微軟認證DevOps工程師專家,STUDY4技術社群核心成員。譯有《ASP.NET Core 開發人員指南》。不定期在部落格撰寫技術文章,舉辦技術活動,公開演講,分享浩瀚技術海中的一片浪花。審校者簡介黃忠成(Jeffray Huang) 現為系統架構及開發專業顧問,精通多種開發環境與程式語言,大型專案的跨領域整合尤其拿手,素有鬼才之稱。2008~2016 Microsoft MVP、Microsoft Techdays與MSDN資深講師、資策會客座講師;電腦書籍黃金年代的頂尖作者,出版過四本程式開發的相關著作,尤其是《極意之道次世代.NET Framework 3.5資料庫開發聖典ASP.NET篇》至今在繁體中文的世界裡仍然無人可出其右,堪稱為LINQ Framework中的聖經版本。
章節目錄
推薦序審校序譯者序作者序前言Part I 敘述Chapter 1 分層1.1 企業應用程式中分層的演進1.2 三個主要分層1.3 選擇分層的運作地點Chapter 2 組織領域邏輯2.1 做出選擇2.2 服務層Chapter 3 對應至關聯式資料庫3.1 架構模式3.2 行為問題3.3 讀取資料3.4 結構對應模式3.5 建構對應3.6 使用中繼資料3.7 資料庫連線3.8 其他提醒3.9 進一步閱讀Chapter 4 Web 展示層4.1 View 模式4.2 Input Controller 模式4.3 進一步閱讀Chapter 5 並行5.1 並行問題5.2 執行脈絡5.3 隔離與不可變性5.4 樂觀並行控制與悲觀並行控制5.5 交易5.6 離線並行控制模式5.7 應用伺服器並行5.8 進一步閱讀Chapter 6 工作階段狀態6.1 無狀態的價值6.2 工作階段狀態6.3 儲存工作階段狀態的方法Chapter 7 分散式策略7.1 分散式物件的誘惑7.2 遠端介面和本機介面7.3 必須使用分散式處理的場景7.4 關於分散式的界限7.5 分散式的介面Chapter 8 沙盤推演8.1 從領域分層開始8.2 深入到資料來源層8.3 展示層8.4 一些具體的技術建議8.5 其他分層方式Part II 模式Chapter 9 領域邏輯模式9.1 Transaction Script(交易指令碼)9.2 Domain Model(領域模型)9.3 Table Module(表格模組)9.4 Service Layer(服務層)Chapter 10 資料來源架構模式10.1 Table Data Gateway(表格資料閘道)10.2 Row Data Gateway(資料列資料閘道)10.3 Active Record(主動式記錄)10.4 Data Mapper(資料對應器)Chapter 11 物件關聯行為模式11.1 Unit of Work(工作單元)11.2 Identity Map(識別對應表)11.3 Lazy Load(延遲載入)Chapter 12 物件關聯結構模式12.1 Identity Field(識別欄位)12.2 Foreign Key Mapping(外部索引鍵對應)12.3 Association Table Mapping(關聯表格對應)12.4 Dependent Mapping(依賴對應)12.5 Embedded Value(內嵌值)12.6 Serialized LOB(序列化大型物件)12.7 Single Table Inheritance(單一表格繼承)12.8 Class Table Inheritance(類別表格繼承)12.9 Concrete Table Inheritance(實體表格繼承)12.10 Inheritance Mappers(繼承對應器)Chapter 13 物件關聯中繼資料對應模式13.1 Metadata Mapping(中繼資料對應)13.2 Query Object(查詢物件)13.3 Repository(儲存庫)Chapter 14 Web 展示模式14.1 Model View Controller(模型- 檢視- 控制器)14.2 Page Controller(頁面控制器)14.3 Front Controller(前端控制器)14.4 Template View(範本檢視)14.5 Transform View(轉換檢視)14.6 Two-Step View(兩階段檢視)14.7 Application Controller(應用控制器)Chapter 15 分散式模式15.1 Remote Facade(遠端外觀)15.2 Data Transfer Object(資料傳輸物件)Chapter 16 離線並行模式16.1 Optimistic Offline Lock(樂觀離線鎖定)16.2 Pessimistic Offline Lock(悲觀離線鎖定)16.3 Coarse-Grained Lock(粗粒度鎖定)16.4 Implicit Lock(隱含鎖定)Chapter 17 工作階段狀態模式17.1 Client Session State(用戶端工作階段狀態)17.2 Server Session State(伺服器工作階段狀態)17.3 Database Session State(資料庫工作階段狀態)Chapter 18 基礎模式18.1 Gateway(閘道)18.2 Mapper(對應器)18.3 Layer Supertype(分層超級型別)18.4 Separated Interface(分離介面)18.5 Registry(登錄表)18.6 Value Object(值物件)18.7 Money(金錢)18.8 Special Case(特殊情況)18.9 Plugin(外掛)18.10 Service Stub(服務替身)18.11 Record Set(記錄集)Appendix 附錄