幫助中心 | 我的帳號 | 關於我們

軟體架構難點解惑(影印版)(英文版)

  • 作者:(美)尼爾·福特//馬克·理查茲//普拉莫德·塞得拉吉//扎馬克·德加尼|責編:張燁
  • 出版社:東南大學
  • ISBN:9787576605914
  • 出版日期:2023/03/01
  • 裝幀:平裝
  • 頁數:441
人民幣:RMB 138 元      售價:
放入購物車
加入收藏夾

內容大鋼
    在軟體架構中沒有哪個決定是輕而易舉的。相反,有許多艱難的部分,要麼是難題,要麼是缺少最佳實踐,這迫使你在各種妥協中做出選擇。通過本書,你將學會如何批判性地思考分散式架構的利弊。
    軟體架構老兵和實踐顧問Neal Ford、Mark Richards、Pramod Sadalage、zhamak Dehghani討論了選擇適合架構的策略。全書交織著一群虛構的技術專業人員(Sysops Squad)的故事,他們研究了從如何確定服務粒度、管理工作流和編排、管理和解耦契約、管理分散式事務到如何優化可擴展性、彈性和性能等操作特性的一切問題。
    本書通過關注常見的問題,提供了一些技巧,幫助你在面對架構問題時進行權衡。
    ·分析權衡並有效記錄你的決策
    ·作出更好的服務粒度決策
    ·理解拆分單體應用的複雜性
    ·管理和解耦服務之間的契約
    ·在高度分散式架構中處理數據
    ·學習在分解應用時的工作流和事務管理模式

作者介紹
(美)尼爾·福特//馬克·理查茲//普拉莫德·塞得拉吉//扎馬克·德加尼|責編:張燁

目錄
Preface
1. What Happens When There Are No"Best Practices"?
   Why "The Hard Parts"?
   Giving Timeless Advice About Software Architecture
   The Importance of Data in Architecture
   Architectural Decision Records
   Architecture Fitness Functions
     Using Fitness Functions
   Architecture Versus Design: Keeping Definitions Simple
   Introducing the Sysops Squad Saga
     Nonticketing Work_flow
     Ticketing Workflow
     A Bad Scenario
     Sysops Squad Architectural Components
     Sysops Squad Data Model
