软件架构难点解惑(影印版)
Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
出版时间:2023年03月
页数:440
“本书是所有构建现代分布式系统的架构师的必读之作。”
——Aleksandar Serafimoski
Thoughtworks首席顾问

在软件架构中没有哪个决定是轻而易举的。相反,有许多艰难的部分,要么是难题,要么是缺少最佳实践,这迫使你在各种妥协中做出选择。通过本书,你将学会如何批判性地思考分布式架构的利弊。
软件架构老兵和实践顾问Neal Ford、Mark Richards、Pramod Sadalage、Zhamak Dehghani讨论了选择适合架构的策略。全书交织着一群虚构的技术专业人员(Sysops Squad)的故事,他们研究了从如何确定服务粒度、管理工作流和编排、管理和解耦契约、管理分布式事务到如何优化可扩展性、弹性和性能等操作特性的一切问题。
本书通过关注常见的问题,提供了一些技巧,帮助你在面对架构问题时进行权衡。
● 分析权衡并有效记录你的决策
● 作出更好的服务粒度决策
● 理解拆分单体应用的复杂性
● 管理和解耦服务之间的契约
● 在高度分布式架构中处理数据
● 学习在分解应用时的工作流和事务管理模式
  1. Preface
  2. 1. What Happens When There Are No “Best Practices”?
  3. Why “The Hard Parts”?
  4. Giving Timeless Advice About Software Architecture
  5. The Importance of Data in Architecture
  6. Architectural Decision Records
  7. Architecture Fitness Functions
  8. Architecture Versus Design: Keeping Definitions Simple
  9. Introducing the Sysops Squad Saga
  10. Part I. Pulling Things Apart
  11. 2. Discerning Coupling in Software Architecture
  12. Architecture (Quantum | Quanta)
  13. Sysops Squad Saga: Understanding Quanta
  14. 3. Architectural Modularity
  15. Modularity Drivers
  16. Sysops Squad Saga: Creating a Business Case
  17. 4. Architectural Decomposition
  18. Is the Codebase Decomposable?
  19. Component-Based Decomposition
  20. Tactical Forking
  21. Sysops Squad Saga: Choosing a Decomposition Approach
  22. 5. Component-Based Decomposition Patterns
  23. Identify and Size Components Pattern
  24. Gather Common Domain Components Pattern
  25. Flatten Components Pattern
  26. Determine Component Dependencies Pattern
  27. Create Component Domains Pattern
  28. Create Domain Services Pattern
  29. Summary
  30. 6. Pulling Apart Operational Data
  31. Data Decomposition Drivers
  32. Decomposing Monolithic Data
  33. Selecting a Database Type
  34. Sysops Squad Saga: Polyglot Databases
  35. 7. Service Granularity
  36. Granularity Disintegrators
  37. Granularity Integrators
  38. Finding the Right Balance
  39. Sysops Squad Saga: Ticket Assignment Granularity
  40. Sysops Squad Saga: Customer Registration Granularity
  41. Part II. Putting Things Back Together
  42. 8. Reuse Patterns
  43. Code Replication
  44. Shared Library
  45. Shared Service
  46. Sidecars and Service Mesh
  47. Sysops Squad Saga: Common Infrastructure Logic
  48. Code Reuse: When Does It Add Value?
  49. Sysops Squad Saga: Shared Domain Functionality
  50. 9. Data Ownership and Distributed Transactions
  51. Assigning Data Ownership
  52. Single Ownership Scenario
  53. Common Ownership Scenario
  54. Joint Ownership Scenario
  55. Service Consolidation Technique
  56. Data Ownership Summary
  57. Distributed Transactions
  58. Eventual Consistency Patterns
  59. Sysops Squad Saga: Data Ownership for Ticket Processing
  60. 10. Distributed Data Access
  61. Interservice Communication Pattern
  62. Column Schema Replication Pattern
  63. Replicated Caching Pattern
  64. Data Domain Pattern
  65. Sysops Squad Saga: Data Access for Ticket Assignment
  66. 11. Managing Distributed Workflows
  67. Orchestration Communication Style
  68. Choreography Communication Style
  69. Trade-Offs Between Orchestration and Choreography
  70. Sysops Squad Saga: Managing Workflows
  71. 12. Transactional Sagas
  72. Transactional Saga Patterns
  73. State Management and Eventual Consistency
  74. Techniques for Managing Sagas
  75. Sysops Squad Saga: Atomic Transactions and Compensating Updates
  76. 13. Contracts
  77. Strict Versus Loose Contracts
  78. Stamp Coupling
  79. Sysops Squad Saga: Managing Ticketing Contracts
  80. 14. Managing Analytical Data
  81. Previous Approaches
  82. The Data Mesh
  83. Sysops Squad Saga: Data Mesh
  84. 15. Build Your Own Trade-Off Analysis
  85. Finding Entangled Dimensions
  86. Trade-Off Techniques
  87. Sysops Squad Saga: Epilogue
  88. A. Concept and Term References
  89. B. Architecture Decision Record References
  90. C. Trade-Off References
  91. Index
书名:软件架构难点解惑(影印版)
国内出版社:东南大学出版社
出版时间:2023年03月
页数:440
书号:978-7-5766-0591-4
原版书书名:Software Architecture: The Hard Parts
原版书出版商:O'Reilly Media
Neal Ford
 
