📘 项目开发经验总结与规范建议文档

📌 文档目的

本文旨在总结过往开发中的不足,分析其成因,并给出相应的改进方向和规范建议,以提升项目架构质量、开发效率与可维护性,推动开发流程标准化与工程实践能力的提升。


❌ 不良开发实践与改进建议

⚠️ 问题 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 + 云平台管理
部署流程 明确开发 / 生产环境,文档化配置