让 AI èªåšåž®äœ éµåŸª COLA æ¶æè§èæ¥ç»ç»ä»£ç çæèœå ïŒæ¯æ Python å Javaã
"æ°å»ºäºäžäžªä»£ç æä»¶ïŒåºè¯¥æŸåšåªäžªç®åœäžå¢ïŒ"
"æŽäžªé¡¹ç®ç代ç ç»æåŠäœè®Ÿè®¡å¢ïŒ"
"䞺ä»ä¹æç项ç®è¶åè¶ä¹±ïŒæåèªå·±éœçäžæäºïŒ"
åŠæäœ åšé¡¹ç®åŒåäžââå°€å ¶æ¯ Vibe Coding æ¶ââæ²¡æå»ºç«èµ·äžå¥ä»£ç ç»ç»çæäœ³è§èïŒåŸå®¹æå°±äŒé·å ¥ïŒ
- ð ç®åœæä¹±äžå ªïŒæ¯«æ ç»æå¯èš
- ðР代ç å ç§¯ç¹æïŒæ³æŸäžªæä»¶éœè޹å²
- ð§ éŸä»¥ç»Žæ€ïŒæ¹äžå€åŽ©åå€
- ð¥ åäœå°éŸïŒæ¯äžªäººéœæèªå·±ç"飿 Œ"
åŠäœå°ä»£ç ç»ç»åŸäºäºææ¡å¢ïŒ äŒç§çåèŸä»¬å·²ç»è®Ÿè®¡å¥œäºäžå¥éçšçè§èââCOLAã
COLAïŒClean Object-Oriented and Layered ArchitectureïŒæ¯é¿éå·Žå·Žåºåçé¡¹ç®æ¶æè§èïŒåšäžäžåºŠäžæ²¡åŸè¯Žãäœå®é æä¹äœ¿çšå¢ïŒ
对äºå欢 Vibe Coding çååŠæ¥è¯ŽïŒå
¶å®æ éæç¥å€æçæ¶æè®Ÿè®¡ç»èãæå°æŽäžª COLA æ¶æè§èèœ¬æ¢æäº cola-skill æèœå
ïŒåæ Python çå Java ç,(COLA åçä»
æ¯æ Java 项ç®, è¿éææŽçäºèªå·±å python é¡¹ç®æ¶è®Ÿè®¡æ¶æçå®è·µ, å°å
¶éé
å° python ç,äžè®ºè¯èš, ææ³æ¯çžåç, æªæ¥è¿äŒå¢å goççæ¬.)ã
åªéåšæ¯æ Skill ç IDEïŒåŠ Claude CodeãWindsurfïŒäžå 蜜该æèœå ïŒAI å°±äŒèªåšåž®äœ éµåŸª COLA è§èæ¥ç»ç»ä»£ç ïŒ
| Skill | æè¿° | éçšåºæ¯ |
|---|---|---|
| python-cola-skill | Python ç COLA æ¶ææå | FlaskãFastAPI é¡¹ç® |
| java-cola-skill | Java ç COLA æ¶ææå | Spring Boot é¡¹ç® |
ä»¥äžæ¯æçåŠäžäžªåŒæºé¡¹ç® vibe-blog ççå®éææ¡äŸã
vibe-blog æ¯äžäžªåºäºå€ Agent æ¶æç"é¿æäžäžå客"åäœå©æïŒæ¯ææ·±åºŠè°ç ãæºèœé åŸãMermaid åŸè¡šã代ç éæçåäœèœåã
vibe-blog åæåŒåå€äºæ¢çޢ鶿®µïŒ90% ç代ç éœæ¯éè¿ Vibe Coding 宿ãç±äºæš¡åçæä»£ç ç倩æ§äœ¿ç¶ââåªäŒæ°å¢åå 积ïŒäžäŒèªå·±åéæåäŒå(没æé¡¹ç®çè®°å¿, äžäžææéççå çŽ )ã
è¿ä»£äžæ®µæ¶éŽåïŒæŽäžªä»£ç åºè¶æ¥è¶æ··ä¹±ïŒå¯ŒèŽïŒ
- æš¡åéèŠå èœœçæ æäžäžæè¶æ¥è¶å€ïŒéåºŠæ ¢
- å€§éæ æ Token æ¯äžç¬èŸå€§çåŒé
- æ æä¹ç代ç å æ¥äžäžæïŒå¯ŒèŽçæç代ç 莚éä¹åŸå·®
- 项ç®å¯ç»Žæ€æ§å·®, äœäžºäžäžªé¡¹ç®çåŒåè æææ¶å对äžäºåèœçå®ç°ä¹åŸå°æ, ä»£ç æŸåªå¿äºè¿æ¯? æŸå°ä»£ç å, å°Œç,æä¹æŸåšè¿äžªæš¡åäžäº.
äžºäºæèœ¬è¿äžå±é¢ïŒæäœ¿çš python-cola-skill 对æŽäžª vibe-blog è¿è¡éæã
backend/
âââ app.py # ð± 108KB å·šåæä»¶ïŒ2695è¡ïŒ- 50+ 䞪路ç±å
šåšè¿é
âââ config.py # 7KB é
眮æä»¶
â
âââ services/ # æå¹³åæå¡å±ïŒ15+ 䞪æå¡æä»¶æ··åšäžèµ·ïŒ
â âââ blog_generator/ # å客çæåæš¡å
â â âââ agents/ # 9 䞪 AgentïŒplanner, writer, artist...ïŒ
â â âââ templates/ # 36 䞪 Jinja2 æš¡æ¿ïŒç¬¬1å€æš¡æ¿ç®åœïŒ
â â âââ prompts/ # 第2å€æš¡æ¿ç®åœïŒéå€ïŒ
â â âââ blog_service.py # 47KB
â â âââ generator.py # 21KB
â â
â âââ prompts/ # 第3å€æš¡æ¿ç®åœïŒåéå€ïŒ
â âââ publishers/ # ååžåš
â âââ image_styles/ # åŸç飿 ŒïŒç¬¬4å€æš¡æ¿ç®åœïŒ
â â
â âââ database_service.py # æ°æ®åºæäœ
â âââ xhs_service.py # å°çº¢ä¹Šæå¡
â âââ book_scanner_service.py # ä¹Šç±æ«æ
â âââ video_service.py # è§é¢æå¡
â âââ llm_service.py # LLM è°çš
â âââ ...å
¶ä»æå¡
â
âââ vibe_reviewer/ # ç¬ç«æš¡åïŒç¬¬5å€æš¡æ¿ç®åœïŒ
æ žå¿çç¹ïŒ
| é®é¢ | æè¿° |
|---|---|
| ðŽ å·šå app.py | 2695 è¡ïŒ50+ 䞪路ç±å šéšå åšäžäžªæä»¶ |
| ðŽ æå¹³åæå¡å± | æææå¡å¹³éºïŒèèŽ£äžæž ãäŸèµæ··ä¹± |
| ðŽ æš¡æ¿ç®åœåæ£ | templates/prompts åæ£åš 5 䞪äžåäœçœ® |
| ðŽ æ å屿¶æ | è·¯ç±ãäžå¡é»èŸãæ°æ®è®¿é®æ··åšäžèµ· |
backend/
âââ api/ # æ¥å£å±ïŒControllerïŒ
â âââ routes/
â â âââ blog_routes.py # å客çæè·¯ç±
â â âââ xhs_routes.py # å°çº¢ä¹Šè·¯ç±
â â âââ book_routes.py # 乊ç±ç®¡çè·¯ç±
â â âââ ...ïŒ12 äžªè·¯ç±æš¡åïŒ
â âââ middlewares/
â âââ error_handler.py # ç»äžé误å€ç
â
âââ application/ # åºçšå±ïŒçšäŸçŒæïŒ
â âââ blog_application.py # å客çæçšäŸ
â âââ xhs_application.py # å°çº¢ä¹ŠçšäŸ
â âââ ...ïŒ5 䞪çšäŸæå¡ïŒ
â
âââ domain/ # é¢åå±ïŒæ žå¿äžå¡ïŒ
â âââ blog/
â â âââ entities.py # Blog, Section å®äœ
â â âââ value_objects.py # ArticleType åŒå¯¹è±¡
â â âââ agents/ # é¢åæå¡
â âââ xhs/
â âââ book/
â
âââ infrastructure/ # åºç¡è®Ÿæœå±
â âââ persistence/ # æä¹
å
â âââ external/ # å€éšæå¡ïŒLLMãOSSïŒ
â âââ prompts/ # ç»äžç®¡çæææš¡æ¿
â
âââ app.py # åªååå§ååè·¯ç±æ³šåïŒ~50è¡ïŒ
| ææ | éæå | éæå |
|---|---|---|
| app.py è¡æ° | 2695 è¡ | ~50 è¡ |
| è·¯ç±æš¡å | 1 䞪巚åæä»¶ | 12 䞪ç¬ç«æš¡å |
| æš¡æ¿ç®åœ | 忣 5 å€ | ç»äž 1 å€ |
| 坿µè¯æ§ | éŸä»¥åæµ | é¢åå±å¯ç¬ç«æµè¯ |
| æ°äººäžæ | éèŠ 1 åš | éèŠ 1 倩 |
æ¹æ³äžïŒGit å éïŒæšèïŒ
# å
éæŽäžªä»åºå° skills ç®åœ
git clone https://github.com/lailoo/cola-DDD-skill.git ~/.claude/skills/cola-DDD-skillæ¹æ³äºïŒæåšå®è£
- äžèœœæ¬é¡¹ç®ç ZIP æä»¶
- å° skill æä»¶å€¹å€å¶å° Claude Code ç skills ç®åœïŒ
- macOS/Linux:
~/.claude/skills/ - Windows:
%USERPROFILE%\.claude\skills\
- macOS/Linux:
åœäœ æå°ä»¥äžå ³é®è¯æ¶ïŒSkill äŒè¢«èªåšæ¿æŽ»ïŒ
- éçšïŒCOLAãDDDãå屿¶æãæŽæŽæ¶æãå èŸ¹åœ¢æ¶æãGateway æš¡åŒ
- PythonïŒPython DDDãFlask æ¶æãFastAPI æ¶æ
- JavaïŒJava DDDãSpring Boot æ¶æãMaven 倿š¡å
䜿çšç€ºäŸïŒ
请垮æçš COLA æ¶æå建äžäžª Flask çšæ·ç®¡çç³»ç»
ææäžäžª Spring Boot åäœåºçšïŒè¯·åž®ææ COLA æ¶æéæ
åŠæäœ æ³æ·±å ¥äºè§£ COLA æ¶æçè®Ÿè®¡ææ³ïŒè¯·ç»§ç»é 读ã
äœ ææ²¡æè§è¿é£ç§"äžåžç±»"ïŒäžäžª XXXService.java å åè¡ä»£ç ïŒä»æ¥æ¶è¯·æ±ãæ ¡éªåæ°ãè°çšæ°æ®åºãåéæ¶æ¯ãè¿åç»æå
šéœå¡åšäžèµ·ãæ¹äžäžªå°åèœïŒåŸææŽäžªæä»¶ç¿»äžéïŒçææ¹éäºåªéã
åå±çæ¬èŽšæ¯"åèæ²»ä¹"ã
å°±åäœ äžäŒè®©å端工çšåžå»å SQLïŒä¹äžäŒè®© DBA å»è° CSS äžæ ·ââæ¯äžªäººäžæ³šèªå·±æ é¿çäºæ ïŒæçæé«ã代ç 乿¯åŠæ€ïŒ
- æ¥å£å±äžæ³šäºæ¥æ¶è¯·æ±ãè¿åååº
- äžå¡å±äžæ³šäºæ žå¿é»èŸè®¡ç®
- æ°æ®å±äžæ³šäºååæ°æ®
ååžå ¶èïŒäºäžå¹²æ°ãæ¹æ°æ®åºäžåœ±åäžå¡é»èŸïŒæ¢åç«¯æ¡æ¶äžçšåšå端代ç ãè¿èåäœç°äºå 䞪éèŠç讟计ååïŒ
- å°è£ ïŒäžå±å¯¹äžå±å±èœå®ç°ç»èïŒäžå±äžéèŠç¥éæ°æ®æ¯ååš MySQL è¿æ¯ Redis
- åäžèèŽ£ïŒæ¯äžå±åªåäžä»¶äºïŒèèŽ£èŸ¹çæž æ°
- é«å èäœèŠåïŒçžå ³ä»£ç èåšäžèµ·ïŒäžçžå ³ç代ç 圌æ€é犻
æç»ç®çïŒä»èé¿å äžæå åºæ¥å€§äžç»çå±å±±ä»£ç æä»¶, æ¯åŠæäžªå åè¡ç serviceç±».ã
å屿¶æçææ³å€§å®¶éœæïŒå èŸ¹åœ¢ãæŽè±åãæŽæŽæ¶æâŠâŠæŠå¿µäžå€§å ãäœé®é¢æ¯ïŒå ·äœæä¹èœå°ïŒ
- è¿äžªç±»åºè¯¥æŸåšåªäžªå äžïŒ
- Gateway å Repository æä»ä¹åºå«ïŒ
- Command å Query èŠäžèŠååŒïŒ
- DTOãVOãDOãEntity å°åºæä¹èœ¬æ¢ïŒ
åŸå€æ¶ææç« è®²å®ææ³å°±ç»æäºïŒçäžäžèžæµéŒçäœ ã
COLA äžäžæ ·ã å®äžä» åè¯äœ "åºè¯¥åå±"ïŒè¿åè¯äœ ïŒ
- æ¯äžå±å«ä»ä¹åå
- æ¯äžå±æŸä»ä¹ä»£ç
- ç±»åºè¯¥æä¹åœå
- çè³æäŸäºèææ¶ïŒäžé®çææ åç®åœç»æ
è¿å°±æ¯ COLA çä»·åŒââä»ç论å°å®è·µçæåäžå ¬éã
| é®é¢ | COLA çè§£å³æ¹æ¡ |
|---|---|
| ðŽ äžå¡é»èŸæ£èœåå€ | é¢åå±éäžç®¡çæ žå¿äžå¡é»èŸ |
| ðŽ ææ¯å®ç°äžäžå¡èŠå | å屿¶æè§£èŠïŒInfrastructure å®ç° Domain æ¥å£ |
| ðŽ ä»£ç éŸä»¥æµè¯ | äŸèµå眮ïŒDomain 屿 å€éšäŸèµïŒæäºåæµ |
| ðŽ æ°äººäžæå°éŸ | æ ååç®åœç»æååœåè§è |
| ðŽ éæææ¬é« | æž æ°ç蟹çïŒæ¹åšåœ±åèåŽå¯æ§ |
COLA å°åºçšå䞺åå±ïŒæ¯äžå±éœææç¡®çè莣å®ä¹ïŒ
| å±çº§ | è莣 | 倧çœè¯è§£é |
|---|---|---|
| Adapter å±ïŒéé å±ïŒ | èŽèޣ坹å端å±ç€ºïŒwebãwirelessãwapïŒçè·¯ç±åéé | å°±æ¯ MVC äžç ControllerïŒæ¥æ¶è¯·æ±ãè¿åååº |
| App å±ïŒåºçšå±ïŒ | è·åèŸå ¥ãç»è£ äžäžæãåæ°æ ¡éªãè°çšé¢åå±åäžå¡å€ç | çŒæè°åºŠåïŒäžå¹²æŽ»ïŒåªèŽèŽ£åè°åæ¹ |
| Domain å±ïŒé¢åå±ïŒ | å°è£ æ žå¿äžå¡é»èŸïŒæäŸäžå¡å®äœåäžå¡é»èŸè®¡ç® | çæ£å¹²æŽ»çå°æ¹ïŒäžäŸèµä»»äœå ¶ä»å± |
| Infrastructure å±ïŒåºç¡è®Ÿæœå±ïŒ | å€çææ¯ç»èïŒæ°æ®åº CRUDãæçŽ¢åŒæãRPC çïŒ | èæŽ»çŽ¯æŽ»éœåšè¿éïŒå€éšäŸèµéè¿ Gateway 蜬ä¹åæèœè¢«äžå±äœ¿çš |
âââââââââââââââââââââââââââââââââââââââ
Driving Adapter: â æµè§åš â 宿¶åš â æ¶æ¯éå â
âââââââââââââââââââââââââââââââââââââââ
â
VO ââââââââââââââââ âââââââââââââââââââââââââââââââââââââââ
(View Object) â Adapter å± â
â controller â scheduler â consumer â
âââââââââââââââââââââââââââââââââââââââ
â
DTO âââââââââââââââ âââââââââââââââââââââââââââââââââââââââ
(Data Transfer â App å± â
Object) â service â executor â
âââââââââââââââââââââââââââââââââââââââ
â
Entity ââââââââââââ âââââââââââââââââââââââââââââââââââââââ
â Domain å± â
â gateway â model â ability â
âââââââââââââââââââââââââââââââââââââââ
â
DO ââââââââââââââââ âââââââââââââââââââââââââââââââââââââââ
(Data Object) â Infrastructure å± â
â gatewayImpl â mapper â config â
âââââââââââââââââââââââââââââââââââââââ
â
Driven Adapter: â DB â Search â RPC â
ð¡ åèæ¥æºïŒCOLA 4.0ïŒåºçšæ¶æçæäœ³å®è·µ
Adapter â App â Domain â Infrastructure
â â
Client
泚æçç®å€Žæ¹åïŒ
| è§å | è§£é |
|---|---|
| Domain å±äžäŸèµä»»äœå± | 纯äžå¡é»èŸïŒå¯ä»¥ç¬ç«æµè¯ïŒäžéèŠå¯åšæ°æ®åº |
| Infrastructure äŸèµ Domain | Infrastructure å®ç° Domain å®ä¹ç Gateway æ¥å£ïŒäŸèµåçœ®ïŒ |
| Client 被ææå±äŸèµ | Client å±å®ä¹äº DTOïŒæ°æ®äŒ èŸå¯¹è±¡ïŒïŒå€§å®¶éœèŠçš |
䞺ä»ä¹è¿æ ·è®Ÿè®¡ïŒ
å讟æäžå€©äœ èŠæ MySQL æ¢æ PostgreSQLïŒ
- â äŒ ç»åæ³ïŒDomain å±çŽæ¥è°çš MySQLïŒæ¢æ°æ®åºèŠæ¹äžå¡ä»£ç
- â COLA åæ³ïŒDomain å±åªè°çš Gateway æ¥å£ïŒæ¢æ°æ®åºåªéèŠæ¹ Infrastructure å±çå®ç°
è¿å°±æ¯äŸèµå眮çåšåââæ žå¿äžå¡äžåææ¯éåç圱åã
COLA è¿æäŸäºäžäºåŒç®±å³çšçç»ä»¶ïŒæéåŒå ¥ïŒ
| ç»ä»¶ | çšé | 䜿çšåºæ¯ |
|---|---|---|
| DTO | ç»äžç ResponseãCommandãQuery åºç±» | ææé¡¹ç® |
| Exception | ç»äžåŒåžžå€ç | ææé¡¹ç® |
| Extension | æ©å±ç¹æºå¶ | å€äžå¡çº¿ãå€ç§æ· |
| StateMachine | ç¶ææº | 订åç¶ææµèœ¬ãå®¡æ¹æµçš |
| CatchLog | åŒåžžæè·åæ¥å¿ | ç®å try-catch |
| RuleEngine | è§ååŒæ | 倿äžå¡è§å |
äžæ³æåšå建ç®åœïŒCOLA æäŸäºäž€ç§èææ¶ïŒäžé®çææ å项ç®ç»æïŒ
| Archetype | çšé | å 嫿š¡å |
|---|---|---|
cola-archetype-web |
Web åºçšïŒæå端æ¥å£ïŒ | adapter, app, client, domain, infrastructure, start |
cola-archetype-service |
纯å端æå¡ïŒRPC/DubboïŒ | app, client, domain, infrastructure, start |
# å建 Web åºçš
mvn archetype:generate \
-DarchetypeGroupId=com.alibaba.cola \
-DarchetypeArtifactId=cola-framework-archetype-web \
-DarchetypeVersion=4.3.1ð¡ åèæ¥æºïŒCOLA 4.0ïŒåºçšæ¶æçæäœ³å®è·µ
| ç±»å | Python åçŒ | Java åçŒ |
|---|---|---|
| åœä»€ | _cmd |
Cmd |
| æ¥è¯¢ | _qry |
Qry |
| åœä»€æ§è¡åš | _cmd_exe |
CmdExe |
| æ¥è¯¢æ§è¡åš | _qry_exe |
QryExe |
| 客æ·ç«¯å¯¹è±¡ | _co |
CO |
| æå¡æ¥å£ | _service_i |
ServiceI |
| æå¡å®ç° | _service |
ServiceImpl |
| çœå ³æ¥å£ | _gateway |
Gateway |
| çœå ³å®ç° | _gateway_impl |
GatewayImpl |
| 蜬æ¢åš | _convertor |
Convertor |
cola-DDD-skill/
âââ README.md # æ¬è¯Žæææ¡£
âââ python-cola-skill/
â âââ SKILL.md # Python COLA æèœå®ä¹
â âââ references/
â âââ dto.md # ResponseãCommandãQueryãCO æš¡æ¿
â âââ service.md # Service åæ§è¡åšæš¡æ¿
â âââ gateway.md # Gateway æš¡åŒæš¡æ¿
â âââ example.md # 宿Žçšæ·ç®¡ç瀺äŸ
âââ java-cola-skill/
âââ SKILL.md # Java COLA æèœå®ä¹
âââ references/
âââ dto.md # ResponseãCommandãQueryãCO æš¡æ¿
âââ service.md # Service åæ§è¡åšæš¡æ¿
âââ gateway.md # Gateway æš¡åŒæš¡æ¿
âââ example.md # 宿Žç€ºäŸ + Maven é
眮
- COLA GitHub - é¿éå·Žå·Ž COLA 宿¹ä»åº
- COLA 4.0ïŒåºçšæ¶æçæäœ³å®è·µ
- vibe-blog - æ¬æå®è·µæ¡äŸçåŒæºé¡¹ç®
æ¬¢è¿æäº€ Issue æ Pull Request æ¥æ¹è¿è¿äº Skillsã
- Fork æ¬ä»åº
- åå»ºäœ çç¹æ§åæ¯ (
git checkout -b feature/amazing-feature) - æäº€äœ çæŽæ¹ (
git commit -m 'Add some amazing feature') - æšéå°åæ¯ (
git push origin feature/amazing-feature) - æåŒäžäžª Pull Request
MIT License
æç€ºïŒ è¿äº Skills æšåšæäŸæ¶ææå¯ŒïŒèé区å¶è§èãæ ¹æ®é¡¹ç®å®é æ åµçµæŽ»è°æŽïŒä¿æä»£ç æŽæŽåå¯ç»Žæ€æ§ææ¯æç»ç®æ ã