dev
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDevelopment Fundamentals
开发基础知识
Overview
概述
This skill covers the foundational knowledge every software developer should command — drawn from canonical published works and industry-proven practices. It spans from low-level algorithms through code craftsmanship to system-level architecture.
本技能涵盖每位软件开发人员都应掌握的基础知识——源自经典出版著作和行业验证的实践经验。内容从底层算法延伸到代码工艺,再到系统级架构。
Knowledge Map
知识图谱
┌─────────────────────────────────────────────────────────┐
│ Architecture │
│ Microservices, Monoliths, DDD, Event-Driven, │
│ Hexagonal, Well-Architected Frameworks │
├─────────────────────────────────────────────────────────┤
│ Frontend │ Backend │
│ SPA, PWA, Micro-frontends, │ Data Modeling, API │
│ SSR, Islands Architecture │ Design, Caching, Auth │
├─────────────────────────────────────────────────────────┤
│ Integration Patterns │ Design Patterns │
│ EIP: Messaging, Routing, │ GoF: Creational, │
│ Transformation, Endpoints │ Structural, Behavioral │
├─────────────────────────────────────────────────────────┤
│ Algorithms & Data Structures │
│ Sorting, Searching, Graphs, DP, Combinatorial │
├─────────────────────────────────────────────────────────┤
│ Craftsmanship │
│ Clean Code, Clean Architecture, SOLID, 12-Factor, │
│ Refactoring, Boy Scout Rule │
└─────────────────────────────────────────────────────────┘┌─────────────────────────────────────────────────────────┐
│ Architecture │
│ Microservices, Monoliths, DDD, Event-Driven, │
│ Hexagonal, Well-Architected Frameworks │
├─────────────────────────────────────────────────────────┤
│ Frontend │ Backend │
│ SPA, PWA, Micro-frontends, │ Data Modeling, API │
│ SSR, Islands Architecture │ Design, Caching, Auth │
├─────────────────────────────────────────────────────────┤
│ Integration Patterns │ Design Patterns │
│ EIP: Messaging, Routing, │ GoF: Creational, │
│ Transformation, Endpoints │ Structural, Behavioral │
├─────────────────────────────────────────────────────────┤
│ Algorithms & Data Structures │
│ Sorting, Searching, Graphs, DP, Combinatorial │
├─────────────────────────────────────────────────────────┤
│ Craftsmanship │
│ Clean Code, Clean Architecture, SOLID, 12-Factor, │
│ Refactoring, Boy Scout Rule │
└─────────────────────────────────────────────────────────┘Canonical Works
经典著作
| Book | Author | Covers |
|---|---|---|
| Design Patterns | Gamma, Helm, Johnson, Vlissides (GoF) | 23 object-oriented patterns |
| Enterprise Integration Patterns | Hohpe & Woolf | Messaging, routing, transformation |
| The Art of Computer Programming | Donald Knuth | Algorithms, data structures, combinatorics |
| Clean Code | Robert C. Martin | Naming, functions, formatting, comments |
| Clean Architecture | Robert C. Martin | Dependency rule, boundaries, layers |
| Refactoring | Martin Fowler | Code smells, refactoring catalog |
| Domain-Driven Design | Eric Evans | Bounded contexts, aggregates, ubiquitous language |
| Building Microservices | Sam Newman | Service decomposition, communication, deployment |
| The Pragmatic Programmer | Hunt & Thomas | Career, approach, tools, pragmatic philosophy |
| The Twelve-Factor App | Adam Wiggins (Heroku) | Cloud-native application methodology |
| Release It! | Michael Nygard | Stability patterns, capacity, deployment |
| Fundamentals of Software Architecture | Richards & Ford | Architecture styles, characteristics, decisions |
| 书籍 | 作者 | 涵盖内容 |
|---|---|---|
| Design Patterns | Gamma, Helm, Johnson, Vlissides (GoF) | 23种面向对象模式 |
| Enterprise Integration Patterns | Hohpe & Woolf | 消息传递、路由、转换 |
| The Art of Computer Programming | Donald Knuth | 算法、数据结构、组合数学 |
| Clean Code | Robert C. Martin | 命名规范、函数设计、代码格式、注释 |
| Clean Architecture | Robert C. Martin | 依赖规则、边界划分、层级架构 |
| Refactoring | Martin Fowler | 代码坏味道、重构目录 |
| Domain-Driven Design | Eric Evans | 限界上下文、聚合根、通用语言 |
| Building Microservices | Sam Newman | 服务拆分、通信机制、部署策略 |
| The Pragmatic Programmer | Hunt & Thomas | 职业发展、工作方法、工具使用、务实理念 |
| The Twelve-Factor App | Adam Wiggins (Heroku) | 云原生应用方法论 |
| Release It! | Michael Nygard | 稳定性模式、容量规划、部署策略 |
| Fundamentals of Software Architecture | Richards & Ford | 架构风格、架构特性、决策方法 |
Choosing the Right Pattern Category
选择合适的模式类别
| Problem | Look In |
|---|---|
| Object creation complexity | Design Patterns → Creational |
| Composing objects / adapting interfaces | Design Patterns → Structural |
| Object communication / state management | Design Patterns → Behavioral |
| Service-to-service messaging | Integration Patterns |
| Algorithm selection / optimization | Algorithms |
| Code readability and maintainability | Craftsmanship |
| System decomposition and boundaries | Architecture |
| Client-side application structure | Frontend |
| Server-side data and API structure | Backend |
| 问题场景 | 参考类别 |
|---|---|
| 对象创建复杂度高 | 设计模式 → 创建型 |
| 对象组合/接口适配 | 设计模式 → 结构型 |
| 对象通信/状态管理 | 设计模式 → 行为型 |
| 服务间消息传递 | 集成模式 |
| 算法选型/优化 | 算法 |
| 代码可读性与可维护性 | 代码工艺 |
| 系统拆分与边界划分 | 架构 |
| 客户端应用结构 | 前端 |
| 服务端数据与API结构 | 后端 |
Best Practices
最佳实践
- Learn patterns as a vocabulary, not a checklist — apply them when the problem calls for it, not preemptively.
- Start with the simplest architecture that works (monolith), evolve toward complexity (microservices) only when you have evidence you need it.
- Apply the Boy Scout Rule: leave code better than you found it, every time you touch it.
- Use SOLID principles as guardrails for daily decisions, not just for greenfield design.
- Prefer composition over inheritance — most GoF patterns are variations of this principle.
- Study algorithms for problem-solving intuition, not memorization — know when to reach for a graph algorithm vs. dynamic programming.
- Keep integration patterns in mind whenever systems need to communicate — messaging solves problems that synchronous calls create.
- 将模式视为一种通用词汇,而非检查清单——仅在问题需要时应用,而非预先套用。
- 从最简单的可行架构(单体应用)开始,仅当有明确证据表明需要时,再逐步演进为复杂架构(微服务)。
- 遵循童子军规则:每次修改代码时,都要让代码比你接手时更优质。
- 将SOLID原则作为日常决策的准则,而非仅用于全新项目的设计。
- 优先使用组合而非继承——大部分GoF模式都是这一原则的变体。
- 学习算法是为了培养问题解决直觉,而非死记硬背——要知道何时选择图算法,何时选择动态规划。
- 当系统需要通信时,牢记集成模式——消息传递可以解决同步调用带来的问题。