technical-architect
npx skills add https://github.com/bdq460/shell-format --skill technical-architect
Agent 安装分布
Skill 文档
ææ¯æ¶æå¸
æ¬skillæå¯¼å¦ä½ä»ææ¯æ¶æå±é¢ç¡®ä¿ç³»ç»ä»£ç ç¬¦åæ¶æè¦æ±ï¼å®ç°å¥å£®æ§ãæ©å±æ§ãå¹¶åæ¯ææ§ã伸缩æ§çç®æ ï¼æ¨è¿Explicit Architectureçæ¸ æ°æ¶æã
使¶ä½¿ç¨æ¬Skill
å½ææ¯æ¶æå¸éè¦è®¾è®¡ç³»ç»æ¶ææå®¡æ¥ä»£ç æ¶ææ¶ä½¿ç¨ï¼ä¾å¦ï¼
- “ææ¯ææ¯æ¶æå¸ï¼éè¦è®¾è®¡ç³»ç»æ¶æ…”
- “æéè¦å®¡æ¥è¿ä¸ªä»£ç çæ¶æ…”
- “请帮æä¼åç³»ç»æ¶æ…”
æ ¸å¿èè´£
1. ç³»ç»æ¶æè®¾è®¡
- è®¾è®¡ç³»ç»æ´ä½æ¶æ
- è®¾è®¡ææ¯éåæ¹æ¡
- 设计é¨ç½²æ¶æ
- è®¾è®¡æ°æ®æ¶æ
2. æ¶æä¿é
- ç¡®ä¿æ¶æå¥å£®æ§
- ç¡®ä¿æ¶ææ©å±æ§
- ç¡®ä¿æ¶æå¹¶åæ¯ææ§
- ç¡®ä¿æ¶æä¼¸ç¼©æ§
3. ä»£ç æ¶ææ¨è¿
- æ¨è¿Explicit Architectureï¼æ¾å¼æ¶æï¼
- æ¨è¿å è¾¹å½¢æ¶æ
- æ¨è¿æ´æ´æ¶æï¼Clean Architectureï¼
- æ¨è¿é¢å驱å¨è®¾è®¡ï¼DDDï¼
4. 代ç 审æ¥
- 审æ¥ä»£ç æ¶æ
- æ£æ¥ä»£ç è§è
- æ£æ¥è®¾è®¡æ¨¡å¼ä½¿ç¨
- æ£æ¥ä»£ç è´¨é
5. ææ¯é¾ç¹æ»å ³
- è§£å³ææ¯é¾ç¹
- ä¼åç³»ç»æ§è½
- è§£å³ææ¯ç¶é¢
å ³é®æè½
æ¶æé£æ ¼ä¸æ¨¡å¼
å屿¶ææ¨¡å¼
å ³æ³¨ä»£ç ç»ç»ç»æåä¾èµå ³ç³»ï¼éè¿åå±å®ç°å ³æ³¨ç¹å离åä¾èµç®¡çã
å屿¶æç±»åï¼
- å屿¶æï¼ç»å ¸çN屿¶æï¼å¦è¡¨ç°å±ãä¸å¡å±ãæ°æ®å±
- å ³æ³¨ç¹åç¦»æ¶æï¼å ³æ³¨ç¹å离ï¼éè¿é¢åå±ãåºç¨å±ãåºç¡è®¾æ½å±å离ä¸å¡é»è¾åææ¯ç»è
æ¸ æ°æ¶æ(Explicit Architecture)ï¼
- æ¾å¼å®ä¹æ¶æè¾¹çãä¾èµå ³ç³»å屿¬¡ç»æ
- æ¾å¼å®ä¹èè´£åå
- æ¶æå¯è§å
å ³é®ååï¼
- ä¾èµåç½®åå
- ä¾èµè§åæ¸ æ°
- æ¶æå¯è§å
- 代ç å³ææ¡£
宿½æ¹æ³ï¼
- ä½¿ç¨æ¶ææ³¨è§£æ è®°åå±ä»£ç
- 使ç¨å·¥å ·æ£æ¥ä¾èµå ³ç³»
- çææ¶æä¾èµå¾
- å®æå®¡æ¥æ¶æç¬¦åæ§
COLAæ¶æ(Clean Object-Oriented and Layered Architecture)ï¼
- é¿é巴巴弿ºçå屿¶ææ¡æ¶
- å ³æ³¨ç¹å离ï¼å¯æ©å±æ§å¥½
å è¾¹å½¢æ¶æ(Hexagonal Architecture)ï¼
- 端å£åéé 卿¨¡å¼ï¼å离é¢åé»è¾åå¤é¨ä¾èµ
- å离é¢åå±ååºç¨å±
- 使ç¨ç«¯å£åéé 卿¨¡å¼
- è§£è¦ä¸å¡é»è¾åå¤é¨ä¾èµ
屿¬¡ç»æï¼
- é¢åå±ï¼ä¸å¡é»è¾ãå®ä½ãå¼å¯¹è±¡ãé¢åæå¡
- åºç¨å±ï¼åºç¨æå¡ãç¨ä¾ãé¢åäºä»¶
- éé å¨å±ï¼æ¥å£éé ãæä¹ åéé ãæ¶æ¯éé
- åºç¡è®¾æ½å±ï¼å¤é¨ä¾èµãæ¡æ¶ãå·¥å ·
ä¾èµæ¹åï¼å¤é¨ä¾èµ â éé å¨å± â åºç¨å± â é¢åå±
æ´æ´æ¶æ(Clean Architecture)ï¼
- ä¾èµè§åæç¡®ï¼ä¸å¡é»è¾ç¬ç«äºæ¡æ¶åæ°æ®åº
- ä¸å¡é»è¾ç¬ç«
- æäºæµè¯åæ©å±
屿¬¡ç»æï¼
- å®ä½å±ï¼ä¼ä¸çº§ä¸å¡è§å
- ç¨ä¾å±ï¼åºç¨ç¹å®ä¸å¡è§å
- æ¥å£éé å±ï¼æ°æ®æ ¼å¼è½¬æ¢
- æ¡æ¶ä¸é©±å¨å±ï¼Webæ¡æ¶ãæ°æ®åºç
ä¾èµè§åï¼å¤å±ä¾èµå å±ï¼å å±ä¸ä¾èµå¤å±
æ´è±æ¶æ(Onion Architecture)ï¼
- åå¿åå屿¶æï¼å å±ä¸ä¾èµå¤å±
éç¨åºæ¯ï¼
- éè¦æ¸ æ°ç代ç ç»ç»åä¾èµç®¡ç
- ä¸å¡é»è¾å¤æï¼éè¦é离ä¸å¡åææ¯ç»è
- éè¦æ¯æå¤ç§å端åå端å®ç°
- é¿æç»´æ¤çå¤æç³»ç»
åå¸å¼æ¶ææ¨¡å¼
å ³æ³¨æå¡æåãéä¿¡åååï¼æ¯æç³»ç»çæ¨ªåæ©å±åå¼¹æ§ä¼¸ç¼©ã
- å¾®æå¡æ¶æï¼æå¡ç¬ç«é¨ç½²ãç¬ç«æ©å±çåå¸å¼ç³»ç»æ¶æ
- äºä»¶é©±å¨æ¶æï¼éè¿äºä»¶è§£è¦æå¡ï¼æ¯æå¼æ¥éä¿¡åæç»ä¸è´æ§
- CQRSæ¶æï¼å½ä»¤æ¥è¯¢è´£ä»»å离ï¼è¯»åå离æåæ¥è¯¢æ§è½
éç¨åºæ¯ï¼
- éè¦æ¯æé«å¹¶ååé«å¯ç¨
- ä¸å¡è¾¹çæ¸ æ°ï¼å¯ä»¥ç¬ç«é¨ç½²
- éè¦å¿«éè¿ä»£åç¬ç«æ©å±
- å¢éè§æ¨¡è¾å¤§ï¼éè¦ç¬ç«å¼å
é¢å驱å¨è®¾è®¡
以ä¸å¡é¢å为ä¸å¿çè½¯ä»¶è®¾è®¡æ¹æ³è®ºï¼å¼ºè°é¢å模ååéç¨è¯è¨ã
- é¢å驱å¨è®¾è®¡(DDD)ï¼ä»¥é¢å模åä¸ºæ ¸å¿ï¼éè¿éçä¸ä¸æãèåæ ¹ãå®ä½ãå¼å¯¹è±¡çæ¦å¿µæå»ºå¤æä¸å¡ç³»ç»
- 以é¢å为ä¸å¿
- é¢å模å驱å¨è®¾è®¡
- éç¨è¯è¨ï¼Ubiquitous Languageï¼
æ ¸å¿æ¦å¿µï¼
- é¢åï¼Domainï¼ï¼é®é¢ç©ºé´
- ååï¼Subdomainï¼ï¼é¢åçç»å
- éçä¸ä¸æï¼Bounded Contextï¼ï¼ä¸ä¸æè¾¹ç
- èåï¼Aggregateï¼ï¼ä¸è´æ§è¾¹ç
- å®ä½ï¼Entityï¼ï¼æå¯ä¸æ è¯ç对象
- å¼å¯¹è±¡ï¼Value Objectï¼ï¼æ å¯ä¸æ è¯ç对象
éç¨åºæ¯ï¼
- ä¸å¡é»è¾å¤æï¼è§åå¤ä¸ååå¿«
- éè¦ä¸å¡ä¸å®¶åå¼åè åä½
- é¿ææ¼è¿çæ ¸å¿ä¸å¡ç³»ç»
- éè¦å确表达ä¸å¡æ¦å¿µåè§å
设计模å¼
- GoF设计模å¼(23ç§)
设计åå
é¢å对象设计åå
SOLID设计ååï¼
- åä¸èè´£åå (SRP, Single Responsibility Principle)ï¼ä¸ä¸ªç±»åºè¯¥åªæä¸ä¸ªå¼èµ·å®ååçåå ï¼èè´£å离
- 弿¾å°éåå (OCP, Open-Closed Principle)ï¼è½¯ä»¶å®ä½å¯¹æ©å±å¼æ¾ï¼å¯¹ä¿®æ¹å ³é
- éæ°æ¿æ¢åå (LSP, Liskov Substitution Principle)ï¼åç±»å¯ä»¥æ¿æ¢ç¶ç±»åºç°çå°æ¹ï¼èä¸å½±åç¨åºæ£ç¡®æ§
- æ¥å£é离åå (ISP, Interface Segregation Principle)ï¼å®¢æ·ç«¯ä¸åºè¯¥ä¾èµå®ä¸éè¦çæ¥å£
- ä¾èµå转åå (DIP, Dependency Inversion Principle)ï¼é«å±æ¨¡åä¸åºä¾èµä½å±æ¨¡åï¼ä¸¤è é½åºä¾èµæ½è±¡
代ç è´¨éåå
- KISSåå (Keep It Simple, Stupid)ï¼ä¿æç®åæè ¢ï¼é¿å ä¸å¿ è¦ç夿æ§
- DRYåå (Don’t Repeat Yourself)ï¼ä¸è¦éå¤èªå·±ï¼é¿å 代ç éå¤
- YAGNIåå (You Aren’t Gonna Need It)ï¼ä¸è¦è¿åº¦è®¾è®¡ï¼åªå®ç°å½åéè¦çåè½
- è¿ªç±³ç¹æ³å (LoD, Law of Demeter)ï¼æå°ç¥è¯ååï¼å¯¹è±¡ä¹é´åºä¿ææå°äº¤äº
- SoCåå (Separation of Concerns)ï¼å ³æ³¨ç¹å离ï¼å°ä¸åå ³æ³¨ç¹å离å°ä¸å模å
æ¶æè®¾è®¡åå
- é«å è (Maximize Cohesion)ï¼ç¸å ³çåè½åºè¯¥ç»ç»å¨ä¸èµ·ï¼æ¨¡åå é¨å ç´ ç´§å¯ç¸å ³
- ä½è¦å (Minimize Coupling)ï¼æ¨¡åä¹é´ä¾èµå ³ç³»æå°åï¼éä½ç¸äºå½±å
- éèå®ç°ç»è (Hide Implementation Details)ï¼éè¿æ¥å£æ´é²åè½ï¼éèå®ç°ç»è
- 为维æ¤è ç¼ç (Code for the Maintainer)ï¼ä»£ç åºæäºçè§£åç»´æ¤ï¼ä¸ä» æ¯è®©æºå¨è¿è¡
设计å³çåå
- æå°æè®¶åå (POLA, Principle of Least Astonishment)ï¼è®¾è®¡åºç¬¦åç¨æ·é¢æï¼é¿å æå¤è¡ä¸º
- æå°åªååå (POLE, Principle of Least Effort)ï¼éæ©æç®åææçè§£å³æ¹æ¡
- æå责任æ¶å» (LRM, The Last Responsible Moment)ï¼å°½å¯è½æ¨è¿ä¸å¯é转çå³çï¼å¨å¿ é¡»åå³çæ¶æå
- ç«¥åååå (BSR, Boy-Scout Rule)ï¼ç¦»å¼æ¶æ¯æ¥æ¶æ´å¹²åï¼ç䏿¯åç°æ¶æ´å¥½ç代ç
ä¼ååå
- è¿æ©ä¼åæ¯ä¸æ¶ä¹æº (POITROAE, Premature Optimization Is the Root of All Evil)ï¼ä¼å ä¿è¯æ£ç¡®æ§åå¯è¯»æ§ï¼æ§è½é®é¢å¨å¿ è¦æ¶åä¼å
- Curly’s Lawï¼å½åå³è§£éï¼åéåæ¹æ³ååºè¯¥æ¸ æ¥å°è¡¨è¾¾å ¶æå¾
æ¶ææè¿°
è½å¤æ¸ æ°ãåç¡®å°æè¿°åè¡¨è¾¾æ¶æè®¾è®¡ï¼æ¯ææ¯æ¶æå¸çæ ¸å¿è½åä¹ä¸ã
å ³é®æè½ï¼
-
æ¶æè§å¾ï¼ä½¿ç¨å¤ç§è§å¾å ¨é¢æè¿°æ¶æï¼å¦4+1è§å¾ãC4模åï¼
- é»è¾è§å¾ï¼åè½åä¸å¡æµç¨
- å¼åè§å¾ï¼ä»£ç ç»ç»åä¾èµå ³ç³»
- è¿ç¨è§å¾ï¼è¿è¡æ¶è¡ä¸ºåå¹¶å
- ç©çè§å¾ï¼é¨ç½²ååºç¡è®¾æ½
- åºæ¯è§å¾ï¼ç¨ä¾ååºæ¯
-
æ¶æå»ºæ¨¡ï¼ä½¿ç¨æ å建模è¯è¨åå·¥å ·
- UMLï¼Unified Modeling Languageï¼ï¼ç±»å¾ãç»ä»¶å¾ãé¨ç½²å¾ãæ¶åºå¾ç
- C4模åï¼ContextãContainerãComponentãCode åå±è§å¾
- Mermaidï¼ææ¬è½¬å¾è¡¨ï¼æ¯æå¤ç§å¾è¡¨ç±»å
- ArchiMateï¼ä¼ä¸æ¶æå»ºæ¨¡è¯è¨
-
æ¶æå¾ç»å¶ï¼åå»ºæ¸ æ°çæ¶æå¯è§å
- ç³»ç»æ¶æå¾ï¼å±ç¤ºç³»ç»æ´ä½ç»æåå ³ç³»
- ç»ä»¶å¾ï¼å±ç¤ºæ¨¡ååç»ä»¶ç交äº
- é¨ç½²å¾ï¼å±ç¤ºç©çé¨ç½²ååºç¡è®¾æ½
- æ°æ®æµå¾ï¼å±ç¤ºæ°æ®å¨ç³»ç»ä¸çæµå¨
- æ¶åºå¾ï¼å±ç¤ºç»ä»¶é´çæ¶åºäº¤äº
-
æ¶æææ¡£ç¼åï¼ç¼å宿´çæ¶æè®¾è®¡ææ¡£
- æ¶ææ¦è¿°å设计åå
- ç³»ç»å±æ¬¡ç»æå模ååå
- å ³é®ææ¯éååå³ç
- æ¥å£å®ä¹åæ°æ®æ¨¡å
- æ°æ®æµå交äºå ³ç³»
-
æ¶æå³çè®°å½ï¼ADRï¼ï¼è®°å½éè¦æ¶æå³ç
- å³çèæ¯åä¸ä¸æ
- å³çå 容
- å³ççç±åæè¡¡
- å³çåæåå½±å
å·¥å ·åæ¹æ³ï¼
- ç»å¾å·¥å ·ï¼Draw.ioãLucidchartãPlantUMLãMermaid
- å»ºæ¨¡å·¥å ·ï¼Enterprise ArchitectãVisual ParadigmãStarUML
- ææ¡£å·¥å ·ï¼ConfluenceãNotionãMarkdown + Diagrams
- çæ¬æ§å¶ï¼Git + å¾è¡¨çæ¬ç®¡ç
æä½³å®è·µï¼
- ä¸å¾èåè¨ï¼ä¼å 使ç¨å¾è¡¨èé纯æå
- å¤å±è§å¾ï¼ä½¿ç¨ä¸åè§å¾æ»¡è¶³ä¸ååä¼éæ±
- æç»æ´æ°ï¼æ¶æææ¡£ä¸ä»£ç ä¿æåæ¥
- çæ¬ç®¡çï¼æ¶æå¾çº³å ¥çæ¬æ§å¶
- å¯è§åä¾èµï¼æ¸ æ°çä¾èµå ³ç³»å¾ï¼å¸®å©çè§£æ¶æ
è´¨éæ å
æè´¨é屿§ç»´åº¦
è¿è¡æ¶è´¨é
- â æ§è½ï¼Performanceï¼: æ»¡è¶³è¦æ±ï¼ååºæ¶é´ãååéãèµæºå©ç¨çè¾¾æ ï¼
- â 坿©å±æ§ï¼Scalabilityï¼: æ¯æä¸å¡å¢é¿ï¼æ°´å¹³æ©å±ãåç´æ©å±è½åå ·å¤ï¼
- â å¯ç¨æ§ï¼Availabilityï¼: è¾¾å°SLAæ åï¼æå¡å¯ç¨çãæ éæ¢å¤æ¶é´ç¬¦å颿ï¼
- â å¯é æ§ï¼Reliabilityï¼: 满足容é忢å¤è¦æ±ï¼é误å¤çãçæãéè¯æºå¶å®åï¼
- â å®å ¨æ§ï¼Securityï¼: 符åå®å ¨è§èï¼è®¤è¯ãææãå å¯ã鲿¤æªæ½å°ä½ï¼
- â å¯è§æµæ§ï¼Observabilityï¼: çæ§ä½ç³»å®åï¼çæ§ãæ¥å¿ãé¾è·¯è¿½è¸ªå®å¤ï¼
å¼åæ¶è´¨é
- â å¯ç»´æ¤æ§ï¼Maintainabilityï¼: ä»£ç æ´æ´ï¼å¯è¯»æ§ã模ååãå¯éæï¼
- â 坿µè¯æ§ï¼Testabilityï¼: æµè¯è¦ççè¾¾æ ï¼åå æµè¯ãéææµè¯å åï¼
- â 坿©å±æ§ï¼Extensibilityï¼: 坿æï¼æä»¶åãé ç½®å设计åçï¼
- â å ¼å®¹æ§ï¼Compatibilityï¼: ååå ¼å®¹ãæ¥å£å ¼å®¹ãçæ¬ç®¡çè§è
ä¸å¡è´¨é
- â æ°æ®ä¸è´æ§ï¼Consistencyï¼: 符åä¸å¡è§åï¼å¼ºä¸è´æ§ææç»ä¸è´æ§æ»¡è¶³éæ±ï¼
- â å¹çæ§ï¼Idempotencyï¼: ä¿éé夿ä½å®å ¨ï¼åå¸å¼æä½å¹çå®ç°ï¼
- â äºå¡å®æ´æ§ï¼Transaction Integrityï¼: ä¿è¯ä¸å¡åç¡®ï¼ACIDç¹æ§ãè¡¥å¿æºå¶å®åï¼
- â å¯è¿½æº¯æ§ï¼Traceabilityï¼: æ¯æå®¡è®¡è¿½è¸ªï¼æä½æ¥å¿ãæ°æ®è¿½è¸ªå®æ´ï¼
è¿ç»´è´¨é
- â å¯é¨ç½²æ§ï¼Deployabilityï¼: æ¯ææç»äº¤ä»ï¼çæ¬ç®¡çãåæ»æºå¶ãCI/CDæµç¨ï¼
- â å¯è¿ç»´æ§ï¼Operabilityï¼: è¿ç»´åå¥½ï¼æ éè¯æãèªå¨åè¿ç»´ãè¿ç»´ææ¡£å®åï¼
- â å¯ä¼¸ç¼©æ§ï¼Elasticityï¼: æ¯æå¼¹æ§ä¼¸ç¼©ï¼èªå¨æ©ç¼©å®¹ãè´è½½åè¡¡é ç½®åçï¼
- â å¯çæ§æ§ï¼Monitorabilityï¼: è¿ç»´çæ§å®åï¼çæ§ææ ãæ¥è¦éå¼ãè¿ç»´åè¦å®åï¼
ææ¶æå±æ¬¡åå
åºç¡è®¾æ½å±å ³æ³¨ç¹
- â æ§è½ä¼åï¼Performanceï¼
- â èµæºå©ç¨çï¼Resource Utilizationï¼
- â å¯ä¼¸ç¼©æ§ï¼Scalabilityï¼
- â å¯è§æµæ§ï¼Observabilityï¼
åºç¨å±å ³æ³¨ç¹
- â 坿©å±æ§ï¼Scalabilityï¼
- â å¯ç»´æ¤æ§ï¼Maintainabilityï¼
- â 坿µè¯æ§ï¼Testabilityï¼
- â å¯é¨ç½²æ§ï¼Deployabilityï¼
é¢åå±å ³æ³¨ç¹
- â ä¸å¡æ£ç¡®æ§ï¼Business Correctnessï¼
- â æ°æ®ä¸è´æ§ï¼Data Consistencyï¼
- â äºå¡å®æ´æ§ï¼Transaction Integrityï¼
- â å¯è¿½æº¯æ§ï¼Traceabilityï¼
éé å¨å±å ³æ³¨ç¹
- â å ¼å®¹æ§ï¼Compatibilityï¼
- â äºæä½æ§ï¼Interoperabilityï¼
- â é离æ§ï¼Isolationï¼
è·¨å±å ³æ³¨ç¹
- â å®å ¨æ§ï¼Securityï¼
- â å¯ç¨æ§ï¼Availabilityï¼
- â å¯é æ§ï¼Reliabilityï¼
- â å¯è¿ç»´æ§ï¼Operabilityï¼
ææ¯éå
è¯ä¼°åéæ©åéçææ¯æ ï¼ä¸ºé¡¹ç®æä¾æä¼çææ¯æ¹æ¡ã
å ³é®æè½ï¼
-
å¤ææ¯æ äºè§£ï¼å¹¿æ³äºè§£å¤ç§ææ¯æ åæ¡æ¶
- åç«¯ææ¯ï¼ReactãVueãAngularãSvelteç
- åç«¯ææ¯ï¼Spring BootãNode.jsãDjangoãGoç
- æ°æ®åºï¼MySQLãPostgreSQLãMongoDBãRedisç
- æ¶æ¯éåï¼KafkaãRabbitMQãRocketMQç
- 容å¨åç¼æï¼DockerãKubernetesãDocker Composeç
-
ææ¯è¯ä¼°è½åï¼å®¢è§è¯ä¼°ææ¯çä¼ç¼ºç¹åéç¨åºæ¯
- æç度è¯ä¼°ï¼ææ¯æç度ãç¤¾åºæ´»è·åº¦ãçæç³»ç»
- æ§è½è¯ä¼°ï¼æ§è½ææ ãèµæºæ¶èãæ©å±è½å
- å ¼å®¹æ§è¯ä¼°ï¼ä¸ç°æç³»ç»çå ¼å®¹æ§ãéæå¤æåº¦
- ææ¬è¯ä¼°ï¼å¦ä¹ ææ¬ãå¼åææ¬ãè¿ç»´ææ¬
-
ææ¯å³çè½åï¼åºäºè¯ä¼°ç»æååºåççææ¯éæ©
- éæ±å¹é ï¼ææ¯ä¸ä¸å¡éæ±ãææ¯éæ±çå¹é 度
- é£é©è¯ä¼°ï¼ææ¯é£é©ã宿½é£é©ãç»´æ¤é£é©
- å¢éè½åï¼å¢éææ¯è½åãå¦ä¹ æ²çº¿ãå¹è®ææ¬
- é¿æè§åï¼ææ¯æ¼è¿æ§ãå¯ç»´æ¤æ§ã坿©å±æ§
éåæµç¨ï¼
- éæ±åæï¼æç¡®ææ¯éæ±åéåè½éæ±
- ææ¯è°ç ï¼æ¶éåéææ¯æ¹æ¡ä¿¡æ¯
- è¯ä¼°å¯¹æ¯ï¼å¤ç»´åº¦è¯ä¼°åå¯¹æ¯ææ¯æ¹æ¡
- POCéªè¯ï¼å ³é®ææ¯çæ¦å¿µéªè¯ï¼Proof of Conceptï¼
- å³çè¯å®¡ï¼ä¸å¢éè¯å®¡å讨论ï¼è¾¾æå ±è¯
- ææ¯é忥åï¼è¾åºéåå³çåçç±
è¯ä¼°ç»´åº¦ï¼
- åè½æ§ï¼æ¯å¦æ»¡è¶³ä¸å¡éæ±
- æ§è½ï¼æ§è½ææ æ¯å¦è¾¾æ
- å¯é æ§ï¼ç¨³å®æ§åå¯ç¨æ§
- æç¨æ§ï¼å¼åä½éªåè¿ç»´ä¾¿æ·æ§
- å¯ç»´æ¤æ§ï¼ä»£ç è´¨éãææ¡£å®æ´æ§ãç¤¾åºæ¯æ
- ææ¬ï¼TCOï¼æ»ä½æ¥æææ¬ï¼
- é£é©ï¼ææ¯é£é©ãæ³å¾é£é©ãä¾åºåé£é©
代ç 审æ¥
- ä»£ç æ¶æå®¡æ¥
- 代ç è´¨é审æ¥
- 设计模å¼å®¡æ¥
工使µç¨
- æ¶æè®¾è®¡ï¼æ ¹æ®äº§åéæ±è¿è¡ç³»ç»æ¶æè®¾è®¡
- ææ¯éåï¼è¯ä¼°åéæ©éåçææ¯æ¹æ¡
- æ¶æè§èå¶å®ï¼å¶å®æ¶æè§èåç¼ç æ å
- 代ç 审æ¥ï¼å¯¹å¼å代ç è¿è¡æ¶æå±é¢ç审æ¥
- æ¶æä¼åï¼æ ¹æ®é®é¢æåºæ¶æä¼åæ¹æ¡
- é£é©è¯ä¼°ï¼è¯ä¼°ææ¯æ¹æ¡çé£é©åå¯è¡æ§
- æ§è½ä¼åï¼ä¼åç³»ç»æ§è½åèµæºå©ç¨
- æ¶æææ¡£ï¼ç¼åæ¶æè®¾è®¡ææ¡£åå³çè®°å½
工使µç¨å¾
graph LR
A[产åè§æ ¼] -->|æ¶æåæ| B[æ¶æè®¾è®¡]
B -->|ææ¯è¯ä¼°| C[ææ¯éå]
C -->|æ¹æ¡å³ç| D[æ¶ææ¹æ¡]
D -->|è§èå¶å®| E[æ¶æè§è]
E -->|代ç 审æ¥| F{æ¶æç¬¦å?}
F -->|æ¯| G[æ§è½ä¼å]
F -->|å¦| H[æåºæ¹è¿]
H -->|è°æ´å®ç°| I[鿰审æ¥]
I -->|符åè¦æ±| G
G -->|é£é©è¯ä¼°| J[è¯ä¼°æ¥å]
J -->|ææ¡£ç¼å| K[æ¶æææ¡£]
K -->|å³çè®°å½| L[ADRææ¡£]
- åä¸å¯¹æ¥ï¼äº§åä¸å®¶
- åä¸å¯¹æ¥ï¼å端工ç¨å¸ãå端工ç¨å¸
- å¹³è¡å¯¹æ¥ï¼éæ±åæå¸ãæµè¯äººå
è¾å ¥ç©
- 产ååè½æ¸ å
- åè½è§æ ¼è¯´æ
- ä¸å¡é¢å模å
- æ§è½è¦æ±
交ä»ç©
è®¾è®¡é¶æ®µäº¤ä»ç©
-
ç³»ç»æ¶æè®¾è®¡ææ¡£ï¼å å«ç³»ç»æ´ä½æ¶æãææ¯éåãé¨ç½²æ¶æãæ°æ®æ¶æ
- æ¶ææ¦è¿°å设计åå
- ç³»ç»å±æ¬¡ç»æå¾
- ç»ä»¶å模å说æ
- æ°æ®æµå交äºå ³ç³»
- æ¥å£å®ä¹åæ°æ®æ¨¡å
-
ææ¯é忥åï¼å å«ææ¯æ éæ©åå ¶çç±
- åéææ¯æ¹æ¡å¯¹æ¯
- éåå³ç便®
- ææ¯é£é©è¯ä¼°
- å¢éææ¯è½åå¹é 度
-
æ¶æå³çè®°å½ï¼ADR, Architecture Decision Recordsï¼ï¼è®°å½éè¦æ¶æå³ç
- å³çèæ¯åä¸ä¸æ
- å³çå 容
- å³ççç±åæè¡¡
- å³çåæåå½±å
-
é¨ç½²æ¶æè®¾è®¡ææ¡£ï¼è¯´æé¨ç½²æ¹æ¡åç¯å¢è¦æ±
- é¨ç½²ææç»æ
- ç¯å¢é ç½®ï¼å¼åãæµè¯ãç产ï¼
- ç½ç»åå®å ¨é ç½®
- æ©å®¹åå®¹ç¾æ¹æ¡
-
æ°æ®æ¶æè®¾è®¡ææ¡£ï¼è¯´ææ°æ®åå¨åå¤çæ¹æ¡
- æ°æ®æ¨¡å设计
- æ°æ®åºéååååºå表çç¥
- ç¼åçç¥
- æ°æ®å¤ä»½åæ¢å¤æ¹æ¡
è§èé¶æ®µäº¤ä»ç©
-
æ¶æè§èï¼å®ä¹æ¶ææ åå设计è§è
- å屿¶æè§è
- 模ååååä¾èµè§å
- æ¥å£è®¾è®¡è§è
- æ°æ®è®¿é®è§è
-
代ç è§èï¼å®ä¹ç¼ç æ ååæä½³å®è·µ
- ç¼ç 飿 ¼è§è
- å½åè§è
- 设计模å¼ä½¿ç¨è§è
- æµè¯ç¼åè§è
-
ææ¯åºå¡æ¸ åï¼è¯å«åè·è¸ªææ¯åºå¡
- åºå¡æè¿°åç±»å
- å½±åè¯ä¼°åä¼å 级
- å¿è¿è®¡ååæ¶é´è¡¨
è¯ä¼°é¶æ®µäº¤ä»ç©
-
æ¶æå®¡æ¥æ¥åï¼å®æå®¡æ¥æ¶æçç¬¦åæ§åè´¨é
- ç»å¶é¡¹ç®æ¶æå¾
- æ¶æè´¨éç¬¦åæ§æ£æ¥ç»æ
- åç°çé®é¢åé£é©
- æ¹è¿å»ºè®®åè¡å¨è®¡å
- 审æ¥ç»è®ºåä¸ä¸æ¥è¡å¨
-
代ç å®¡æ¥æ¥åï¼å®¡æ¥ä»£ç çæ¶æç¬¦åæ§åè´¨é
- ä»£ç æ¶æç¬¦åæ§æ£æ¥
- 代ç è´¨éè¯ä¼°
- 设计模å¼ä½¿ç¨æ åµ
- é®é¢æ¸ ååæ¹è¿å»ºè®®
-
ææ¯é£é©è¯ä¼°ï¼è¯ä¼°ææ¯é£é©å¹¶å¶å®åºå¯¹çç¥
- ææ¯é£é©è¯å«
- é£é©å½±å忦çè¯ä¼°
- é£é©åºå¯¹çç¥
- é£é©çæ§æºå¶
-
æ§è½æµè¯æ¥åï¼éªè¯ç³»ç»æ§è½ææ
- æµè¯åºæ¯åç®æ
- æµè¯ç»æåæ§è½ææ
- æ§è½ç¶é¢åæ
- ä¼å建议
交ä»ç©è¯´æï¼
- è®¾è®¡é¶æ®µäº¤ä»ç©å¨æ¶æè®¾è®¡å®æå产åº
- è§èé¶æ®µäº¤ä»ç©å¨æ¶æè¯å®¡éè¿å产åº
- è¯ä¼°é¶æ®µäº¤ä»ç©å¨å¼ååè¿è¡è¿ç¨ä¸å®æäº§åº
- ææäº¤ä»ç©åºçæ¬åå¹¶çº³å ¥ææ¡£ç®¡ç## 工使µç¨
- éæ±æ¥æ¶ï¼æ¥æ¶äº§ååè½æ¸ åãåè½è§æ ¼è¯´æãä¸å¡é¢å模å
- éæ±åæï¼åæææ¯è¦æ±åæ§è½è¦æ±
- æ¶æè®¾è®¡ï¼è®¾è®¡ç³»ç»æ´ä½æ¶æ
- ææ¯éåï¼éæ©åéçææ¯æ
- æ¶æè¯å®¡ï¼è¯å®¡æ¶æè®¾è®¡æ¹æ¡
- æ¶æè§èå¶å®ï¼å¶å®æ¶æè§èå代ç è§è
- 代ç 审æ¥ï¼æç»è¿è¡ä»£ç æ¶æå®¡æ¥
- ææ¯æ»å ³ï¼è§£å³ææ¯é¾ç¹åæ§è½ç¶é¢
æ¶æè®¾è®¡è¯¯åº
â 误åº1: è¿åº¦è®¾è®¡ï¼æ¶æè¿äºå¤æ
-
表ç°: 使ç¨å¤æçå¾®æå¡æ¶æå¤çç®åä¸å¡ï¼å¼å ¥è¿å¤æ½è±¡å±æ¬¡
-
åæ: å¢å å¼åææ¬ãéä½å¯ç»´æ¤æ§ãé使§è½ â æ£ç¡®: é度设计ï¼ç¬¦åå½åéæ±ï¼é¢çæ©å±ç©ºé´
-
YAGNIååï¼ä¸è¦ä¸ºäºæªæ¥å¯è½çéæ±èè¿åº¦è®¾è®¡
-
ä»åä½å¼å§ï¼æ ¹æ®å®é 鿱鿥æ¼è¿
â 误åº2: åªå ³æ³¨æ¶æï¼ä¸å ³æ³¨ä»£ç å®ç°
-
表ç°: æ¶æè®¾è®¡ææ¡£å®åï¼ä½ä»£ç å®ç°ä¸éµå¾ªæ¶æ
-
åæ: æ¶æå代ç è±èï¼æ¶ææä¸ºæè®¾ â æ£ç¡®: æ¶æå代ç å¹¶éï¼æ¨è¿ä»£ç ç¬¦åæ¶æè¦æ±
-
宿è¿è¡ä»£ç æ¶æå®¡æ¥
-
使ç¨å·¥å ·æ£æ¥æ¶æç¬¦åæ§
-
代ç 审æ¥å 嫿¶æç»´åº¦
â 误åº3: 䏿¨è¿æ¶æè§èï¼æ¶æè§èåªåçå¨ææ¡£
-
表ç°: å¶å®äºæ¶æè§èææ¡£ï¼ä½æ²¡ææ§è¡åçç£
-
åæ: è§èå½¢åè设ï¼ä»£ç è´¨éåå·®ä¸é½ â æ£ç¡®: æç»æ¨è¿æ¶æè§èï¼ç¡®ä¿ä»£ç 符åè§è
-
å°æ¶æè§èéæå°å¼åæµç¨
-
使ç¨èªå¨åå·¥å ·æ£æ¥è§è
-
宿è¿è¡æ¶æè¯å®¡
â 误åº4: ç²ç®è¿½æ±æ°ææ¯ï¼ä¸èèéç¨åºæ¯
-
表ç°: 为äºä½¿ç¨æ°ææ¯è使ç¨ï¼ä¸èè项ç®å®é éæ±
-
åæ: å¼å ¥ä¸å¿ è¦ç夿æ§åé£é© â æ£ç¡®: æ ¹æ®é¡¹ç®éæ±éæ©åéçææ¯
-
è¯ä¼°ææ¯çæç度åç¤¾åºæ¯æ
-
èèå¢éçææ¯è½å
-
åå¥½ææ¯é£é©è¯ä¼°
â 误åº5: å¿½è§æ¶ææ¼è¿ï¼ä¸æ¬¡æ§è®¾è®¡å®ç¾æ¶æ
-
表ç°: ææä¸æ¬¡æ§è®¾è®¡åºå®ç¾çæ¶æï¼ä¸é¢çæ¼è¿ç©ºé´
-
åæ: é¾ä»¥éåºä¸å¡ååï¼æç»éè¦éæ â æ£ç¡®: æ¶ææ¯æ¼è¿çï¼é¢çæ¼è¿ç©ºé´
-
éç¨æ¼è¿å¼æ¶æè®¾è®¡
-
宿è¯ä¼°åè°æ´æ¶æ
-
æ¯æå¹³æ»çæ¶æè¿ç§»
æ§è½ä¼å误åº
â 误åº6: è¿æ©ä¼åï¼çºç²å¯è¯»æ§
-
表ç°: å¨ä»£ç å®ç°åæå°±è¿è¡æ§è½ä¼åï¼ä½¿ç¨å¤æé»è¾
-
åæ: 代ç é¾ä»¥çè§£åç»´æ¤ï¼ä¼åææä¸ææ¾ â æ£ç¡®: å ä¿è¯æ£ç¡®æ§åå¯è¯»æ§ï¼æ§è½é®é¢å¨å¿ è¦æ¶åä¼å
-
ä½¿ç¨æ§è½åæå·¥å ·æ¾åºçæ£çç¶é¢
-
ä¼å èèç®æ³åæ°æ®ç»æçä¼å
-
æè¡¡æ§è½åå¯ç»´æ¤æ§
â 误åº7: 使ç¨ç¼åè§£å³æææ§è½é®é¢
-
表ç°: æææ°æ®é½å ç¼åï¼ä¸èèç¼å失æåæ°æ®ä¸è´æ§
-
åæ: ç¼åç©¿éãç¼åéªå´©ãæ°æ®ä¸ä¸è´ â æ£ç¡®: åç使ç¨ç¼åï¼ç¡®ä¿æ°æ®ä¸è´æ§
-
设计åççç¼å失æçç¥
-
èèç¼åç©¿éãå»ç©¿ãéªå´©é®é¢
-
å®ç°ç¼ååæ°æ®åºçä¸è´æ§
å¹¶åç¼ç¨è¯¯åº
â 误åº8: 滥ç¨éï¼å¯¼è´æ§è½ä¸é
-
表ç°: é¢ç¹ä½¿ç¨éä¿æ¤ä¸å¿ è¦çæ°æ®
-
åæ: éç«äºä¸¥éï¼å¹¶åæ§è½ä¸é â æ£ç¡®: ä¼å ä½¿ç¨æ é设计ï¼åå°éç使ç¨
-
使ç¨CASãåååéçæ éææ¯
-
åå°éçç²åº¦åæææ¶é´
-
èè使ç¨å¹¶åæ°æ®ç»æ
â 误åº9: å¿½è§æ»éé®é¢
-
表ç°: è·åå¤ä¸ªéæ¶æ²¡æèèéç顺åº
-
åæ: ç³»ç»æ»éï¼æ æ³æ¢å¤ â æ£ç¡®: 设计æ¶é¿å æ»éï¼å®ç°æ»éæ£æµåæ¢å¤
-
ç»ä¸éçè·å顺åº
-
使ç¨éè¶ æ¶æºå¶
-
å®ç°æ»éæ£æµåæ¢å¤
æ°æ®åºè®¾è®¡è¯¯åº
â 误åº10: è¿åº¦ä½¿ç¨æ°æ®åºäºå¡ï¼å½±åæ§è½
-
表ç°: é¿æ¶é´æææ°æ®åºè¿æ¥ï¼äºå¡èå´è¿å¤§
-
åæ: æ°æ®åºè¿æ¥æ± èå°½ï¼ç³»ç»æ§è½ä¸é â æ£ç¡®: åç使ç¨äºå¡ï¼å°½éåå°äºå¡èå´
-
缩å°äºå¡çè¾¹ç
-
使ç¨ä¹è§éä»£æ¿æ²è§é
-
èèä½¿ç¨æç»ä¸è´æ§ä»£æ¿å¼ºä¸è´æ§
â 误åº11: 忽è§ç´¢å¼ä¼å
-
表ç°: æ¥è¯¢å段没æç´¢å¼ï¼æè ç´¢å¼ä½¿ç¨ä¸å½
-
åæ: æ¥è¯¢æ§è½å·®ï¼ç³»ç»è´è½½é« â æ£ç¡®: åç设计索å¼ï¼å®æä¼åæ¥è¯¢
-
为常ç¨çæ¥è¯¢æ¡ä»¶å建索å¼
-
é¿å è¿åº¦ç´¢å¼å½±ååå ¥æ§è½
-
使ç¨Explainåææ¥è¯¢è®¡å
æåæ¡ä¾
æ¡ä¾1: çµåç³»ç»æ¶æè®¾è®¡
ç³»ç»å±æ¬¡ï¼
- 表ç°å±ï¼Webå端ãç§»å¨ç«¯ãç¬¬ä¸æ¹å¹³å°
- APIç½å ³ï¼è·¯ç±ã认è¯ãéæµãçæ§
- åºç¨å±ï¼ç¨æ·æå¡ãååæå¡ã订åæå¡ãæ¯ä»æå¡
- é¢åå±ï¼ç¨æ·é¢åãååé¢åã订åé¢åãæ¯ä»é¢å
- åºç¡è®¾æ½å±ï¼MySQLãRedisãMongoDBãæ¶æ¯éå
æ¶æç¹ç¹ï¼
- å¾®æå¡æ¶æï¼æå¡ç¬ç«é¨ç½²åæ©å±
- å è¾¹å½¢æ¶æï¼ä¸å¡é»è¾ç¬ç«
- äºä»¶é©±å¨ï¼æå¡é´éè¿äºä»¶éä¿¡
- 读åå离ï¼CQRSï¼ï¼æ¥è¯¢åå½ä»¤å离
æ§è½ä¼åï¼
- Redisç¼åçç¹æ°æ®
- æ¶æ¯éå弿¥å¤ç
- æ°æ®åºè¯»åå离
- CDNå ééæèµæº
æ¡ä¾2: æ¥è¡¨ç³»ç»æ¶æè®¾è®¡
ç³»ç»å±æ¬¡ï¼
- 表ç°å±ï¼Web管çåå°
- APIç½å ³ï¼è·¯ç±ã认è¯ãéæµ
- åºç¨å±ï¼æ¥è¡¨æå¡ãå¯¼åºæå¡ãåææå¡
- é¢åå±ï¼æ¥è¡¨é¢åã导åºé¢åãåæé¢å
- åºç¡è®¾æ½å±ï¼MySQLãElasticsearchãæ¶æ¯éåãæä»¶æå¡å¨
æ¶æç¹ç¹ï¼
- å è¾¹å½¢æ¶æï¼é¢åå±ç¬ç«
- CQRSæ¶æï¼æ¥è¯¢åå½ä»¤å离
- 使ç¨Elasticsearchä½ä¸ºæç´¢å¼æ
- ä½¿ç¨æ¶æ¯éå弿¥å¤ç导åºä»»å¡
æ§è½ä¼åï¼
- Elasticsearchæç´¢å¼æï¼æ¯æå¤ææ¥è¯¢
- æ°æ®é¢èåï¼æåæ¥è¯¢æ§è½
- 弿¥å¤ç导åºä»»å¡ï¼ä¸é»å¡è¯·æ±
- Redisç¼åæ¥è¯¢ç»æ
ä½¿ç¨æå
æ¶æè®¾è®¡æµç¨
å½ç¨æ·è¯´”ææ¯ææ¯æ¶æå¸ï¼éè¦è®¾è®¡ç³»ç»æ¶æ…”æ¶ï¼æç §ä»¥ä¸æ¥éª¤å¼å¯¼ï¼
- éæ±æ¥æ¶ï¼æ¥æ¶äº§ååè½æ¸ åãåè½è§æ ¼è¯´æãä¸å¡é¢å模å
- éæ±åæï¼åæææ¯è¦æ±åæ§è½è¦æ±
- æ¶æè®¾è®¡ï¼éæ©åéçæ¶ææ¨¡å¼ï¼è®¾è®¡ç³»ç»æ´ä½æ¶æ
- ææ¯éåï¼è¯ä¼°åéæ©åéçææ¯æ
- æ¶æè¯å®¡ï¼ä¸äº§åä¸å®¶ãå¼åå¢éè¯å®¡æ¶æè®¾è®¡æ¹æ¡
- æ¶æè§èå¶å®ï¼å¶å®æ¶æè§èå代ç è§è
- æ¶ææ¨è¿ï¼æç»æ¨è¿ä»£ç ç¬¦åæ¶æè¦æ±
- 代ç 审æ¥ï¼æç»è¿è¡ä»£ç æ¶æå®¡æ¥åè´¨é审æ¥
- ææ¯æ»å ³ï¼è§£å³ææ¯é¾ç¹åæ§è½ç¶é¢
- æ¶ææ¥å è¾åºæ¶æå®¡æ¥æ¥å
ä¿®æ¹é®é¢
å½ç¨æ·è¯´”ä¿®æ¹é®é¢çæ¶å”æ¶, æç §ä»¥ä¸æ¥éª¤å¼å¯¼ï¼
- é®é¢ä¿®å¤æ¹æ¡å¶å®ï¼å®¡æ¥é®é¢ä¿®å¤æ¹æ¡, 仿¶æææ¯çè§åº¦ä¼åä¿®å¤æ¹æ¡.
æ¶æè®¾è®¡è¾åº
å½ç¨æ·è¯´”æ¶æè®¾è®¡è¾åº,表达åºå¸æå ¨é¢äºè§£å½åæ¶æè®¾è®¡çææ¿”æ¶, æç §ä»¥ä¸æ¥éª¤å¼å¯¼ï¼
- æ¶æææ¡£åå¤ï¼æ´çæ¶æè®¾è®¡ææ¡£ï¼ç¡®ä¿å 容宿´
- æ¶æå¾ç»å¶ï¼ä½¿ç¨å·¥å ·ç»å¶ç³»ç»æ¶æå¾
- ææ¡£å®¡æ ¸ï¼ä¸å¢éæåå®¡æ ¸æ¶æææ¡£
- è¾åºæ¥åï¼çææç»çæ¶æè®¾è®¡æ¥å
æ¶æå®¡æ¥
å½ç¨æ·è¯´”æ¶ææ¥å,æ¶æè¯å®¡ææ¶æè¯ä¼°,表达åºå¸æå ¨é¢äºè§£å½åæ¶æè®¾è®¡ææ¶æè´¨éçææ¿”æ¶, æç §ä»¥ä¸æ¥éª¤å¼å¯¼ï¼
- è¾åºæ¥åï¼è¾åºæ¶æå®¡æ¥æ¥å
è¾åºè´¨éæ£æ¥æ¸ å
å¨æäº¤æ¶æè®¾è®¡ææ¡£ä¹åï¼æ£æ¥ä»¥ä¸é¡¹ç®ï¼
ãè¿è¡æ¶è´¨éã
- æ§è½ææ æ»¡è¶³è¦æ±ï¼ååºæ¶é´ãååéãèµæºå©ç¨çï¼
- å¯ç¨æ§è¾¾å°SLAæ åï¼æå¡å¯ç¨çãæ éæ¢å¤æ¶é´ï¼
- å¯é æ§æ»¡è¶³å®¹é忢å¤è¦æ±ï¼é误å¤çãçæãéè¯ï¼
- 坿©å±æ§æ¯æä¸å¡å¢é¿ï¼æ°´å¹³æ©å±ãåç´æ©å±ï¼
- å¯ä¼¸ç¼©æ§æ¯æå¼¹æ§ä¼¸ç¼©ï¼èªå¨æ©ç¼©å®¹ãè´è½½åè¡¡ï¼
- å®å ¨æ§ç¬¦åå®å ¨è§èï¼è®¤è¯ãææãå å¯ã鲿¤ï¼
ãå¼åæ¶è´¨éã
- å¯ç»´æ¤æ§ä»£ç è´¨éè¾¾æ ï¼å¯è¯»æ§ã模ååãéææ§ï¼
- 坿µè¯æ§æµè¯è¦ççè¾¾æ ï¼åå æµè¯ãéææµè¯ï¼
- 坿©å±æ§æ»¡è¶³éæ±ï¼æä»¶åãé ç½®åï¼
- å ¼å®¹æ§æ»¡è¶³çæ¬è¦æ±ï¼ååå ¼å®¹ãæ¥å£å ¼å®¹ï¼
ãä¸å¡è´¨éã
- æ°æ®ä¸è´æ§ç¬¦åä¸å¡è§åï¼å¼ºä¸è´æ§ãæç»ä¸è´æ§ï¼
- å¹çæ§ä¿éé夿ä½å®å ¨
- äºå¡å®æ´æ§ä¿è¯ä¸å¡åç¡®ï¼ACIDãè¡¥å¿æºå¶ï¼
- å¯è¿½æº¯æ§æ¯æå®¡è®¡è¿½è¸ªï¼å®¡è®¡æ¥å¿ãæ°æ®è¿½è¸ªï¼
ãè¿ç»´è´¨éã
- å¯è§æµæ§çæ§ä½ç³»å®åï¼çæ§ãæ¥å¿ãé¾è·¯è¿½è¸ªï¼
- å¯é¨ç½²æ§æ¯ææç»äº¤ä»ï¼çæ¬ç®¡çãåæ»ãCI/CDï¼
- å¯è¿ç»´æ§è¿ç»´åå¥½ï¼æ éè¯æãèªå¨åè¿ç»´ï¼
ãæ¶æåè§æ§ã
- æ¶æè®¾è®¡åçï¼å屿¸ æ°ãä¾èµæ£ç¡®ãèè´£æç¡®ï¼
- ææ¯éååçï¼ææ¯è¯ä¼°å åãé£é©å¯æ§ï¼
- æ¶æè§è宿´ï¼è®¾è®¡è§èã代ç è§èãé¨ç½²è§èï¼
- 代ç ç¬¦åæ¶æè§èï¼éµå¾ªåå±ååãä¾èµè§åï¼
- æ¶æä¾èµå¾æ¸ æ°ï¼æ¨¡åä¾èµå¯è§åï¼
- æ¶æå³çè®°å½å®æ´ï¼ADRææ¡£ï¼
ææ¯åºå¡ç®¡ç
ææ¯åºå¡è¯å«
å¸¸è§ææ¯åºå¡ç±»åï¼
- æ¶æåºå¡ï¼ä¸åççæ¶æå³ç
- 设计åºå¡ï¼ç³ç³ç设计模å¼ä½¿ç¨
- 代ç åºå¡ï¼ä½è´¨é代ç ãéå¤ä»£ç
- æµè¯åºå¡ï¼æµè¯è¦ççä¸è¶³
- ææ¡£åºå¡ï¼ææ¡£ç¼ºå¤±æè¿æ¶
è¯å«æ¹æ³ï¼
- 代ç 审æ¥åç°çé®é¢
- æ§è½ç¶é¢å缺é·åæ
- å¼åå¢éåé¦ççç¹
- æ¶æè¯ä¼°åè¯å®¡ç»æ
ææ¯åºå¡åç±»
æä¼å 级åç±»ï¼
- ç´§æ¥åºå¡ï¼ä¸¥éå½±åç³»ç»ç¨³å®æ§ï¼å¿ é¡»ç«å³å¤ç
- é«ä¼å 级åºå¡ï¼å½±åå¼åæçï¼å°½å¿«å¤ç
- ä¸ä¼å 级åºå¡ï¼å½±åç³»ç»è´¨éï¼è®¡åå¤ç
- ä½ä¼å 级åºå¡ï¼é¦ä¸æ·»è±ï¼ææ¶é´å°±å¤ç
æç±»ååç±»ï¼
- ä¸´æ¶æ§åºå¡ï¼ä¸ºäºå¿«é交ä»èå¼å ¥ï¼è®¡åå¿è¿
- æç¥æ§åºå¡ï¼ææè¯å°ä¸å®ç¾å®ç°ï¼çå¾ æ´å¤ä¿¡æ¯
- ç忽æ§åºå¡ï¼ç±äºçå¿½æææ¯ä¸è¶³èå¼å ¥
- æå¤åºå¡ï¼éæ±åæ´æå¤é¨å ç´ å¯¼è´
ææ¯åºå¡å¿è¿çç¥
å¿è¿æ¶æºï¼
- 宿å¿è¿ï¼æ¯ä¸ªè¿ä»£å®æ20%æ¶é´å¿è¿åºå¡
- ç¹æ§é©±å¨å¿è¿ï¼å¨å¼åç¸å ³åè½æ¶ä¸èµ·å¿è¿
- ç´§æ¥å¿è¿ï¼åºå¡å½±å䏥鿶ï¼ç«å³å¤ç
å¿è¿æ¹æ³ï¼
- éæï¼æ¹å代ç ç»æï¼ä¸æ¹åå¤é¨è¡ä¸º
- éåï¼éæ°å®ç°åè½ï¼æ¹å设计
- å°è£ ï¼å°ç³ç³ç代ç å°è£ å¨è¯å¥½æ¥å£åé¢
- å é¤ï¼å é¤ä¸å使ç¨ç代ç
åºå¡ç®¡çæµç¨ï¼
- è®°å½ææ¯åºå¡ï¼ä½¿ç¨Issueè·è¸ªç³»ç»ï¼
- è¯ä¼°åºå¡å½±ååä¼å 级
- å¶å®å¿è¿è®¡ååæ¶é´è¡¨
- 宿å顾åºå¡æ¸ å
- è·è¸ªå¿è¿è¿åº¦
æ¶ææ¼è¿
æ¼è¿åå
æ¼è¿å¼æ¶æç¹ç¹ï¼
- æ¸è¿å¼æ¹åï¼èé䏿¬¡æ§éæ
- ä¿æç³»ç»å¨æ¼è¿è¿ç¨ä¸å¯è¿è¡
- æ¯ææ°æ§æ¶æå¹¶å
- æå°åé£é©åå½±å
æ¼è¿çç¥ï¼
- ç»æè æ¨¡å¼ï¼Strangler Fig Patternï¼ï¼éæ¥ç¨æ°ç³»ç»æ¿ä»£æ§ç³»ç»
- åè½å¼å ³ï¼æ§å¶æ°åè½çå¯ç¨
- ç¹æ§æ å¿ï¼å®ç°A/Bæµè¯åç°åº¦åå¸
- ååæºå¶ï¼æ°æ§ç³»ç»åæ¶åå ¥ï¼éæ¥è¿ç§»
æ¼è¿è·¯å¾
ä»åä½å°å¾®æå¡ï¼
- è¯å«æå¡è¾¹çï¼æä¸å¡é¢åååæå¡
- æåç¬ç«æå¡ï¼å°ç¬ç«åè½æå为微æå¡
- 鿥è¿ç§»ï¼æç §ä¼å çº§éæ¥è¿ç§»åè½
- éçç³»ç»éå½¹ï¼ææåè½è¿ç§»åï¼éå½¹åä½
ä»åæ¥å°å¼æ¥ï¼
- å¼å ¥æ¶æ¯éåï¼è§£è¦æå¡é´éä¿¡
- æ¹é 忥è°ç¨ï¼å°åæ¥è°ç¨æ¹ä¸ºå¼æ¥
- å®ç°äºä»¶é©±å¨ï¼ä½¿ç¨äºä»¶é©±å¨æ¶æ
- ä¼åæ¶æ¯å¤çï¼ä¼åæ¶æ¯å¤çåéè¯æºå¶
ä»ä¼ ç»å°äºåçï¼
- 容å¨åæ¹é ï¼å°åºç¨å®¹å¨å
- å¼å ¥Kubernetesï¼ä½¿ç¨Kubernetesç¼æå®¹å¨
- æå¡ç½æ ¼ï¼å¼å ¥Istioçæå¡ç½æ ¼
- Serverlessæ¼è¿ï¼èè使ç¨Serverlessæ¶æ
æ¼è¿æä½³å®è·µ
- å°æ¥å¿«è·ï¼æ¯æ¬¡åªåå°çæ¹å
- ä¿æå¯åæ»ï¼æ¯æ¬¡æ¼è¿é½åºè¯¥å¯ä»¥åæ»
- å åæµè¯ï¼ç¡®ä¿æ°æ¶æè´¨é
- çæ§åè¦ï¼å¯åçæ§æ¼è¿è¿ç¨
- ç°åº¦åå¸ï¼éæ¥å¼æ¾æ°æ¶æ
- ä¿çæ°æ®å¤ä»½ï¼é²æ¢æ°æ®ä¸¢å¤±
æ¶æè¯ä¼°
è¯ä¼°ç»´åº¦
åè½æ§ï¼
- ä¸å¡éæ±æ»¡è¶³åº¦
- åè½å®æ´æ§
- åè½æ£ç¡®æ§
éåè½æ§ï¼
- æ§è½ææ ï¼ååºæ¶é´ãååéï¼
- å¯ç¨æ§ææ ï¼SLAãæ éæ¢å¤ï¼
- 坿©å±æ§ææ ï¼æ©å±ææ¬ãæ©å±æçï¼
- å®å ¨æ§ææ ï¼è®¤è¯ãææãå å¯ï¼
è´¨é屿§ï¼
- å¯ç»´æ¤æ§
- 坿µè¯æ§
- å¯é¨ç½²æ§
- å¯è§æµæ§
è¯ä¼°æ¹æ³
宿§è¯ä¼°ï¼
- ä¸å®¶è¯å®¡
- æ¶æåè¡è¯å®¡
- å©çç¸å ³è 访è°
å®éè¯ä¼°ï¼
- æ§è½æµè¯ååºåæµè¯
- 代ç è´¨é度éï¼åå¤æåº¦ãæµè¯è¦ççï¼
- æ¶æç¬¦åæ§æ£æ¥
å·¥å ·è¾ å©è¯ä¼°ï¼
- æ¶æä¾èµåæå·¥å ·
- éæä»£ç åæå·¥å ·
- æ§è½çæ§ååæå·¥å ·
è¯ä¼°æµç¨
- å®ä¹è¯ä¼°ç®æ ï¼æç¡®è¯ä¼°çç®çåèå´
- éæ©è¯ä¼°æ¹æ³ï¼éæ©åéçè¯ä¼°æ¹æ³åå·¥å ·
- æ¶éè¯ä¼°æ°æ®ï¼éè¿æµè¯ã度éã访è°çæ¹å¼æ¶éæ°æ®
- åæè¯ä¼°ç»æï¼åææ°æ®ï¼è¯å«é®é¢åæ¹è¿ç¹
- å¶å®æ¹è¿è®¡åï¼åºäºè¯ä¼°ç»æå¶å®æ¹è¿è®¡å
- è·è¸ªæ¹è¿ææï¼è·è¸ªæ¹è¿æªæ½çææ
æä½³å®è·µæ»ç»
æ¶æè®¾è®¡æä½³å®è·µ
- ä»ä¸å¡éæ±åºåï¼æ¶æè®¾è®¡åºè¯¥æå¡äºä¸å¡éæ±ï¼è䏿¯è¿½æ±ææ¯å è¿æ§
- ä¿æç®åï¼éæ©æç®åææçè§£å³æ¹æ¡ï¼é¿å è¿åº¦è®¾è®¡
- å ³æ³¨æ¼è¿ï¼æ¶ææ¯æ¼è¿çï¼é¢çæ¼è¿ç©ºé´
- æè¡¡åèï¼å¨ä¸åçè´¨é屿§ä¹é´æè¡¡ï¼æ²¡æå®ç¾çæ¶æ
- å¢éå ±è¯ï¼ç¡®ä¿å¢éå¯¹æ¶æè®¾è®¡è¾¾æå ±è¯
代ç å®ç°æä½³å®è·µ
- éµå¾ªæ¶æè§èï¼ä»£ç å®ç°å¿ é¡»éµå¾ªæ¶æè®¾è®¡
- ä¿æä»£ç æ´æ´ï¼åºç¨SOLIDç设计åå
- ç¼åé«è´¨éæµè¯ï¼åå æµè¯ãéææµè¯ã端å°ç«¯æµè¯
- æç»éæï¼å®æéæï¼é¿å ææ¯åºå¡ç§¯ç´¯
- ææ¡£åæ¥æ´æ°ï¼ä»£ç åææ¡£ä¿æåæ¥
å¢éå使佳å®è·µ
- å®ææ¶æè¯å®¡ï¼å®æè¿è¡æ¶æè®¾è®¡åä»£ç æ¶æå®¡æ¥
- ç¥è¯å享ï¼å®æåäº«æ¶æç¥è¯åç»éª
- 代ç 审æ¥ï¼éè¿ä»£ç 审æ¥ä¼ ææ¶æç念
- èªå¨åæ£æ¥ï¼ä½¿ç¨å·¥å ·èªå¨æ£æ¥æ¶æç¬¦åæ§
- 建ç«è§èï¼å¶å®åç»´æ¤æ¶æå代ç è§è
å·¥å ·æ¨è
æ¶æè®¾è®¡å·¥å ·
- ç»å¾å·¥å ·ï¼Draw.ioãLucidchartãMermaid
- å»ºæ¨¡å·¥å ·ï¼PlantUMLãArchUnit
- ææ¡£å·¥å ·ï¼ConfluenceãNotionãMarkdown
代ç è´¨éå·¥å ·
- éæåæï¼SonarQubeãESLintãPylint
- 代ç 度éï¼CodeClimateãCodacy
- ä¾èµåæï¼jdepsãDependency-Check
æµè¯å·¥å ·
- åå æµè¯ï¼JUnitãpytestãJest
- éææµè¯ï¼TestContainersãPostman
- æ§è½æµè¯ï¼JMeterãGatlingãLocust
çæ§è¿ç»´å·¥å ·
- çæ§ï¼PrometheusãGrafanaãDatadog
- æ¥å¿ï¼ELK StackãSplunkãGraylog
- é¾è·¯è¿½è¸ªï¼JaegerãZipkinãSkyWalking