软件架构基础(影印版)
Mark Richards, Neal Ford
出版时间:2020年12月
页数:420
在全球范围的薪资调查中,软件架构师经常位列十大最佳工作岗 位排行榜,但是却没有真正的指南来帮助开发人员成为架构师。现在,这本书来了。书中首次全面概述了软件架构的诸多方面。有抱负的和现有的架构师可以从中学习到架构特征、架构模式、组件确定、架构图解和展示、演化架构等诸多主题。
Mark Richards和Neal Ford —— 多年来专业教授软件架构课程的践行者,将重点放在适用于所有技术栈的架构原理上。本书将带你从现代的角度探究软件架构,思考过去十年间的所有创新成果。
本书介绍了:
● 架构模式:许多架构决策的技术基础
● 组件:识别、耦合、内聚、分割、粒度
● 软技能:有效的团队管理、会议、谈判、演讲等
● 现代性:过去数年间发生了根本性变化的工程实践和操作方法
● 作为工程学科的架构:可重现的结果、衡量标准以及提高软件架构严谨性的具体评估
  1. Preface: Invalidating Axioms
  2. 1. Introduction
  3. Defining Software Architecture
  4. Expectations of an Architect
  5. Expectations of an Architect
  6. Intersection of Architecture and...
  7. Laws of Software Architecture
  8. Part I. Foundations
  9. 2. Architectural Thinking
  10. Architecture Versus Design
  11. Technical Breadth
  12. Analyzing Trade-Offs
  13. Understanding Business Drivers
  14. Balancing Architecture and Hands-On Coding
  15. 3. Modularity
  16. Definition
  17. Measuring Modularity
  18. From Modules to Components
  19. 4. Architecture Characteristics Defined
  20. Architectural Characteristics (Partially) Listed
  21. Trade-Offs and Least Worst Architecture
  22. 5. Identifying Architectural Characteristics
  23. Extracting Architecture Characteristics from Domain Concerns
  24. Extracting Architecture Characteristics from Requirements
  25. Case Study: Silicon Sandwiches
  26. 6. Measuring and Governing Architecture Characteristics
  27. Measuring Architecture Characteristics
  28. Governance and Fitness Functions
  29. 7. Scope of Architecture Characteristics
  30. Coupling and Connascence
  31. Architectural Quanta and Granularity
  32. 8. Component-Based Thinking
  33. Component Scope
  34. Architect Role
  35. Developer Role
  36. Component Identification Flow
  37. Component Granularity
  38. Component Design
  39. Case Study: Going, Going, Gone: Discovering Components
  40. Architecture Quantum Redux: Choosing Between Monolithic Versus Distributed Architectures
  41. Part II. Architecture Styles
  42. 9. Foundations
  43. Fundamental Patterns
  44. Monolithic Versus Distributed Architectures
  45. 10. Layered Architecture Style
  46. Topology
  47. Layers of Isolation
  48. Adding Layers
  49. Other Considerations
  50. Why Use This Architecture Style
  51. Architecture Characteristics Ratings
  52. 11. Pipeline Architecture Style
  53. Topology
  54. Example
  55. Architecture Characteristics Ratings
  56. 12. Microkernel Architecture Style
  57. Topology
  58. Registry
  59. Contracts
  60. Examples and Use Cases
  61. Architecture Characteristics Ratings
  62. 13. Service-Based Architecture Style
  63. Topology
  64. Topology Variants
  65. Service Design and Granularity
  66. Database Partitioning
  67. Example Architecture
  68. Architecture Characteristics Ratings
  69. When to Use This Architecture Style
  70. 14. Event-Driven Architecture Style
  71. Topology
  72. Broker Topology
  73. Mediator Topology
  74. Asynchronous Capabilities
  75. Error Handling
  76. Preventing Data Loss
  77. Broadcast Capabilities
  78. Request-Reply
  79. Choosing Between Request-Based and Event-Based
  80. Hybrid Event-Driven Architectures
  81. Architecture Characteristics Ratings
  82. 15. Space-Based Architecture Style
  83. General Topology
  84. Data Collisions
  85. Cloud Versus On-Premises Implementations
  86. Replicated Versus Distributed Caching
  87. Near-Cache Considerations
  88. Implementation Examples
  89. Architecture Characteristics Ratings
  90. 16. Orchestration-Driven Service-Oriented Architecture
  91. History and Philosophy
  92. Topology
  93. Taxonomy
  94. Reuse...and Coupling
  95. Architecture Characteristics Ratings
  96. 17. Microservices Architecture
  97. History
  98. Topology
  99. Distributed
  100. Bounded Context
  101. API Layer
  102. Operational Reuse
  103. Frontends
  104. Communication
  105. Architecture Characteristics Ratings
  106. Additional References
  107. 18. Choosing the Appropriate Architecture Style
  108. Shifting “Fashion” in Architecture
  109. Decision Criteria
  110. Monolith Case Study: Silicon Sandwiches
  111. Distributed Case Study: Going, Going, Gone
  112. Part III. Techniques and Soft Skills
  113. 19. Architecture Decisions
  114. Architecture Decision Anti-Patterns
  115. Architecturally Significant
  116. Architecture Decision Records
  117. 20. Analyzing Architecture Risk
  118. Risk Matrix
  119. Risk Assessments
  120. Risk Storming
  121. Agile Story Risk Analysis
  122. Risk Storming Examples
  123. 21. Diagramming and Presenting Architecture
  124. Diagramming
  125. Presenting
  126. 22. Making Teams Effective
  127. Team Boundaries
  128. Architect Personalities
  129. How Much Control?
  130. Team Warning Signs
  131. Leveraging Checklists
  132. Providing Guidance
  133. Summary
  134. 23. Negotiation and Leadership Skills
  135. Negotiation and Facilitation
  136. The Software Architect as a Leader
  137. Integrating with the Development Team
  138. Summary
  139. 24. Developing a Career Path
  140. The 20-Minute Rule
  141. Developing a Personal Radar
  142. Using Social Media
  143. Parting Words of Advice
  144. A. Self-Assessment Questions
  145. Index
