ddd standard architecture rules
4
总安装量
0
周安装量
#54241
全站排名
安装命令
npx skills add https://github.com/7spade/black-tortoise --skill DDD Standard Architecture Rules
Skill 文档
DDD Standard Architecture Rules
ä¸ãç¸½é«æ¶æ§èå層å®ç¾©
- ç³»çµ±å¿ é æç¢ºååçº DomainãApplicationãInfrastructureãPresentation åå層ç´ã
- æ¯åæªæ¡åªè½å±¬æ¼ä¸å層ç´ï¼ä¸å¾åææ¿æå¤å±¤è²¬ä»»ã
- å層çç®çæ¯éé¢ãæ¥åæåãèãæè¡ç´°ç¯ãï¼ä¸å¾çºæ¹ä¾¿èå併層ç´ã
- æ¶æ§è¨è¨å¿ é 以鷿æ¼é²èæ¿æææ¬æå°åçºç®æ¨ã
äºãä¾è³´æ¹åï¼ä¸å¯éåï¼
- åªå
許以ä¸å®åä¾è³´ï¼
Domain â Application â Infrastructure â Presentation - ä»»ä½ååä¾è³´ä¸å¾è¦çºæ¶æ§é¯èª¤ã
- ä¸å¾ä»¥åå¥ãå·¥å ·å½å¼ãbarrel export æ side-effect 鿥形æååä¾è³´ã
- ä¾è³´æ¹åå¿
é å¨ TypeScript
import層ç´å³å¯è¢«éæ åæåºä¾ã
ä¸ãDomain 層è¦åï¼æ¥åæ ¸å¿ï¼
- Domain å±¤å¿ é æ¯ç´ TypeScriptã
- Domain 層ä¸å¾ä¾è³´ AngularãRxJSãSignalsãHTTPãStorage æä»»ä½ frameworkã
- Domain 層ä¸å¾æ
async / awaitãPromiseæ I/O è¡çºã - Domain å±¤åªæè¿°ãæ¥åæ¯ä»éº¼ãï¼ä¸æè¿°ãæéº¼åå°ãã
- Domain 層åªè½å
å«ï¼
- Entity
- Value Object
- Domain Service
- Domain Interface
- Entity å¿ é å ·ææç¢ºèº«åèå¥ï¼identityï¼ã
- Value Object å¿ é æ¯ä¸å¯è®ï¼immutableï¼ã
- Domain Service åªè½è¡¨éç¡æ³èªç¶æ¸å±¬æ¼å®ä¸ Entity çæ¥åè¦åã
- Domain Interface åªæè¿°è½åï¼ä¸æè¿°å¯¦ä½æ¹å¼ã
- Domain 層ä¸å¾ç¥éè³æä¾èªåªè£¡ãå¦ä½å²åãå¦ä½é¡¯ç¤ºã
åãApplication 層è¦åï¼æ¥åæµç¨èçæ å調ï¼
- Application å±¤è² è²¬ãç¨ä¾ï¼Use Caseï¼ãèæ¥åæµç¨ç·¨æã
- Application å±¤æ¯æ´å系統å¯ä¸çæ¥åçæ çç¸ææè ã
- Application 層å¯ä»¥ä¾è³´ Domainï¼ä½ä¸å¾ååä¾è³´ Presentation æ Infrastructure 實ä½ã
- Application 層åªè½ä¾è³´ Infrastructure å®ç¾©ç interfaceï¼èé concrete classã
- Application å±¤è² è²¬äº¤æéçï¼transaction boundaryï¼èæµç¨é åºã
- Application 層ä¸å¾å å« UIãDOMãComponentãTemplate ç¸éæ¦å¿µã
- Application 層ä¸å¾å å«è³æååç´°ç¯ã
- Application 層ä¸å¾å° framework åå¥å¤æ´©çµ¦å ¶ä»å±¤ã
- Application Facade æ¯ Presentation å¯ä¸å 許æ¥è§¸çå ¥å£ã
äºãInfrastructure 層è¦åï¼æè¡å¯¦ä½ï¼
- Infrastructure 層åªè² è²¬å¯¦ä½ Domain æ Application å®ç¾©ç interfaceã
- Infrastructure 層å¯ä»¥ä¾è³´ framework èç¬¬ä¸æ¹å¥ä»¶ã
- Infrastructure 層ä¸å¾å 嫿¥åè¦åææ±ºçé輯ã
- Infrastructure 層ä¸å¾èªè¡æçºçæ çç¸ã
- Infrastructure 層ä¸å¾è¦æ±ä¸å±¤ï¼Application / Domainï¼èª¿æ´è¨è¨ä»¥é åæè¡ç´°ç¯ã
- Infrastructure 層ä¸å¾å夿´é² framework-specific åå¥ã
- Infrastructure 層å¯ä»¥è¢«æ¿æèä¸å½±é¿ Domain è Applicationã
å ãPresentation 層è¦åï¼UI èäºåï¼
- Presentation 層åªè² 責顯示è使ç¨è äºåã
- Presentation 層ä¸å¾å 嫿¥åè¦åã
- Presentation 層ä¸å¾èªè¡å®ç¾©æ¥åçæ çç¸ã
- Presentation 層åªè½ä¾è³´ Application Facadeã
- Presentation 層ä¸å¾ç´æ¥å¼å« Infrastructureã
- Presentation 層ä¸å¾ç¹é Application ç´æ¥æä½ Domainã
- Presentation 層ççæ åªè½æ¯ççå½é±æç UI stateã
ä¸ãçæ è責任éç
- Domain 層䏿ææç¨çæ ã
- Application 層éä¸ç®¡çæææ¥åçæ ã
- Infrastructure 層ä¸å¾ææé·çå½é±ææ¥åçæ ã
- Presentation 層ä¸å¾ææè·¨é æè·¨æµç¨çæ¥åçæ ã
- ä»»ä¸çæ åªè½æå®ä¸æ¬å¨ä¾æºï¼Single Source of Truthï¼ã
å «ãInterface èæ½è±¡è¦å
- Interface çå®ç¾©ä½ç½®å¿ é 屬æ¼éæ±æ¹ï¼èé坦使¹ã
- Application éè¦çè½åï¼å ¶ interface å¿ é å®ç¾©å¨ Application æ Domainã
- Infrastructure åªè½å¯¦ä½ interfaceï¼ä¸å¾ååå®ç¾©éæ±ã
- Interface ä¸å¾æ´©æ¼æè¡ç´°ç¯ã
ä¹ãShared èå ±ç¨æ¨¡çµè¦å
sharedä¸å¾æçºæ¥åæ ¸å¿ãsharedä¸å¾å 嫿¥åçæ ææ±ºçã- è¥
shared被å¤å feature è¦çºæ¥åä¾è³´ï¼åå ¶å±¤ç´å¿ é ä¸ç§»è³ Application æ Domainã sharedå å 許åå¨ï¼- ç´å·¥å ·
- ç´ UI
- ç´ stateless å ä»¶
åãçµæ§èå½åä¸è´æ§
- è³æå¤¾çµæ§å¿ é åæ å層è責任ã
- æªåèè³æå¤¾åç¨±å¿ é è½ç´æ¥æ¨æ·å ¶æå±¬å±¤ç´ã
- ä¸å¾åºç¾èªæè實é責任ä¸ç¬¦çå½åã
- Barrel export ä¸å¾æ¨¡ç³å±¤ç´éçã
åä¸ãé©èèæ¼é²è¦å
- Domain å¿ é è½ç¨ç«æ¼ä»»ä½ framework ç·¨è¯è測試ã
- Application å¿ é è½å¨ç¡ UI çæ æ³ä¸éè¡è測試ã
- Infrastructure å¿ é å¯è¢« mock ææ¿æã
- Presentation çæ¿æä¸å¾å½±é¿æ¥åé輯ã
- æ¶æ§è¦åå¿ é è½éé lintãtest æ CI 檢æ¥ã