best-practices
4
总安装量
2
周安装量
#51900
全站排名
安装命令
npx skills add https://github.com/wutongci/agentdemo --skill best-practices
Agent 安装分布
gemini-cli
2
replit
1
amp
1
trae
1
kimi-cli
1
Skill 文档
软件å¼åæä½³å®è·µç¥è¯åº
æ¬æè½æä¾è½¯ä»¶å¼åä¸çæä½³å®è·µæå¯¼ï¼æ¶µç代ç è´¨éãæ¶æè®¾è®¡ãå¢éåä½çæ¹é¢ã
æ ¸å¿åå
1. 代ç è´¨éåå
SOLID åå
-
S – Single Responsibility (åä¸èè´£)
- æ¯ä¸ªç±»/彿°åªè´è´£ä¸ä»¶äº
- 妿ä¸ä¸ªç±»æå¤ä¸ªä¿®æ¹ççç±ï¼è¯´æèè´£è¿å¤
-
O – Open/Closed (å¼éåå)
- 对æ©å±å¼æ¾ï¼å¯¹ä¿®æ¹å ³é
- éè¿æ¥å£åæ½è±¡å®ç°æ©å±
-
L – Liskov Substitution (éæ°æ¿æ¢)
- åç±»åºè¯¥å¯ä»¥æ¿æ¢ç¶ç±»
- ä¸è¦å¨åç±»ä¸æ¹åç¶ç±»çè¡ä¸º
-
I – Interface Segregation (æ¥å£é离)
- ä¸åºè¯¥å¼ºè¿«å®¢æ·ç«¯ä¾èµå®ä¸ä½¿ç¨çæ¹æ³
- æ¥å£åºè¯¥å°è䏿³¨
-
D – Dependency Inversion (ä¾èµåç½®)
- ä¾èµäºæ½è±¡èéå ·ä½å®ç°
- é«å±æ¨¡åä¸åºè¯¥ä¾èµä½å±æ¨¡å
DRY åå (Don’t Repeat Yourself)
- é¿å éå¤ä»£ç
- æåå ¬å ±é»è¾å°å½æ°ææ¨¡å
- 使ç¨é ç½®èé硬ç¼ç
KISS åå (Keep It Simple, Stupid)
- ä¿æç®å
- éæ©æç®åçè§£å³æ¹æ¡
- é¿å è¿åº¦è®¾è®¡
YAGNI åå (You Aren’t Gonna Need It)
- ä¸è¦å®ç°å½åä¸éè¦çåè½
- é¿å è¿æ©ä¼å
- åºäºå®é éæ±èéå设
2. 代ç ç»ç»
å½åè§è
- æ¸ æ°è¡¨æï¼åç§°åºè¯¥è¯´æç¨éï¼èéå®ç°
- ä¸è´æ§ï¼éµå¾ªé¡¹ç®çå½å约å®
- é¿å 缩åï¼é¤éæ¯å¹¿ä¸ºæ¥åç缩å (å¦ HTTP, URL)
- 使ç¨é¢åè¯è¨ï¼ä½¿ç¨ä¸å¡é¢åçæ¯è¯
示ä¾ï¼
// â ä¸å¥½çå½å
func proc(d []byte) int { ... }
var x int = 5
// â
好çå½å
func ProcessUserData(data []byte) int { ... }
var maxRetryAttempts int = 5
彿°è®¾è®¡
- å°å½æ°ï¼ä¸ä¸ªå½æ°åªåä¸ä»¶äº
- åæ°éå¶ï¼åæ°ä¸è¶ è¿ 3-4 ä¸ªï¼æ´å¤æ¶èè对象
- é¿å å¯ä½ç¨ï¼å½æ°åºè¯¥æ¯çº¯å½æ°ææç¡®å ¶å¯ä½ç¨
- è¿åå¼ï¼ææä¹çè¿åå¼ï¼æç¡®çé误å¤ç
注éè§è
- 代ç å³ææ¡£ï¼å¥½ç代ç ä¸éè¦å¤ªå¤æ³¨é
- è§£é为ä»ä¹ï¼æ³¨éåºè¯¥è¯´æä¸ºä»ä¹è¿æ ·åï¼èéåäºä»ä¹
- åæ¶æ´æ°ï¼æ³¨éè¦ä¸ä»£ç 忥
- API ææ¡£ï¼å ¬å ± API å¿ é¡»æææ¡£æ³¨é
3. é误å¤ç
æç¡®çé误å¤ç
// â åæé误
result, _ := someFunction()
// â
æç¡®å¤çé误
result, err := someFunction()
if err != nil {
return fmt.Errorf("failed to process: %w", err)
}
é误ä¸ä¸æ
- éè¯¯æ¶æ¯åºè¯¥å å«è¶³å¤çä¸ä¸æ
- 使ç¨é误å è£ ï¼error wrappingï¼ä¿çåå§é误
- å¨éå½çå±çº§å¤çé误
èªå®ä¹é误类å
- 对äºå¯æ¢å¤çé误ï¼å®ä¹ä¸é¨çé误类å
- 便äºè°ç¨è è¯å«åå¤çç¹å®é误
4. æµè¯æä½³å®è·µ
æµè¯éåå¡
- åå æµè¯ï¼æ°éæå¤ï¼é度æå¿«
- éææµè¯ï¼ä¸çæ°éï¼æµè¯ç»ä»¶äº¤äº
- 端å°ç«¯æµè¯ï¼å°éï¼æµè¯å®æ´æµç¨
æµè¯ç¼ååå
- AAA 模å¼ï¼Arrange (åå¤), Act (æ§è¡), Assert (æè¨)
- ç¬ç«æ§ï¼æµè¯ä¹é´ä¸åºè¯¥æä¾èµ
- å¯é夿§ï¼å¤æ¬¡è¿è¡ç»æä¸è´
- èªæè¿°ï¼æµè¯åç§°è¯´ææµè¯ä»ä¹
æµè¯è¦ç
- å ³é®è·¯å¾å¿ é¡»æµè¯
- è¾¹çæ¡ä»¶è¦æµè¯
- éè¯¯åºæ¯è¦æµè¯
- è¦çç䏿¯å¯ä¸ææ ï¼è´¨éæ´éè¦
5. æ§è½æä½³å®è·µ
æ°æ®åº
- 使ç¨ç´¢å¼
- é¿å N+1 æ¥è¯¢
- ä½¿ç¨æ¹éæä½
- éå½çç¼åçç¥
ç®æ³åæ°æ®ç»æ
- éæ©åéçæ°æ®ç»æ
- æ³¨ææ¶é´å¤æåº¦
- é¿å ä¸å¿ è¦çåµå¥å¾ªç¯
èµæºç®¡ç
- åæ¶éæ¾èµæºï¼æä»¶å¥æãç½ç»è¿æ¥ï¼
- 使ç¨å¯¹è±¡æ± å¤ç¨å¯¹è±¡
- 注æå åæ³æ¼
6. å®å ¨æä½³å®è·µ
è¾å ¥éªè¯
- æ°¸è¿ä¸è¦ä¿¡ä»»ç¨æ·è¾å ¥
- éªè¯ãæ¸ çææå¤é¨è¾å ¥
- 使ç¨ç½ååèéé»åå
认è¯åææ
- ä½¿ç¨æçç认è¯åº
- å¯ç å å¯åå¨
- 宿½æå°æéåå
æææ°æ®
- ä¸è¦å¨ä»£ç ä¸ç¡¬ç¼ç å¯é¥
- 使ç¨ç¯å¢åéæå¯é¥ç®¡çæå¡
- æææ¥å¿è¦è±æ
7. çæ¬æ§å¶
Commit è§è
- æ¸ æ°çæ¶æ¯ï¼è¯´æåäºä»ä¹å为ä»ä¹
- ååæäº¤ï¼ä¸ä¸ª commit åä¸ä»¶äº
- é¢ç¹æäº¤ï¼å°æ¥æäº¤ï¼æäºåæ»
忝çç¥
- ä¸»åæ¯æ°¸è¿å¯åå¸
- åè½åæ¯å¼å
- åæ¶åå¹¶ï¼é¿å é¿æåæ¯
8. 代ç 审æ¥
审æ¥éç¹
- åè½æ£ç¡®æ§
- 代ç è´¨éåå¯ç»´æ¤æ§
- æ½å¨ç bug åè¾¹çæ åµ
- æ§è½é®é¢
- å®å ¨æ¼æ´
å®¡æ¥æåº¦
- 建设æ§åé¦
- åºäºäºå®åæ å
- èå¿æ¥å建议
- è§£éå³çåå
9. ææ¡£
å¿ è¦çææ¡£
- READMEï¼é¡¹ç®æ¦è¿°åå¿«éå¼å§
- API ææ¡£ï¼æ¥å£è¯´æå示ä¾
- æ¶æææ¡£ï¼ç³»ç»è®¾è®¡åå ³é®å³ç
- è¿ç»´ææ¡£ï¼é¨ç½²åçæ§
ææ¡£åå
- ä¸ä»£ç åæ¥æ´æ°
- ç®æ´æäº
- å å«ç¤ºä¾
- æäºæ¥æ¾
10. æç»æ¹è¿
代ç éæ
- å°æ¥éæ
- 卿µè¯ä¿æ¤ä¸éæ
- 䏿¹åå¤é¨è¡ä¸º
- åæ¶æ¸ çææ¯åºå¡
å¦ä¹ åå享
- 代ç å®¡æ¥æ¯å¦ä¹ æºä¼
- å享æä½³å®è·µ
- ä»é误ä¸å¦ä¹
- ä¿æææ¯æ´æ°
åºç¨æå¯¼
彿£æµå°ä»¥ä¸æ 嵿¶ï¼èªå¨æä¾ç¸å ³å»ºè®®ï¼
- 代ç å¤æåº¦é«ï¼å»ºè®®æå彿°ï¼åºç¨ SOLID åå
- éå¤ä»£ç ï¼å»ºè®®æåå ¬å ±é»è¾ï¼åºç¨ DRY åå
- å½å䏿¸ ï¼æä¾æ´å¥½çå½å建议
- 缺å°é误å¤çï¼æåºé误å¤ççæä½³å®è·µ
- æ§è½é®é¢ï¼æä¾ä¼å建议
- å®å ¨é£é©ï¼æåºæ½å¨çå®å ¨é®é¢
æ£æ¥æ¸ å
å¨ä»£ç å®¡æ¥æå¼åæ¶ï¼åè以䏿¸ åï¼
代ç è´¨é
- å½åæ¸ æ°ãææä¹
- 彿°èè´£åä¸
- æ éå¤ä»£ç
- é误å¤çå®å
- æå¿ è¦ç注é
æ§è½
- ç®æ³æçåç
- èµæºæ£ç¡®éæ¾
- æ ææ¾æ§è½ç¶é¢
å®å ¨
- è¾å ¥å·²éªè¯
- æ ææä¿¡æ¯æ³é²
- æéæ£æ¥æ£ç¡®
æµè¯
- æå¯¹åºçåå æµè¯
- å ³é®è·¯å¾å·²è¦ç
- è¾¹çæ¡ä»¶å·²æµè¯
ææ¡£
- å ¬å ± API æææ¡£
- 夿é»è¾æè¯´æ
- README å·²æ´æ°