- 业务逻辑依赖数据库
业务逻辑过于依赖数据库,这是我最早知道的软件架构方式,把所有的业务逻辑都用存储过程编写,这带来的问题有:如果哪天换了数据库,原先的逻辑就不能用了,不方便跨平台、存储过程写业务逻辑不方便阅读,也缺少一些面向对象的思维去封装、复用代码。
- 用面向对象的语言使业务逻辑解耦数据库,前端和后端不解耦
典型的就是.net的webform,虽然解耦了数据库,但前端和后端耦合在一起,带来的问题有:
前端代码充斥着很多后端代码,导致前端代码不像前端代码后端代码不像后端代码(不过也有人觉得很好,这样.net程序员就能干前端的活了,但我不认同)、前端代码要维护很多的状态导致软件运行性能降低、不能充分的使用用户端软件的性能、不方便前端和后端独立部署,也就没有了后端为了适应高并发而单独做横向扩展
- 前后端分离
带来的好处就是,前端可以使用自己独立的框架,前端比如vue,react等更加充分利用前端的性能,后端可以独立部署,适应高并发可以单独部署横向扩展
- 后端微服务化拆分
第三点虽然达到了前后端分离,但一个服务可能过于庞大,不方便日新月异的软件需求所带来的升级迭代,在软件升级开发的时候,因为所有的代码都在一个服务中,在修改原先代码的时候,对整个项目的代码影响比较大,也不方便针对某个模块需要高并发而单独做负载均衡的要求。
- 业务驱动后端服务化拆分
虽然我们在开发项目的时候,有代码层级上的拆分,比如三层架构,但这并不能解决复杂的业务所使代码越来越臃肿越来越混乱,所以就有了ddd的思想,我们不但要从代码层级上拆分,也要从业务上划分各个业务域,从而使代码变得更易读懂更易维护。
总体而言,软件架构演变在我看来是使各个层级是越来越分散,以达到一种高内聚低耦合的效果,各个层级划分越来越明确,每个层级可以对不同的场景需求而做特殊化的部署等。
posted @
2021-03-16 22:23
东东东
阅读(
83)
评论()
收藏
举报