后端分层可维护

后端规范用约定减少决策浪费:控制器只做入参和响应,业务进入 Business,数据访问进入 DAO,配置通过 config 读取。

开发哲学

  • DRY:不写重复逻辑代码。
  • 约定优于配置:优先选择框架提倡的做法,不过度配置。
  • KISS:代码简单易读,不过度设计。
  • 官方优先:优先采用官方推荐方案。

目录与分层

  • app/Http/Controllers/:控制器,应该只负责入参接收和响应包装。
  • app/Http/Business/:业务逻辑层,承接校验、事务和业务流程。
  • app/Http/Dao/:数据库操作层,一个数据表对应一个 DAO。
  • app/Model/:数据库模型,枚举值和查询作用域应尽量收敛在模型或常量中。

环境、分支与配置

  • local 对应开发环境。
  • tests 对应线上测试环境和 beta 分支。
  • production 对应线上生产环境和 master 分支。
  • 所有配置信息必须通过 config() 读取;.env 信息应先映射到 config 后再由业务代码读取。
  • 绝不在配置文件以外直接调用 env()

日常编码约束

  • 一个方法只做一件事,避免控制器承载过多业务。
  • 尽量补充必要注释,帮助他人理解和后续维护。
  • 一个请求一个方法,不要在同一方法中混合处理 GET/POST。
  • 不要直接拼接执行原生 SQL,必须使用 raw SQL 时要参数绑定。
Controller 越薄,业务系统越不容易在需求迭代中失控。

Migration 与发布

  • 数据库结构变更必须通过 Migration 管理,绝不直接在线上手工改表。
  • 新增表使用 make:migration create_xxx_table --create=xxx
  • 修改已有表使用 make:migration add_xxx_to_xxx_table --table=xxx
  • 执行指定迁移时应写完整文件名,避免误执行其他迁移。
  • 执行迁移前,先确认当前环境和分支一致。