企业级开发入门:大厂的代码是怎么组织和管理的
为什么需要了解企业级开发
你可能不打算进大厂,但了解企业级的做法有几个好处:
- 做自己的项目时,借鉴成熟的工程实践
- 和团队协作时,理解对方在说什么
- 面试时,展现你对工程化的理解
一、代码管理:不只是 Git
Git Flow 分支策略
main ────●────────●────────●────── (线上代码)
\ / /
develop ───●────●────────●─────── (开发主线)
\ /
feature/xxx ──● (功能分支)
流程:
- 从
develop拉出feature/xxx分支 - 在
feature/xxx上开发 - 提交 Pull Request(PR)
- 同事 Code Review
- 合并到
develop - 测试通过后合并到
main→ 自动部署
提交规范(Conventional Commits)
feat: 添加文章搜索功能
fix: 修复登录页面密码框闪烁问题
docs: 更新 API 文档
style: 调整按钮圆角大小
refactor: 重构用户认证模块
test: 添加文章列表的单元测试
好的提交信息 = 半年后你自己还能看懂这次改了什么。
二、工程化基础设施
Monorepo(单仓库多项目)
一个 Git 仓库管理多个相关项目:
my-company/
├── apps/
│ ├── web/ # 主站
│ ├── admin/ # 管理后台
│ └── mobile/ # 移动端
├── packages/
│ ├── ui/ # 共享组件库
│ ├── utils/ # 共享工具函数
│ └── config/ # 共享配置
└── package.json
工具:Turborepo、Nx、pnpm workspace
CI/CD(持续集成/持续部署)
代码提交 → 自动运行测试 → 自动构建 → 自动部署
你不需要手动部署! 推代码到 GitHub,GitHub Actions 自动完成一切。
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm test # 自动测试
- run: npm run build # 自动构建
# 自动部署到 Vercel...
代码质量工具
| 工具 | 作用 |
|---|---|
| ESLint | 检查代码规范 |
| Prettier | 自动格式化 |
| TypeScript | 类型检查 |
| Husky | Git 提交前自动检查 |
| lint-staged | 只检查改动的文件 |
这些工具确保每个开发者写的代码风格统一、类型安全。
三、协作流程
Pull Request 工作流
1. 开发者 A:创建 feature/xxx 分支,写代码
2. 开发者 A:推送分支 → 创建 PR
3. 开发者 B:Review 代码,提修改意见
4. 开发者 A:修改 → 重新请求 Review
5. 开发者 B:Approved(批准)
6. 自动化检查通过 → 合并 → 部署
Code Review 关注什么
- 逻辑是否正确
- 有没有安全隐患
- 代码是否容易理解和维护
- 命名是否清晰
- 有没有重复代码
Issue 和项目管理
产品经理提 Issue → 开发评估工作量 → 排入 Sprint →
开发认领 → 写代码 → 提 PR → Review → 合并 → 关闭 Issue
常用工具:GitHub Issues、Jira、Linear、Notion
四、质量保障
测试金字塔
/\
/E2E\ ← 端到端测试(用户视角,少数关键流程)
/------\
/ 集成测试\ ← 模块间协作测试
/----------\
/ 单元测试 \ ← 函数级测试(最多,覆盖面广)
/--------------\
测试示例
// 单元测试:测试一个函数
test('add(1, 2) 应该返回 3', () => {
expect(add(1, 2)).toBe(3);
});
// 集成测试:测试登录流程
test('正确的用户名密码应该登录成功', async () => {
const result = await login('user', 'password123');
expect(result.token).toBeDefined();
});
// E2E 测试:模拟用户操作
test('用户可以发布文章', async () => {
await page.goto('/login');
await page.fill('#username', 'test');
await page.click('#submit');
await expect(page.locator('.success')).toBeVisible();
});
错误监控
上线后的”哨兵”:
| 工具 | 作用 |
|---|---|
| Sentry | 报错自动收集 + 通知 |
| Datadog | 全栈监控 |
| Google Analytics | 用户行为分析 |
| LogRocket | 录屏回放(看用户怎么操作的) |
五、性能与安全
性能优化清单
- 图片压缩 + WebP 格式
- 代码分割(按需加载)
- CDN 加速
- 接口缓存
- 数据库索引
- 懒加载
安全基础
| 安全问题 | 防护措施 |
|---|---|
| SQL 注入 | 用 ORM / 参数化查询 |
| XSS(跨站脚本) | 输入过滤、输出转义 |
| CSRF | CSRF Token |
| 密码泄露 | 哈希加盐存储(bcrypt) |
| API Key 泄露 | 放在环境变量,不提交 Git |
注意:涉及这些安全问题时,一定要让 AI 给你解释清楚它的做法,并自己搜索验证。
六、对 AI 编程的启示
企业级开发的这些实践,你可以逐步引入到自己的项目中:
阶段 1(个人项目):Git + 环境变量 + 简单测试
阶段 2(小团队):PR Review + ESLint + CI/CD
阶段 3(产品级):完整测试 + 监控 + 性能优化
不需要一开始就全上。根据项目规模逐步引入。
小结
企业级开发的核心不是”高级技术”,而是流程和规范:
- 代码管理:Git Flow + Conventional Commits + PR Review
- 工程质量:测试 + Lint + 类型检查 + CI/CD
- 运维保障:监控 + 日志 + 备份
掌握这些概念后,你不仅能自己做项目,也知道怎么融入一个专业团队。
入门认知 10 篇文章到此结束。 下一篇开始进入工具实操,手把手带你搭建 AI 编程的完整开发环境。