
عنوان:
Software Architecture
نویسنده:
Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
انتشارات:
O'Reilly Media
تاریخ انتشار:
2021
حجم:
7.2MB
معرفی کتاب:" چالشهای دشوار در معماری نرمافزار: بررسی مصالحهها در سیستمهای توزیعشده — ویرایش اول
در معماری نرمافزار، چیزی بهعنوان «تصمیم آسان» وجود ندارد. بیشتر مسائل معماری، چالشهایی بدون راهحل قطعی هستند که مستلزم انتخاب میان گزینههایی با مصالحههای مختلفاند. این کتاب به شما میآموزد چگونه بهصورت انتقادی و سیستماتیک به این تصمیمات فکر کنید و در معماریهای توزیعشده بهترین انتخاب ممکن را داشته باشید.
ویژگیهای کلیدی:
- آموزش نحوه تصمیمگیری در شرایط پرچالش معماری
- تحلیل مصالحهها در معماریهای توزیعشده
- شبیهسازی تصمیمات واقعی از طریق داستانهای کاربردی
معرفی کلی کتاب:
چهار متخصص برجسته معماری نرمافزار یعنی نیل فورد، مارک ریچاردز، پرامود سادالاگ و ژامک دقانی در این کتاب با بهرهگیری از داستانی دربارهی تیم خیالی Sysops Squad، مسائل کلیدی در طراحی معماری را بررسی میکنند؛ از سطح تفکیک خدمات گرفته تا تراکنشهای توزیعشده و ویژگیهای عملیاتی سیستم مانند کشسانی و مقیاسپذیری.
آنچه در این کتاب خواهید آموخت:
- تحلیل مصالحههای معماری و مستندسازی درست تصمیمات
- شناخت عوامل مؤثر در تعیین اندازه مناسب خدمات (Service Granularity)
- درک پیچیدگیهای جداسازی سیستمهای یکپارچه (Monoliths)
- مدیریت قراردادها و وابستگیها بین سرویسها
- کار با دادهها در معماریهای بهشدت توزیعشده
- آشنایی با الگوهای طراحی جریان کاری و تراکنش در سیستمهای مدرن
مناسب چه کسانی است؟
این کتاب برای معماران نرمافزار، توسعهدهندگان باتجربه، تیمهای DevOps و هر کسی که با تصمیمگیریهای حیاتی در طراحی سیستمهای توزیعشده سروکار دارد مناسب است. با مطالعه آن میتوانید تصمیمات فنی را با تحلیل بهتر و پشتوانهی منطقی اتخاذ کنید.
در پایان این کتاب:
توانایی آن را خواهید داشت که در لحظات کلیدی معماری تصمیمات پیچیده را تحلیل و مدیریت کنید و در مواجهه با مصالحههای گریزناپذیر، راهحلهای مناسب و قابل دفاع بیابید.
فهرست مطالب
- Preface
- Chapter 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
- Architecture Versus Design: Keeping Definitions Simple
- Introducing the Sysops Squad Saga
- Part I. Pulling Things Apart
- Chapter 2. Discerning Coupling in Software Architecture
- Architecture (Quantum | Quanta)
- Sysops Squad Saga: Understanding Quanta
- Chapter 3. Architectural Modularity
- Modularity Drivers
- Sysops Squad Saga: Creating a Business Case
- Chapter 4. Architectural Decomposition
- Is the Codebase Decomposable?
- Component-Based Decomposition
- Tactical Forking
- Sysops Squad Saga: Choosing a Decomposition Approach
- Chapter 5. Component-Based Decomposition Patterns
- Identify and Size Components Pattern
- Gather Common Domain Components Pattern
- Flatten Components Pattern
- Determine Component Dependencies Pattern
- Create Component Domains Pattern
- Create Domain Services Pattern
- Summary
- Chapter 6. Pulling Apart Operational Data
- Data Decomposition Drivers
- Decomposing Monolithic Data
- Selecting a Database Type
- Sysops Squad Saga: Polyglot Databases
- Chapter 7. Service Granularity
- Granularity Disintegrators
- Granularity Integrators
- Finding the Right Balance
- Sysops Squad Saga: Ticket Assignment Granularity
- Sysops Squad Saga: Customer Registration Granularity
- Part II. Putting Things Back Together
- Chapter 8. Reuse Patterns
- Code Replication
- Shared Library
- Shared Service
- Sidecars and Service Mesh
- Sysops Squad Saga: Common Infrastructure Logic
- Code Reuse: When Does It Add Value?
- Sysops Squad Saga: Shared Domain Functionality
- Chapter 9. Data Ownership and Distributed Transactions
- Assigning Data Ownership
- Single Ownership Scenario
- Common Ownership Scenario
- Joint Ownership Scenario
- Service Consolidation Technique
- Data Ownership Summary
- Distributed Transactions
- Eventual Consistency Patterns
- Sysops Squad Saga: Data Ownership for Ticket Processing
- Chapter 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
- Chapter 11. Managing Distributed Workflows
- Orchestration Communication Style
- Choreography Communication Style
- Trade-Offs Between Orchestration and Choreography
- Sysops Squad Saga: Managing Workflows
- Chapter 12. Transactional Sagas
- Transactional Saga Patterns
- State Management and Eventual Consistency
- Techniques for Managing Sagas
- Sysops Squad Saga: Atomic Transactions and Compensating Updates
- Chapter 13. Contracts
- Strict Versus Loose Contracts
- Stamp Coupling
- Sysops Squad Saga: Managing Ticketing Contracts
- Chapter 14. Managing Analytical Data
- Previous Approaches
- The Data Mesh
- Sysops Squad Saga: Data Mesh
- Chapter 15. Build Your Own Trade-Off Analysis
- Finding Entangled Dimensions
- Trade-Off Techniques
- Sysops Squad Saga: Epilogue
- Appendix A. Concept and Term References
- Appendix B. Architecture Decision Record References
- Appendix C. Trade-Off References
- Index
مشخصات
نام کتاب
Software Architecture
نویسنده
Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
انتشارات
O'Reilly Media
تاریخ انتشار
2021
ISBN
9781492086895
تعداد صفحات
845
زبان
انگلیسی
فرمت
حجم
7.2MB
موضوع
software-development