Part I.  Pulling Things Apart
  2. Discerning Coupling in Software Architecture
    Architecture (Quantum [ Quanta)
      Independently Deployable
      High Functional Cohesion
      High Static Coupling
      Dynamic Quantum Coupling
     Sysops Squad Saga: Understanding Quanta
  3. Architectural Modularity
    Modularity Drivers
      Maintainability
      Testability
      Deployability
      Scalability
      Availability/Fault Tolerance
    Sysops Squad Saga: Creating a Business Case
  4. Architectural Decomposition
    Is the Codebase Decomposable?
      Afferent and Efferent Coupling
      Abstractness and Instability
      Distance from the Main Sequence
    Component-Based Decomposition
    Tactical Forking
      Trade-Offs
    Sysops Squad Saga: Choosing a Decomposition Approach
  5. Component-Based Decomposition Patterns
    Identify and Size Components Pattern
      Pattern Description
      Fitness Functions for Governance
      Sysops Squad Saga: Sizing Components
    Gather Common Domain Components Pattern
      Pattern Description
      Fitness Functions for Governance
      Sysops Squad Saga: Gathering Common Components
    Flatten Components Pattern

      Pattern' Description
      Fitness Functions for Governance
      Sysops Squad Saga: Flattening Components
    Determine Component Dependencies Pattern
      Pattern Description
      Fitness Functions for Governance
      Sysops Squad Saga: Identifying Component Dependencies
    Create Component Domains Pattern
      Pattern Description
      Fitness Functions for Governance
      Sysops Squad Saga: Creating Component Domains
    Create Domain Services Pattern
      Pattern Description
      Fitness Functions for Governance
      Sysops Squad Saga: Creating Domain Services
    Summary
  6. Pulling Apart Operational Data
    Data Decomposition Drivers
      Data Disintegrators
      Data Integrators
      Sysops Squad Saga: Justifying Database Decomposition
    Decomposing Monolithic Data
      Step 1: Analyze Database and Create Data Domains
      Step 2: Assign Tables to Data Domains
      Step 3: Separate Database Connections to Data Domains
      Step 4: Move Schemas to Separate Database Servers
      Step 5: Switch Over to Independent Database Servers
    Selecting a Database Type
      Relational Databases
      Key-Value Databases
      Document Databases
      Column Family Databases
      Graph Databases
      NewSQL Databases
      Cloud Native Databases
      Time-Series Databases
    Sysops Squad Saga: Polyglot Databases
  7. Service Granularity
    Granularity Disintegrators
      Service Scope and Function
      Code Volatility
      Scalability and Throughput
      Fault Tolerance
      Security
      Extensibility
    Granularity Integrators
      Database Transactions
      Workflow and Choreography
      Shared Code
      Data Relationships

    Finding the Right Balance
    Sysops Squad Saga: Ticket Assignment Granularity
    Sysops Squad Saga: Customer Registration Granularity
Part II.  Putting Things Back Together
  8. Reuse Patterns
    Code Replication
      When to Use
    Shared Library
      Dependency Management and Change Control
      Versioning Strategies
      When To Use
    Shared Service
      Change Risk
      Performance
      Scalability
      Fault Tolerance
      When to Use
    Sidecars and Service Mesh
      When to Use
    Sysops Squad Saga: Common Infrastructure Logic
    Code Reuse: When Does It Add Value?
      Reuse via Platforms
    Sysops Squad Saga: Shared Domain Functionality
  9. Data Ownership and Distributed Transactions
    Assigning Data Ownership
    Single Ownership Scenario
    Common Ownership Scenario
    Joint Ownership Scenario
      Table Split Technique
      Data Domain Technique
      Delegate Technique
    Service Consolidation Technique
    Data Ownership Summary
    Distributed Transactions
    Eventual Consistency Patterns
      Background Synchronization Pattern
      Orchestrated Request-Based Pattern
      Event-Based Pattern
    Sysops Squad Saga: Data Ownership for Ticket Processing
  10. Distributed Data Access
    Interservice Communication Pattern
    Column Schema Replication Pattern
    Replicated Caching Pattern
    Data Domain Pattern
    Sysops Squad Saga: Data Access for Ticket Assignment
  11. Managing Distributed W0r~0ws
    Orchestration Communication Style
    Choreography Communication Style
      Workflow State Management
    Trade-Offs Between Orchestration and Choreography

      State Owner and Coupling
    Sysops Squad Saga: Managing Workflows
  12. Transactional Sagas
    Transactional Saga Patterns
      Epic Saga(sao) Pattern
      Phone Tag Saga(sac) Pattern
      Fairy Tale Saga(sec) Pattern
      Time Travel Saga(sec) Pattern
      Fantasy Fiction Saga(aao) Pattern
      Horror Story(aac) Pattern
      Parallel Saga(aeo) Pattern
      Anthology Saga(aec) Pattern
    State Management and Eventual Consistency
      Saga State Machines
    Techniques for Managing Sagas
    Sysops Squad Saga: Atomic Transactions and Compensating Updates
  13. Contracts
    Strict Versus Loose Contracts
      Trade-Offs Between Strict and Loose Contracts
      Contracts in Microservices
    Stamp Coupling
      Over-Coupling via Stamp Coupling
      Bandwidth
      Stamp Coupling for Workflow Management
    Sysops Squad Saga: Managing Ticketing Contracts
  14. Managing Analytical Data
    Previous Approaches
      The Data Warehouse
      The Data Lake
    The Data Mesh
      Definition of Data Mesh
      Data Product Quantum
      Data Mesh, Coupling, and Architecture Quantum
      When to Use Data Mesh
    Sysops Squad Saga: Data Mesh
  15. Build Your Own Trade-OffAnalysis
    Finding Entangled Dimensions
      Coupling
      Analyze Coupling Points
      Assess Trade-Offs
    Trade-Off Techniques
      Qualitative Versus Quantative Analysis
      MECE Lists
      The "Out-of-Context" Trap
      Model Relevant Domain Cases
      Prefer Bottom Line over Overwhelming Evidence
      Avoiding Snake Oil and Evangelism
    Sysops Squad Saga: Epilogue
A. Concept and Term References
B. Architecture Decision Record References

C. Trade-Off References
Index

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032