📘 项目开发经验总结与规范建议文档
📌 文档目的
本文旨在总结过往开发中的不足,分析其成因,并给出相应的改进方向和规范建议,以提升项目架构质量、开发效率与可维护性,推动开发流程标准化与工程实践能力的提升。
❌ 不良开发实践与改进建议
⚠️ 问题 1:接口设计不统一、缺乏前端视角
现象:API 接口风格混乱,返回结构缺乏统一规范,前端使用体验不佳。
原因:
- 缺乏完整的前后端协作经验;
- 不了解前端的数据使用模式及接口调用习惯;
改进建议:
接口设计前与前端沟通清楚所需字段和格式;
统一接口返回结构,参考 RESTful 或 JSON:API;
建立
BaseResponse
格式,例如:1
2
3
4
5{
"code": 0,
"message": "success",
"data": {...}
}
⚠️ 问题 2:接口开发散乱,均为单一函数视图
- 现象:项目中接口以函数为单位随意定义,结构松散、难以维护。
- 原因:
- 不熟悉 Flask 的类视图;
- 缺乏 RESTful 架构意识;
- 改进建议:
- 按资源组织接口:一个资源对应一个类视图;
- 使用 Flask-RESTful 或 Flask-Smorest 等 REST 框架;
- 每个数据表映射一个 ORM 类,并绑定一个 Resource 类处理 CRUD。
⚠️ 问题 3:数据库缺乏版本管理
- 现象:数据库结构变动无法追踪,项目协作时出错频繁。
- 原因:
- 对数据库迁移的概念和工具不熟悉;
- 改进建议:
- 使用
Flask-Migrate
(基于 Alembic)进行版本管理; - 所有结构变更必须通过迁移脚本提交;
- 建议项目约定:禁止手动修改数据库结构。
- 使用
⚠️ 问题 4:项目配置混乱,无环境区分
- 现象:配置硬编码在代码中,开发与部署环境易混乱。
- 原因:
- 缺乏配置隔离经验;
- 改进建议:
- 使用
.env
文件保存敏感配置; - 使用 Flask
Config
类区分 dev、prod、test 环境; - 配合
python-dotenv
或类似工具自动加载。
- 使用
⚠️ 问题 5:数据库会话与连接管理混乱
- 现象:原生 SQLAlchemy 使用不当,Session 管理混乱,易引发连接泄漏等问题。
- 原因:
- 缺乏对 ORM 生命周期的理解;
- 改进建议:
- 使用
Flask-SQLAlchemy
封装和管理数据库; - 采用 三层架构(模型层、服务层、接口层):
- 模型层封装 ORM;
- 服务层处理业务逻辑;
- 接口层控制入口;
- 如需原生 SQL,可封装在服务层。
- 使用
⚠️ 问题 6:文档管理混乱,无版本控制
- 现象:大量临时文档(one-off)散落在本地,内容不一致、无更新机制。
- 原因:
- 缺乏文档管理工具和意识;
- 改进建议:
- 统一文档平台(如 Notion、Confluence、语雀);
- 所有文档存放在云端,并同步至 Git 仓库进行版本管理;
- 关键文档(接口、架构、设计)应规范存档,按版本迭代。
⚠️ 问题 7:代码层级混乱,职责不清
- 现象:部分接口函数既包含控制逻辑,又直接操作数据库,违反单一职责原则。
- 原因:
- 对多层架构理解不足;
- 改进建议:
- 遵循清晰分层架构(例如 MVC、MVVM 或前后端分离);
- 明确各层职责:
- Controller / View(接口层):负责接收请求、返回响应;
- Service(业务逻辑层):封装业务判断、事务处理;
- Model(数据层):与数据库交互;
- 建议项目在初期明确架构分层文档,并作为编码规范执行。
📘 后续改进建议(统一工程规范)
项目方向 | 推荐实践 |
---|---|
接口风格 | RESTful / JSON:API,统一响应结构 |
路由结构 | 资源分组,使用 Flask-RESTful 类视图 |
配置管理 | .env + Config 类多环境支持 |
数据管理 | Flask-SQLAlchemy + Flask-Migrate |
架构模式 | 三层架构,明确边界 |
文档系统 | Git + 云平台管理 |
部署流程 | 明确开发 / 生产环境,文档化配置 |