Cart

Software Architecture and Decision-Making: Leveraging Leadership, Technology, and Product Management to Build Great Products, 1st edition

BRAND: PEARSON

Publisher: Addison-Wesley Professional (November 21, 2023) © 2024
Srinath Perera | eBook ISBN: 9780138249595
eBook edition. 1 Year Subscription. Dành cho Cá nhân  |  Trường ĐH, Nhóm, Thư Viện: Gọi 0915920514 để báo giá Pearson, Vital Source eBook hoặc mua Sách In  

ISBN: 9780138249731
Giá bán lẻ: 1,208,000₫
Số lượng:
Tổng tiền:
Giá có thể thay đổi bất kỳ khi nào.
Thời hạn giao hàng: 03 ngày làm việc với sách digital và 30 ngày với sách in. Gọi để được Tư vấn Giáo Trình.

Mô tả sản phẩm


Tận dụng kiến ​​thức lãnh đạo để đưa ra quyết định về kiến ​​trúc phần mềm tốt hơn. Hãy suy nghĩ sâu sắc nhưng thực hiện từ từ.

Mục tiêu bao trùm của hệ thống phần mềm (do đó, đối với kiến ​​trúc phần mềm) là xây dựng các hệ thống đáp ứng các tiêu chuẩn chất lượng và mang lại lợi tức đầu tư (ROI) cao nhất trong thời gian dài hoặc trong một khoảng thời gian xác định.

Một sản phẩm tuyệt vời đòi hỏi sự kết hợp giữa công nghệ, khả năng lãnh đạo và quản lý sản phẩm (bao gồm cả UX). Lãnh đạo chủ yếu là quản lý sự không chắc chắn và đưa ra phán đoán đúng đắn. Để xây dựng những sản phẩm tuyệt vời, các nhà lãnh đạo kỹ thuật cần kết hợp kiến ​​thức về công nghệ, khả năng lãnh đạo và quản lý sản phẩm cũng như đưa ra quyết định đúng đắn. Nhiều lỗi kỹ thuật xuất phát từ khoảng cách giữa kiến ​​thức về ba mục này và phán đoán.

Trong Kiến trúc phần mềm và ra quyết định, Srinath Perera giải thích các nguyên tắc và khái niệm mà kiến ​​trúc sư phần mềm phải hiểu sâu sắc và cách sử dụng những nguyên tắc đó để quản lý sự không chắc chắn. Các câu hỏi và nguyên tắc được thảo luận trong cuốn sách này giúp quản lý sự không chắc chắn trong khi xây dựng kiến ​​trúc phần mềm và cung cấp một khuôn khổ để đưa ra quyết định. Cuốn sách này dành cho tất cả các nhà lãnh đạo kỹ thuật trong ngành công nghiệp phần mềm, những người đưa ra những đánh giá toàn diện về hệ thống mà họ xây dựng và dành cho các nhà lãnh đạo tương lai đang học nghề.

Hiểu được tầm quan trọng của việc ra quyết định đúng đắn với những ví dụ từ các nhà lãnh đạo kỹ thuật vĩ đại như anh em nhà Wright và Kelly Johnson
Tận dụng năm câu hỏi chính và bảy nguyên tắc quan trọng để hiểu những điều không chắc chắn trong quá trình thiết kế và đưa ra các quyết định kiến ​​trúc chiến lược
Tiếp cận thiết kế một cách có hệ thống, đầu tiên ở cấp độ vĩ mô và sau đó là cấp độ dịch vụ cá nhân
Hướng dẫn dứt khoát này giải thích các nguyên tắc và khái niệm--kỹ thuật và phi kỹ thuật giống nhau--mà các kiến ​​trúc sư phần mềm, kỹ sư phần mềm cao cấp và lãnh đạo kỹ thuật phải hiểu để quản lý sự không chắc chắn không thể tránh khỏi liên quan đến việc xây dựng hệ thống phần mềm và thúc đẩy sự thành công của các sản phẩm mà họ chịu trách nhiệm.


Chapter 1: Introduction to Software Leadership
   1

Role of Judgment   1

Goal of This Book   3

Part I: Introduction   6

Part II: Essential Background   7

Part III: System Design   7

Part IV: Putting Everything Together   8

 

Chapter 2: Understanding Systems, Design, and Architecture
   9

What Is Software Architecture?    9

How to Design a System   11

Five Questions   12

Seven Principles: The Overarching Concepts   16

Designing for an Online Bookstore   24

Designing for the Cloud   27

Summary   29

 

Chapter 3: Mental Models for Understanding and Explaining System Performance
   31

A Computer System   32

Models for Performance   33

Optimization Techniques   41