作为一名软件架构师与意见领袖,Neal Ford供职于ThoughtWorks(一家专注于端到端软件开发与交付的跨国IT咨询公司)。在加入ThoughtWorks之前,Neal是The DSW Group, Ltd.的技术总监 ── 这是一家在美国还算有名的培训与软件开发公司。Neal毕业于乔治亚州立大学,他拥有计算机科学的学位,专攻语言与编译器;同时他还辅修数学,专攻统计分析。现在他是一名软件设计师和开发者,此外也编撰培训材料、杂志文章和视频演讲,他还是几本图书的作者,包括《Developing with Delphi:Object-Oriented Techniques》(由Prentice-Hall出版)、《Jbuilder 3 Unleashed》(由Sams出版)和《Art of Java Web Development》(由Manning出版)等。他曾担任2006和2007版《No Fluff, Just Stuff文选》(Pragmatic Bookshelf)的编辑和作者。他擅长的编程语言包括Java、C#/.NET、Ruby、Groovy、函数式语言、Scheme、Object Pascal、C++和C等。他的咨询工作主要针对大规模企业应用的设计和开发。Neal曾在美国和其他国家进行现场授课,客户包括军方和很多世界500强的企业。作为演讲者,他同样在全球享有盛名,曾在世界各地举办的各种大型开发者会议上发表超过600场演讲。如果有兴趣了解更多关于Neal的信息,请访问他的网站:http://www.nealford.com。他也希望得到读者的反馈,他的邮件地址是nford@ thoughtworks.com。
Neal Ford a is software architect and Meme Wrangler at ThoughtWorks, a global IT consultancy
with an exclusive focus on end-to-end software development and delivery. Before joining
ThoughtWorks, Neal was the chief technology officer at The DSW Group, Ltd., a nationally
recognized training and development firm. Neal has a degree in computer science, specializing
in languages and compilers, from Georgia State University and a minor in mathematics,
specializing in statistical analysis. He is also the designer and developer of applications,
instructional materials, magazine articles, video presentations, and author of the books
Developing with Delphi: Object-Oriented Techniques (Prentice-Hall), JBuilder 3 Unleashed
(Sams), and Art of Java Web Development (Manning). He was editor of and contributor to the
2006 and 2007 editions of the No Fluff, Just Stuff Anthology (Pragmatic Bookshelf). His
language proficiencies include Java, C#/.NET, Ruby, Groovy, functional languages, Scheme,
Object Pascal, C++, and C. His primary consulting focus is the design and construction of largescale
enterprise applications. Neal has taught on-site classes nationally and internationally to
the military and to many Fortune 500 companies. He is also an internationally acclaimed
speaker, having spoken at over 100 developer conferences worldwide, delivering more than
600 talks. If you have an insatiable curiosity about Neal, visit his web site at http://
www.nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.
 
 
Mark Richards
 
Mark Richards是一位经验丰富的软件架构师,他参与了微服务架构、事件驱动架构和其他分布式架构的架构、设计和实现。
Mark Richards is an accomplished author and conference speaker working as a handson SOA and enterprise architect in the financial services industry. In addition to numerous published articles, he is the author of Java Transaction Design Strategies (C4Media), contributing author of 97 Things Every Software Architect Should Know (O’Reilly), and contributing author of No Fluff, Just Stuff Anthology Volumes 1 and 2
(Pragmatic Bookshelf). He is a recognized authority on messaging, Service-Oriented Architecture, and transaction management. Mark is a regular speaker on the NFJS
Software Symposium series and speaks at conferences around the world.
 
 
Pramod Sadalage
 
Pramod Sadalage是Thoughtworks的数据及DevOps总监,他擅长应用程序开发、敏捷数据库开发、演进式数据库设计、算法设计和数据库管理。
 
 
Zhamak Dehghani
 
Zhamak Dehghani是Thoughtworks的技术总监。她专注于企业中的分布式系统和数据架构领域,是多个技术咨询委员会的成员,包括Thoughtworks的技术委员会。Zhamak倡导一切事物的去中心化,包括架构、数据等。她是DataMesh的创始人。
 
 
The animal on the cover of Software Architecture: The Hard Parts is a black-rumped golden flameback woodpecker (Dinopium benghalense), a striking species of woodpecker found throughout the plains, foothills, forests, and urban areas of the Indian subcontinent.
This bird’s golden back is set atop a black shoulder and tail, the reason for its pyroinspired name. Adults have red crowns with black-and-white spotted heads and breasts, with a black stripe running from their eyes to the back of their heads. Like other common, small-billed woodpeckers, the black-rumped golden flameback has a straight pointed bill, a stiff tail to provide support against tree trunks, and four-toed feet—two toes pointing forward and two backward. As if its markings weren’t distinctive enough, the black-rumped golden flameback woodpecker is often detected by its call of “ki-ki-ki-ki-ki,” which steadily increases in pace.
This woodpecker feeds on insects, such as red ant and beetle larvae, underneath tree bark using its pointed bill and long tongue. They have been observed visiting termite mounds and even feeding on the nectar of flowers. The golden flameback also adapts well to urban habitats, subsisting on readily available fallen fruit and food scraps.
购买选项
定价:138.00元
书号:978-7-5766-0591-4
出版社:东南大学出版社