backend-dev-guides
4
总安装量
3
周安装量
#49099
全站排名
安装命令
npx skills add https://github.com/ayuayue/skills --skill backend-dev-guides
Agent 安装分布
kilo
3
amp
3
opencode
3
kimi-cli
3
github-copilot
3
Skill 文档
Backend Development Guides
å端å¼åæå¯¼æè½ï¼æä¾å端å¼åå·¥å ·åæ¡æ¶ç使ç¨è§èãæä½³å®è·µåå¼åæå¯¼ã
è§¦åæ¡ä»¶
å½ç¨æ·è¯·æ±ä»¥ä¸å 容æ¶ä½¿ç¨æ¤æè½ï¼
- å端å¼åç¸å ³çå·¥å ·ä½¿ç¨æå¯¼
- åç«¯æ¡æ¶ç使ç¨å»ºè®®
- å端å¼åçæä½³å®è·µ
- API 设计åå¼åè§è
- æ°æ®åºæä½æå¯¼
- å端代ç è§è忍¡å¼
- åç«¯é¡¹ç®æ¶æè®¾è®¡
- GoãJavaãPHPãPython çå端è¯è¨çå¼åä»»å¡
说æ
æ¯æçææ¯æ
- ç¼ç¨è¯è¨: Node.js, Python, Java, Go, PHP ç
- æ¡æ¶: Express, NestJS, Django, Spring Boot, Gin, Laravel ç
- æ°æ®åº: MySQL, PostgreSQL, MongoDB, Redis ç
- å·¥å ·: Docker, Git, CI/CD ç
å¼åè§è
1. 项ç®ç»æ
backend-project/
âââ src/ # æºä»£ç ç®å½
â âââ controllers/ # æ§å¶å¨å±
â âââ services/ # ä¸å¡é»è¾å±
â âââ models/ # æ°æ®æ¨¡å
â âââ repositories/ # æ°æ®è®¿é®å±
â âââ middlewares/ # ä¸é´ä»¶
â âââ routes/ # è·¯ç±å®ä¹
â âââ utils/ # å·¥å
·å½æ°
â âââ config/ # é
ç½®æä»¶
âââ tests/ # æµè¯æä»¶
âââ docs/ # ææ¡£
âââ package.json # ä¾èµé
ç½®
2. API 设计è§è
-
RESTful 设计: éµå¾ª REST æ¶æé£æ ¼
- GET – è·åèµæº
- POST – åå»ºèµæº
- PUT – æ´æ°æ´ä¸ªèµæº
- PATCH – é¨åæ´æ°èµæº
- DELETE – å é¤èµæº
-
å½å约å®:
- URL 使ç¨å°å忝åè¿å符:
/api/users - 使ç¨å¤æ°åè¯è¡¨ç¤ºèµæºéå
- çæ¬æ§å¶:
/api/v1/users
- URL 使ç¨å°å忝åè¿å符:
-
ååºæ ¼å¼:
{
"success": true,
"data": {},
"message": "æä½æå",
"timestamp": "2024-01-01T00:00:00Z"
}
3. é误å¤ç
- ç»ä¸é误ååºæ ¼å¼
- 使ç¨éå½ç HTTP ç¶æç
- è®°å½è¯¦ç»é误æ¥å¿
- é¿å æ´é²ææä¿¡æ¯
// é误å¤ç示ä¾
class AppError extends Error {
constructor(message, statusCode) {
super(message);
this.statusCode = statusCode;
this.isOperational = true;
}
}
4. æ°æ®åºæä½
- ä½¿ç¨ ORM ææ¥è¯¢æå»ºå¨
- åæ°åæ¥è¯¢é²æ¢ SQL æ³¨å ¥
- åç使ç¨ç´¢å¼ä¼åæ¥è¯¢
- å®ç°äºå¡ç®¡ç
- æ°æ®éªè¯åæ¸ æ´
- ç¦æ¢å¨å¾ªç¯ä¸æ¥è¯¢æ°æ®åº
- åºè¯¥ä½¿ç¨æ¹éæ¥è¯¢æ JOIN æä½ä¸æ¬¡æ§è·åæ°æ®
- å æ¶éææéè¦ç IDï¼ç¶å䏿¬¡æ§æ¥è¯¢
- ä½¿ç¨ IN å奿æ¹éæ¥è¯¢æ¥å£
ç¦æ¢å¨å¾ªç¯ä¸æ¥è¯¢æ°æ®åºç示ä¾ï¼
â éè¯¯åæ³ï¼
// Go 示ä¾
for _, userID := range userIDs {
user, _ := db.Query("SELECT * FROM users WHERE id = ?", userID)
// å¤ç user...
}
# Python 示ä¾
for user_id in user_ids:
user = db.query("SELECT * FROM users WHERE id = ?", user_id)
# å¤ç user...
}
// Java 示ä¾
for (String userId : userIds) {
User user = userRepository.findById(userId);
// å¤ç user...
}
â æ£ç¡®åæ³ï¼
// Go æ¹éæ¥è¯¢ç¤ºä¾
userIDs := []int{1, 2, 3}
users, _ := db.Query("SELECT * FROM users WHERE id IN ?", userIDs)
for _, user := range users {
// å¤ç user...
}
# Python æ¹éæ¥è¯¢ç¤ºä¾
user_ids = [1, 2, 3]
users = db.query("SELECT * FROM users WHERE id IN ?", user_ids)
for user in users:
# å¤ç user...
}
// Java æ¹éæ¥è¯¢ç¤ºä¾
List<String> userIds = Arrays.asList("1", "2", "3");
List<User> users = userRepository.findByIds(userIds);
users.forEach(user -> {
// å¤ç user...
});
5. å®å ¨å®è·µ
- 身份认è¯åææ
- è¾å ¥éªè¯åè¿æ»¤
- ä½¿ç¨ HTTPS
- æææ°æ®å å¯åå¨
- 宿å®å ¨å®¡è®¡
- ä¾èµæ´æ°åæ¼æ´ä¿®å¤
6. æ§è½ä¼å
- æ°æ®åºæ¥è¯¢ä¼å
- ç¼åçç¥ (Redis)
- 弿¥å¤ç
- è¿æ¥æ± 管ç
- æ¥å¿çæ§åæ§è½åæ
7. æµè¯è§è
- åå æµè¯è¦çç > 80%
- éææµè¯å ³é®æµç¨
- API æ¥å£æµè¯
- è´è½½æµè¯
8. ææ¡£è¦æ±
- API ææ¡£ (Swagger/OpenAPI)
- README 项ç®è¯´æ
- ä»£ç æ³¨é
- åæ´æ¥å¿ (CHANGELOG)
代ç è´¨é
- ä½¿ç¨ ESLint/Prettier 代ç è§è
- éµå¾ª SOLID åå
- DRY (Don’t Repeat Yourself)
- 彿°åä¸èè´£
- åççå½åè§è
- ç±»åæ£æ¥ (TypeScript)
代ç ä¿®æ¹åå
- æå°ä¿®æ¹åå: ä¿®æ¹ä»£ç æ¶éµå¾ªæå°ååï¼åªä¿®æ¹å¿
è¦çé¨å
- ä¼å ä¿®å¤ææ·»å ç®æ åè½ï¼é¿å æ¹å¨å ³èå¾å¤å°æ¹çåè½
- å°½éä¿æç°æä»£ç ç»æåé»è¾ä¸å
- åªä¿®æ¹ä¸å½åä»»å¡ç´æ¥ç¸å ³ç代ç
- é¿å 为五ä¼å”èè¿è¡å¤§è§æ¨¡éæ
- ä¿®æ¹åå åæå½±åèå´ï¼ç¡®è®¤æå°ä¿®æ¹æ¹æ¡
æå°ä¿®æ¹åå示ä¾ï¼
â é¿å çåæ³ï¼
# ç¨æ·è¦æ±ä¿®å¤ä¸ä¸ªç»å½Bugï¼ç»æéåäºæ´ä¸ªè®¤è¯ç³»ç»
def login(username, password):
# å¤§éæ å
³æ¹å¨...
pass
def register(username, password, email, phone, address, age, gender): # æ°å¢
# ä¿®æ¹äºå¾å¤ä¸ç¸å
³ç模å...
pass
â æ¨èçåæ³ï¼
# ç¨æ·è¦æ±ä¿®å¤ä¸ä¸ªç»å½Bugï¼åªä¿®å¤é®é¢æå¨
def login(username, password):
# åªä¿®å¤ç»å½é»è¾ä¸çbug
if not username:
return {"error": "ç¨æ·åä¸è½ä¸ºç©º"}
# ä¿æå
¶ä»ä»£ç ä¸å
æ§è¡å½ä»¤éå¶
- ä¸è¦æ§è¡æµè¯æç¼è¯å½ä»¤
- æ¬å°å¼åç¯å¢é ç½®å¯è½ä¸å®æ´ææ··ä¹±
- æµè¯ä¾èµå¯è½ç¼ºå¤±æé ç½®é误
- å½ä»¤æ§è¡å¤±è´¥å¯è½å¯¼è´é误ç夿
- åºè¯¥åªç»åºæ§è¡å»ºè®®ï¼ç±ç¨æ·æå¨æ§è¡
æ§è¡å»ºè®®ç¤ºä¾ï¼
â ä¸è¦ç´æ¥æ§è¡ï¼
npm test # ä¸è¦ç´æ¥æ§è¡æµè¯å½ä»¤
npm run build # ä¸è¦ç´æ¥æ§è¡ç¼è¯å½ä»¤
mvn test # ä¸è¦ç´æ¥æ§è¡Mavenæµè¯
â ç»åºæ§è¡å»ºè®®ï¼
建议æ¨å¨æ¬å°æ§è¡ä»¥ä¸å½ä»¤æ¥éªè¯ä¿®æ¹ï¼
# è¿è¡æµè¯
npm test
# æè
ç¼è¯é¡¹ç®
npm run build
# éªè¯ä¿®æ¹æ¯å¦ç¬¦å颿
å¼å工使µ
- éæ±åæå设计
- å建åè½åæ¯
- ç¼å代ç åæµè¯
- 代ç 审æ¥
- åå¹¶å°ä¸»åæ¯
- é¨ç½²åçæ§
é¨ç½²å»ºè®®
- ä½¿ç¨ Docker 容å¨å
- CI/CD èªå¨åé¨ç½²
- ç¯å¢åé管ç
- å¥åº·æ£æ¥ç«¯ç¹
- æ¥å¿æ¶éååæ
- çæ§åè¦
注æäºé¡¹
- é¿å 硬ç¼ç é ç½®
- ææä¿¡æ¯ä½¿ç¨ç¯å¢åé
- åçè®¾ç½®è¶ æ¶æ¶é´
- å®ç°è¯·æ±éæµ
- å¤ä»½åæ¢å¤çç¥
- è·¨åé ç½® (CORS)
- æ¶é´åæ¶åºå¤ç