复杂项目如何去拆分?

代码的横向分层,维度是根据复杂度来的,可保证代码便于开发和维护
1、因为强类型的原因,把变动大的分到数据库来解决,这是一种后端分离。
2、因为发布难的原因,所以用稳定的引擎来解决问题,然后用数据库配置的方法来解决变动问题。
3、因为复杂sql容易出错的原因,把复杂的sql独立存到数据库,方便后期调试,连热启动都跳过了。
4、读代码的时候,可以从复杂度维度来快速了解项目。

代码的纵向分层,维度是根据业务来的。从业务角度保证代码的可拓展性
1、不同业务对应不同的微服务。
2、微服务之间可以连接不同的数据库,主要是读,比如负责统计的微服务具有读取其他所有微服务的权限。
3、第三方的监控需要交给定时器去扫描监控接口。

关于前后端的交互
没有其他,就是当前端拿到账号权限以后,后端足够的信任前端,可保证开发的速度。都在这里:从代码操作层面解释什么是“面相对象编程”?_众乐乐_2008的博客-CSDN博客

关于测试
1、报错最好显示在前端,便于错误定位。
2、把所有场景都考虑到,一点要做全部场景的全排列。
3、还要分别整理出测试点和测试流程,以测试点为重点,测试流程为验证测试点的辅助而存在。

最后总结:这样不管多复杂的项目,把项目根据纵横的划分,分成一块一块的“小正方形”,然后程序员只负责“填代码”就行了,写项目就显得非常简单。而且项目上线后,一旦出问题都可以非常容易的定位和修改,并且当你读代码的时候,可以根据业务需求和代码复杂度的分层去快速搞懂代码,不会像读框架源码一样不可测和难读。

你可能感兴趣的:(杂说,数据库,java)