Git 工作流
分支策略
| 策略 |
分支模型 |
适合 |
| Trunk-Based |
main + 短命 feature 分支 + Feature Flags |
✅ SaaS 首选——持续部署,快速迭代 |
| GitHub Flow |
main + feature 分支 + PR |
✅ 小团队——简单清晰 |
| Git Flow |
main + develop + feature + release + hotfix |
⚠️ 有版本发布需求的产品——过于复杂 |
💡 SaaS 推荐 Trunk-Based Development:所有人在 main 上开发(通过短命分支 + PR),用 Feature Flags 控制功能上线。好处:减少合并冲突、持续部署、快速回滚。
Git 配置最佳实践
# .gitconfig — 基础配置
[user]
name = Your Name
email = you@yourapp.com
[init]
defaultBranch = main
[core]
editor = code --wait # 或 vim/nano
autocrlf = input # Linux/Mac
# 有用的别名
[alias]
st = status -sb
co = checkout
br = branch
ci = commit
lg = log --oneline --graph --decorate -20
unstage = reset HEAD --
amend = commit --amend --no-edit
wip = !git add -A && git commit -m 'WIP'
undo = !git reset --soft HEAD~1
# .gitignore — SaaS 项目模板
node_modules/
.next/
.env*.local
*.log
dist/
coverage/
.DS_Store
*.swp
Conventional Commits
# 提交消息格式
# <type>(<scope>): <subject>
feat(auth): add OAuth2 Google sign-in
fix(api): handle null user in billing endpoint
docs(readme): update installation instructions
style(ui): fix button alignment on mobile
refactor(db): extract connection pooling logic
test(api): add integration tests for webhook
chore(deps): upgrade Next.js to 15.2
# 自动生成 CHANGELOG
# 使用: commitizen + cz-conventional-changelog
npm install -D commitizen cz-conventional-changelog
# package.json: "config.commitizen.path": "cz-conventional-changelog"
# 使用 git cz 代替 git commit
IDE 与编辑器
编辑器对比
| 编辑器 |
语言支持 |
扩展生态 |
性能 |
AI 集成 |
适合 |
| VS Code |
全语言 |
⭐⭐⭐⭐⭐ |
⭐⭐⭐ |
Copilot/Continue/Cline |
通用首选 |
| Cursor |
全语言 |
⭐⭐⭐⭐⭐ |
⭐⭐⭐ |
✅ 原生 AI-First |
AI 驱动开发 |
| WebStorm |
JS/TS 专精 |
⭐⭐⭐⭐ |
⭐⭐⭐⭐ |
Copilot |
重型 JS 项目 |
| Neovim |
全语言 |
⭐⭐⭐ |
⭐⭐⭐⭐⭐ |
copilot.vim |
Vim 党 |
| Zed |
全语言 |
⭐⭐ |
⭐⭐⭐⭐⭐ |
有限 |
极简极速 |
💡 2026 推荐:Cursor 是当前最高效的选择——VS Code 生态 + 原生 AI 编程体验。如果你还没试过,强烈建议。免费额度足够日常使用。
VS Code / Cursor 必装扩展
🌐 前端开发
- Tailwind CSS IntelliSense — 类名自动补全
- ES7+ React Snippets — React 代码片段
- Prettier — 代码格式化
- ESLint — 代码检查
- Auto Rename Tag — 标签重命名联动
- Color Highlight — 颜色值高亮
⚙️ 后端开发
- Prisma — Prisma Schema 支持
- Thunder Client — 轻量 API 测试
- DotENV — .env 语法高亮
- Docker — Docker 管理和调试
- GitLens — Git 历史行级追溯
- Error Lens — 行内错误高亮
🤖 AI 编程
- GitHub Copilot — AI 代码补全
- Continue — 开源 AI 编程助手
- Cline — AI Agent 自主编程
- Codeium — 免费 AI 补全替代
🔧 通用效率
- GitLens — Git 增强
- Project Manager — 项目快速切换
- Todo Tree — TODO/FIXME 高亮
- Multi Cursor Case — 多光标大小写
终端工具
现代终端工具链
| 类别 |
传统工具 |
现代替代 |
优势 |
| 终端模拟器 |
Terminal.app / xterm |
Kitty / Alacritty / Warp |
GPU 渲染、快、分屏 |
| Shell |
bash |
zsh + oh-my-zsh / fish |
自动补全、插件生态 |
| Prompt |
PS1 |
Starship |
跨 Shell、快、信息丰富 |
| ls |
ls -la |
eza (exa) |
颜色、Git 状态、树形 |
| cat |
cat |
bat |
语法高亮、Git 集成 |
| find |
find / grep |
fd + ripgrep (rg) |
快 10-100 倍 |
| top |
top / htop |
btm (bottom) |
跨平台、更好看 |
| jq |
grep + sed |
jq / jiq |
JSON 处理必备 |
# 必装 CLI 工具
# 包管理
brew install eza bat fd ripgrep fzf jq tmux
# zsh 插件(oh-my-zsh)
# ~/.zshrc plugins=(
# git z sudo zsh-autosuggestions zsh-syntax-highlighting
# fzf eza copypath copydir dirhistory
# )
# fzf — 模糊搜索(改变你的终端体验)
# Ctrl+T: 搜索文件
# Ctrl+R: 搜索历史
# Alt+C: 跳转目录
# 常用别名
alias ll='eza -la --git --icons'
alias cat='bat --paging=never'
alias find='fd'
alias grep='rg'
alias gs='git st'
alias gl='git lg'
| 工具 |
类型 |
特点 |
定价 |
| Bruno |
API 客户端 |
开源、Git 友好(文件存储)、离线 |
免费 |
| Thunder Client |
VS Code 扩展 |
轻量、不离开编辑器 |
免费 |
| Postman |
API 平台 |
功能全、协作强、但臃肿 |
免费 / $14/月 |
| Insomnia |
API 客户端 |
GraphQL 支持好、轻量 |
免费 / $5/月 |
| Hoppscotch |
Web API 客户端 |
开源、浏览器直接用 |
免费 |
💡 推荐:Bruno 或 Thunder Client。Bruno 把 API 集合存为文件,可以 Git 管理——团队协作和版本追踪比 Postman 的云同步好得多。Thunder Client 则适合"不想切换窗口"的场景。
调试工具
前端调试
🌐 Chrome DevTools
- Elements — DOM 检查、CSS 实时修改
- Console — 日志、表达式求值
- Sources — 断点调试、代码步进
- Network — 请求瀑布流、响应检查
- Performance — 帧率、渲染、CPU 分析
- Application — Storage、Service Worker
⚛️ React 调试
- React DevTools — 组件树、Props/State 检查
- Why Did You Render — 不必要的重渲染检测
- React Scan — 自动检测渲染性能问题
- TanStack DevTools — Query 状态调试
- Redux DevTools — 状态变更时间旅行
后端调试
# Node.js 调试
# 1. VS Code 内置调试器
# launch.json:
{
"version": "0.2.0",
"configurations": [{
"type": "node",
"request": "launch",
"name": "Debug API",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev"],
"console": "integratedTerminal"
}]
}
# 2. Node.js Inspector
node --inspect-brk your-script.js
# 打开 chrome://inspect → 点击 "inspect"
# 3. 条件断点(在 DevTools 或 VS Code 中)
// 右键断点 → "Edit Breakpoint" → 输入条件
// 例: userId === 'abc123'
# 4. 远程调试(生产环境慎用!)
node --inspect=0.0.0.0:9229 your-script.js
# 只在安全网络中使用!
性能分析
前端性能
📊 Core Web Vitals 优化
| 指标 |
含义 |
目标 |
优化方法 |
| LCP |
最大内容绘制 |
<2.5s |
图片优化、CDN、SSR/SSG、预加载关键资源 |
| INP |
交互到下一次绘制 |
<200ms |
减少主线程阻塞、Web Worker、debounce |
| CLS |
累积布局偏移 |
<0.1 |
图片/广告预留空间、字体优化、避免动态注入 |
// 性能测量代码
import { onLCP, onINP, onCLS } from 'web-vitals'
onLCP(metric => {
analytics.track({ name: 'web_vital_lcp', value: metric.value })
})
onINP(metric => {
analytics.track({ name: 'web_vital_inp', value: metric.value })
})
onCLS(metric => {
analytics.track({ name: 'web_vital_cls', value: metric.value })
})
// Next.js 内置性能分析
// next.config.js
module.exports = {
experimental: {
webVitalsAttribution: ['CLS', 'LCP', 'INP'],
},
}
后端性能分析
// Node.js 性能分析
// 1. CPU Profile
node --prof your-app.js
node --prof-process isolate-0x*.log > profile.txt
// 2. Clinic.js — 可视化性能分析
npm install -g clinic
clinic doctor -- node your-app.js
clinic flame -- node your-app.js
clinic bubbleprof -- node your-app.js
// 3. 数据库查询分析
// Prisma: 开启查询日志
const prisma = new PrismaClient({
log: [
{ level: 'query', emit: 'event' }
]
})
prisma.$on('query', (e) => {
if (e.duration > 100) { // 超过 100ms 的慢查询
console.warn('Slow query:', e.query, e.duration + 'ms')
}
})
// PostgreSQL: pg_stat_statements
// 共享库加载 pg_stat_statements
// SELECT query, calls, total_time, mean_time
// FROM pg_stat_statements ORDER BY total_time DESC LIMIT 20;
| 工具 |
类型 |
特点 |
| Drizzle Studio |
DB GUI |
轻量、与 Drizzle ORM 集成、本地运行 |
| pgAdmin |
PostgreSQL GUI |
官方工具、功能全、但界面旧 |
| DBeaver |
通用 DB GUI |
支持几乎所有数据库、功能最全 |
| TablePlus |
DB GUI |
Mac 原生、快、好看 |
| Prisma Studio |
DB GUI |
与 Prisma ORM 集成、直观 |
| Supabase Dashboard |
DB GUI + 后台 |
数据库管理 + Auth + Storage 一体 |
开发环境
Dev Container / Devbox
// .devcontainer/devcontainer.json — VS Code Dev Container
{
"name": "YourApp Dev",
"image": "mcr.microsoft.com/devcontainers/typescript-node:20",
"features": {
"ghcr.io/devcontainers/features/postgresql:1": {}
},
"forwardPorts": [3000, 5432],
"postCreateCommand": "npm install",
"customizations": {
"vscode": {
"extensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"prisma.prisma"
]
}
}
}
// 开发环境一键启动
// docker-compose.dev.yml
version: '3.8'
services:
app:
build: .
ports: ['3000:3000']
environment:
DATABASE_URL: postgresql://dev:dev@db:5432/yourapp_dev
depends_on: [db, redis]
db:
image: postgres:16
environment:
POSTGRES_USER: dev
POSTGRES_PASSWORD: dev
POSTGRES_DB: yourapp_dev
ports: ['5432:5432']
volumes: ['pgdata:/var/lib/postgresql/data']
redis:
image: redis:7-alpine
ports: ['6379:6379']
volumes:
pgdata:
2026 年,AI 编程助手已经不是"可选项",而是开发工具链的标准配置。
| 工具 |
类型 |
特点 |
定价 |
| Cursor |
AI IDE |
VS Code 分支、原生 AI、Tab 补全、Chat、Agent |
免费 / $20/月 |
| GitHub Copilot |
AI 补全 |
行级补全、Chat、VS Code/JetBrains 均支持 |
$10/月 |
| Cline |
AI Agent |
自主读写文件、执行命令、浏览器测试 |
按 API 用量 |
| Continue |
AI 助手 |
开源、支持多种 LLM、可自托管 |
免费(自带 API Key) |
| Claude Code |
CLI Agent |
终端内 AI 编程、理解整个代码库 |
按 API 用量 |
| v0 |
UI 生成 |
描述生成 React 组件、适合原型 |
免费额度 / $20/月 |
💡 AI 编程最佳实践:
- 补全:让 AI 写样板代码(CRUD、表单、测试),你专注业务逻辑
- Chat:用来理解代码、探索 API、学习新技术——比搜索文档快
- Agent:让 AI 执行完整任务(重构、添加功能),但一定要 Review
- 注意:AI 生成的代码要理解后再用——不理解就不提交
🔗 相关章节