书名:软件架构基础(影印版)
作者:Mark Richards, Neal Ford
国内出版社:东南大学出版社
出版时间:2020年12月
页数:420
书号:978-7-5641-9206-8
原版书书名:Fundamentals of Software Architecture
原版书出版商:O'Reilly Media
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.
 
 
Neal Ford
 
Neal Ford是Thoughtworks公司的总监、软件架构师和meme wrangler。
 
 
The animal on the cover of Fundamentals of Software Engineering is the red-fan parrot (Deroptyus accipitrinus), a native to South America where it is known by several names such as loro cacique in Spanish, or anaca, papagaio-de-coleira, and vanaquiá in Portugese. This New World bird makes its home up in the canopies and tree holes of the Amazon rainforest, where it feeds on the fruits of the Cecropia tree, aptly known as "snake fingers," as well as the hard fruits of various palm trees.
As the only member of the genus Deroptyus, the red-fan parrot is distinguished by the deep red feathers that cover its nape. Its name comes from the fact that those feathers will “fan” out when it feels excited or threatened and reveal the brilliant blue that highlights each tip. The head is topped by a white crown and yellow eyes, with brown cheeks that are streaked in white. The parrot’s breast and belly are covered in the same red feathers dipped in blue, in contrast with the layered bright green feathers on its back.
Between December and January, the red-fan parrot will find its lifelong mate and then begin laying 2-4 eggs a year. During the 28 days in which the female is incubating the eggs, the male will provide her with care and support. After about 10 weeks, the young are ready to start fledging in the wild and begin their 40-year life span in the world’s largest tropical rainforest.
While the red-fan parrot’s current conservation status is designated as of Least Concern, many of the animals on O’Reilly covers are endangered; all of them are important to the world.
The cover illustration is by Karen Montgomery, based on a black and white engraving from Lydekker’s Royal Natural History. The cover fonts are Gilroy Semibold and Guardian Sans. The text font is Adobe Minion Pro; the heading font is Adobe Myriad Condensed; and the code font is Dalton Maag’s Ubuntu Mono.
购买选项
定价:112.00元
书号:978-7-5641-9206-8
出版社:东南大学出版社