这是我在编写基于Django的前后端分离项目时的通用套件,这些工具致力于约束同一个项目内部的开发者开发不同接口时的行为。
这个框架使用了fastapi-like的django-ninja作为核心,补充了更偏重业务的基础功能。
- 定义好了基本的身份验证功能
- 约定了错误码的定义方式
- 约定了基于范型的接口返回结构
- 配置了pre_commit脚本,对staged文件进行格式化,包括isort和yapf,均使用默认配置
相比于DRF,这套代码在尝试解决的问题是完全不同的。DRF更像是在致力于使用声明式的逻辑编写接口。能开箱即用这种模式的场景其实颇为少见。而为了适配DRF无法轻松解决的10%的需求,可能会将节省下来的时间全部消耗掉。
这套工具更侧重于降低编码者出现错误的可能性。输入和输出由pydantic负责校验,并自动渲染成文档,提高了代码的可观测性。
对模板代码的良好封装,能够大大降低业务代码的代码量,提高代码可读性。这不仅能进一步降低编码人出问题的概率,同样能提高代码评审的效率,从多个方面提高代码质量。
- 重新组织代码
- 添加测试配套工具