Intuitive Feel for Performance   46

Leadership Considerations   46

Summary   47

 

Chapter 4: Understanding User Experience (UX)
    49

General UX Concepts for Architects   49

UX Design for Configurations   53

UX Design for APIs   54

UX Design for Extensions   56

Leadership Considerations   57

Summary   57

 

Chapter 5: Macro Architecture: Introduction
   59

History of Macro Architecture   60

Modern Architectures   62

Macro Architectural Building Blocks   63

Leadership Considerations   66

Summary   68

 

Chapter 6: Macro Architecture: Coordination
   69

Approach 1: Drive Flow from Client   69

Approach 2: Use Another Service   70

Approach 3: Use Centralized Middleware   71

Approach 4: Implement Choreography   71

Leadership Considerations   73

Summary   73

 

Chapter 7: Macro Architecture: Preserving Consistency of State
   75

Why Transactions?    75

Why Do We Need to Go Beyond Transactions?    76

Going Beyond Transactions   77

Best Practices   80

Leadership Considerations   81

Summary   83

 

Chapter 8: Macro Architecture: Handling Security
   85

User Management   86

Interaction Security   88

Storage, GDPR, and Other Regulations   96

Security Strategy and Advice   98

Leadership Considerations   101

Summary   103

 

Chapter 9: Macro Architecture: Handling High Availability and Scale
   105

Adding High Availability   105

Understanding Scalability   109

Scaling for a Modern Architecture: Base Solution   110

Scaling: The Tools of Trade   111

Building Scalable Systems   113

Leadership Considerations   117

Summary   118

 

Chapter 10: Macro Architecture: Microservices Considerations
   119

Decision 1: Handling Shared Database(s)    120

Decision 2: Securing Microservices   122

Decision 3: Coordinating Microservices    122

Decision 4: Avoiding Dependency Hell   122

Loosely Coupled, Repository-Based Teams as an Alternative to Microservices   125

Leadership Considerations   126

Summary   127

 

Chapter 11: Server Architectures
   129

Writing a Service   129

Understanding Best Practices for Writing a Service   130

Understanding Advanced Techniques   132

Using These Techniques in Practice   143

Leadership Considerations   146

Summary   147

 

Chapter 12: Building Stable Systems
   149

Why Do Systems Fail, and What Can We Do About Them?    149

How to Handle Known Errors   151

Common Bugs   159

How to Handle Unknown Errors   161

Graceful Degradation   163

Leadership Considerations   163

Summary   164

 

Chapter 13: Building and Evolving the Systems
   165

Getting Your Hands Dirty   165

Communicating the Design   172

Evolving the System: How to Learn from Your Users and Improve the System   172

Leadership Considerations   175

Summary   176

 

Index
   179

TỔNG QUAN SÁCH

Tận dụng kiến ​​thức lãnh đạo để đưa ra quyết định về kiến ​​trúc phần mềm tốt hơn. Hãy suy nghĩ sâu sắc nhưng thực hiện từ từ.

Mục tiêu bao trùm của hệ thống phần mềm (do đó, đối với kiến ​​trúc phần mềm) là xây dựng các hệ thống đáp ứng các tiêu chuẩn chất lượng và mang lại lợi tức đầu tư (ROI) cao nhất trong thời gian dài hoặc trong một khoảng thời gian xác định.

Một sản phẩm tuyệt vời đòi hỏi sự kết hợp giữa công nghệ, khả năng lãnh đạo và quản lý sản phẩm (bao gồm cả UX). Lãnh đạo chủ yếu là quản lý sự không chắc chắn và đưa ra phán đoán đúng đắn. Để xây dựng những sản phẩm tuyệt vời, các nhà lãnh đạo kỹ thuật cần kết hợp kiến ​​thức về công nghệ, khả năng lãnh đạo và quản lý sản phẩm cũng như đưa ra quyết định đúng đắn. Nhiều lỗi kỹ thuật xuất phát từ khoảng cách giữa kiến ​​thức về ba mục này và phán đoán.

Trong Kiến trúc phần mềm và ra quyết định, Srinath Perera giải thích các nguyên tắc và khái niệm mà kiến ​​trúc sư phần mềm phải hiểu sâu sắc và cách sử dụng những nguyên tắc đó để quản lý sự không chắc chắn. Các câu hỏi và nguyên tắc được thảo luận trong cuốn sách này giúp quản lý sự không chắc chắn trong khi xây dựng kiến ​​trúc phần mềm và cung cấp một khuôn khổ để đưa ra quyết định. Cuốn sách này dành cho tất cả các nhà lãnh đạo kỹ thuật trong ngành công nghiệp phần mềm, những người đưa ra những đánh giá toàn diện về hệ thống mà họ xây dựng và dành cho các nhà lãnh đạo tương lai đang học nghề.

