- Chapter 1 - Clean Code
- Chapter 2 - Meaningful Names
- Chapter 3 - Functions
- Chapter 4 - Comments
- Chapter 5 - Formatting
- Chapter 6 - Objects and Data Structures
- Chapter 7 - Error Handling
- Chapter 8 - Boundaries
- Chapter 9 - Unit Tests
- Chapter 10 - Classes
- Chapter 11 - Systems
- Chapter 12 - Emergence
- Chapter 13 - Concurrency
- Chapter 14 - Successive Refinement
- Chapter 15 - JUnit Internals
- Chapter 16 - Refactoring SerialDate
- Chapter 17 - Smells and Heuristics
-
Getting Started
-
Chapter I
-
Chapter II
-
Chapter III
- N-tier architecture
- Message Brokers
- Message Queues
- Publish-Subscribe
- Enterprise Service Bus (ESB)
- Monoliths and Microservices
- Event-Driven Architecture (EDA)
- Event Sourcing
- Command and Query Responsibility Segregation (CQRS)
- API Gateway
- REST, GraphQL, gRPC
- Long polling, WebSockets, Server-Sent Events (SSE)
-
Chapter IV
-
Chapter V
-
Appendix
自顶向下模型
在这种设计模型中,这个系统时定制的,我们并不知道系统每个部分的细节是什么。在每个部分中还有更多的细节。如果我们去深入了解一个这样设计的程序,需要一定是时间。这个我们做项目计划一样,我们已经有一个目标。我需要做的就是:
- 把大的目标分散成小目标
- 再把小目标分散成更小的目标,直到这个小目标很容易去完成。
优势
- 把问题拆分可以让我们更清楚需要做什么
- 每一步的细化,使问题变得更加的简单和容易解决
- 模块化的解决方案可以得到复用
- 把问题拆分后可以让多人来解决这个问题