重来–会员系统
最近会员系统终于上线,后端从技术选型到逻辑实现大部分由我完成,搞完它总算可以功成身退,安心离职去往新的公司了。今天收拾东西之余盘点一下。
会员系统做了很久,从设计到通用组件开发再到具体业务实现,前后大概花了4个月,首次使用lumen,以及相应一系列工具链,前面推进速度相对缓慢,后面填业务逻辑就效率很高了。
做的好的地方
- 因为读过laravel核心代码所以上手lumen很快而且一点不慌
- 为公司实现了rest标准,后续演化应该会很方便
- swagger实现api doc对测试友好
- controller和model中间新增了repository,解耦逻辑和错误码
- 基于symphony/console开发了一系列命令显著提升了开发效率
- 用户校验方案设计的还可以
- 表设计考虑到了后续的扩展性
不好的地方
- controller里面定义的错误码不能完全体现repository里面的逻辑,只能报一类错误,除非把controller里面功能拆分的非常细,但这会导致新的问题
- repository的逻辑层级不够合理,有些应该实例化repository并注入具体model,事实上基本都使用了静态类的静态方法
解决方案
关于第一点,repository中抛出异常也许是个解决方案.
关于第二点,其实是个比较大的失误,特别是看了《重构-改善既有设计》这本书之后,有机会展开讲.