Hiểu được tầm quan trọng của việc ra quyết định đúng đắn với những ví dụ từ các nhà lãnh đạo kỹ thuật vĩ đại như anh em nhà Wright và Kelly Johnson
Tận dụng năm câu hỏi chính và bảy nguyên tắc quan trọng để hiểu những điều không chắc chắn trong quá trình thiết kế và đưa ra các quyết định kiến ​​trúc chiến lược
Tiếp cận thiết kế một cách có hệ thống, đầu tiên ở cấp độ vĩ mô và sau đó là cấp độ dịch vụ cá nhân
Hướng dẫn dứt khoát này giải thích các nguyên tắc và khái niệm--kỹ thuật và phi kỹ thuật giống nhau--mà các kiến ​​trúc sư phần mềm, kỹ sư phần mềm cao cấp và lãnh đạo kỹ thuật phải hiểu để quản lý sự không chắc chắn không thể tránh khỏi liên quan đến việc xây dựng hệ thống phần mềm và thúc đẩy sự thành công của các sản phẩm mà họ chịu trách nhiệm.

MỤC LỤC

Chapter 1: Introduction to Software Leadership
   1

Role of Judgment   1

Goal of This Book   3

Part I: Introduction   6

Part II: Essential Background   7

Part III: System Design   7

Part IV: Putting Everything Together   8

 

Chapter 2: Understanding Systems, Design, and Architecture
   9

What Is Software Architecture?    9

How to Design a System   11

Five Questions   12

Seven Principles: The Overarching Concepts   16

Designing for an Online Bookstore   24

Designing for the Cloud   27

Summary   29

 

Chapter 3: Mental Models for Understanding and Explaining System Performance
   31

A Computer System   32

Models for Performance   33

Optimization Techniques   41

Intuitive Feel for Performance   46

Leadership Considerations   46

Summary   47

 

Chapter 4: Understanding User Experience (UX)
    49

General UX Concepts for Architects   49

UX Design for Configurations   53

UX Design for APIs   54

UX Design for Extensions   56

Leadership Considerations   57

Summary   57

 

Chapter 5: Macro Architecture: Introduction
   59

History of Macro Architecture   60

Modern Architectures   62

Macro Architectural Building Blocks   63

Leadership Considerations   66

Summary   68

 

Chapter 6: Macro Architecture: Coordination
   69

Approach 1: Drive Flow from Client   69

Approach 2: Use Another Service   70

Approach 3: Use Centralized Middleware   71

Approach 4: Implement Choreography   71

Leadership Considerations   73

Summary   73

 

Chapter 7: Macro Architecture: Preserving Consistency of State
   75

Why Transactions?    75

Why Do We Need to Go Beyond Transactions?    76

Going Beyond Transactions   77

Best Practices   80

Leadership Considerations   81

Summary   83

 

Chapter 8: Macro Architecture: Handling Security
   85

User Management   86

Interaction Security   88

Storage, GDPR, and Other Regulations   96

Security Strategy and Advice   98

Leadership Considerations   101

Summary   103

 

Chapter 9: Macro Architecture: Handling High Availability and Scale
   105

Adding High Availability   105

Understanding Scalability   109

Scaling for a Modern Architecture: Base Solution   110

Scaling: The Tools of Trade   111

Building Scalable Systems   113

Leadership Considerations   117

Summary   118

 

Chapter 10: Macro Architecture: Microservices Considerations
   119

Decision 1: Handling Shared Database(s)    120

Decision 2: Securing Microservices   122

Decision 3: Coordinating Microservices    122

Decision 4: Avoiding Dependency Hell   122

Loosely Coupled, Repository-Based Teams as an Alternative to Microservices   125

Leadership Considerations   126

Summary   127

 

Chapter 11: Server Architectures
   129

Writing a Service   129

Understanding Best Practices for Writing a Service   130

Understanding Advanced Techniques   132

Using These Techniques in Practice   143

Leadership Considerations   146

Summary   147

 

Chapter 12: Building Stable Systems
   149

Why Do Systems Fail, and What Can We Do About Them?    149

How to Handle Known Errors   151

Common Bugs   159

How to Handle Unknown Errors   161

Graceful Degradation   163

Leadership Considerations   163

Summary   164

 

Chapter 13: Building and Evolving the Systems
   165

Getting Your Hands Dirty   165

Communicating the Design   172

Evolving the System: How to Learn from Your Users and Improve the System   172

Leadership Considerations   175

Summary   176

 

Index
   179

-%
0₫ 0₫
0915920514
0915920514