我在编写代码之前如何组织真实项目

发布: (2026年1月15日 GMT+8 18:37)
4 min read
原文: Dev.to

Source: Dev.to

编码前的流程

大多数开发者都会过早打开 VS Code。我以前也是这样:客户说明需求后,几个小时内我就开始创建 Laravel 控制器、React 组件和数据库表。几个月后项目变得混乱,需求又变了,我才意识到真正的问题不是我的编码技巧,而是我的思考结构。

现在我遵循严格的编码前流程。在项目在脑中完成设计之前,我不写一行代码。

从功能转向问题

客户往往以功能来描述需求:

  • “我需要一个仪表盘”
  • “添加支付系统”
  • “做成和这个网站一样”

工程师必须从问题出发。我会问:

  • 谁会使用这个系统?
  • 这款软件将帮助他们做出什么决策?
  • 现在存在哪些痛点?

随后我写出一句话的声明:

这个项目帮助 [用户] 通过解决 [问题] 实现 [目标]

实体建模

在设计表或 API 之前,我像研究员一样列出实体。

示例:电商项目

  • 用户
  • 商品
  • 订单
  • 支付
  • 发货

我用自然语言描述它们之间的关系:

  • 一个 用户 可以下多个 订单
  • 一个 订单 包含多个 商品
  • 一个 支付 属于一个 订单

这就成为我的“脑中数据库”,在 MySQL 出现之前就已经形成。

接口草案

我不从 UI 开始,而是先问:

  • 前端需要哪些数据?
  • 必须实现哪些操作?
  • 哪些情况需要安全地失败?

我把接口写成合同,而不绑定具体框架:

POST /api/orders

这样可以避免“框架依赖”。

流程图

我绘制一个简易流程:

User → Frontend → API → Database → API → User

对每一步,我记录:

  • 验证
  • 认证
  • 业务规则
  • 可能的错误

这些笔记会演变成后续的中间件和服务。

非功能需求

大多数教程都会忽略,但真实项目必须考虑:

  • 性能
  • 安全
  • 可扩展性
  • 日志
  • 备份

我会写一个小章节列出目标:

  • 响应时间 ≤ 2 秒
  • 基于角色的访问控制
  • 每日数据库备份
  • API 限流

最终结构

只有在脑中的模型足够稳固后,我才会考虑代码结构:

  • 控制器
  • 服务层
  • 仓储层
  • DTO
  • 测试

无论使用 Laravel、Node 还是 Django,思考方式保持一致。

当我真正开始写代码时:

  • 接口已经确定
  • 实体清晰
  • 验证已决定
  • 安全方案已规划

编码变成了翻译,而不是困惑。

我的改变

  • 重写次数更少
  • API 更整洁
  • 估算更有信心
  • 客户更满意

我从“先开工再看”转变为“先设计再实现”。

真正的全栈开发者并不是看会多少框架,而是看能否在编码前先做好思考。

Back to Blog

相关文章

阅读更多 »

我常用的全栈/前端项目模式

我在几乎每个项目中都会使用的模式——在完成了相当多的前端和全栈项目(主要是 React + TypeScript 加上一些服务器/后端技术)之后。