转载

设计复杂系统架构

作为程序设计人员,我们都想做复杂的事,不想做简单容易的事,喜欢挑战复杂事情、复杂系统架构来体现能力,但是在现实中这可能给项目实现带来灾难。

设计复杂系统架构

要想设计实现大的复杂系统,需要团队技术水平比较高,包含团队对于大型复杂系统设计能力,团队对于大型项目编码实现,团队协作开发能力都有着极高的要求。

项目设计需要根据需求对于项目进行合理设计,需要比较全面对于特定技术领域有深入掌握,通过对于需求、领域知识掌握,设计合理技术方案,形成相应文档。

编码要抽象出合理类,合理的类能够更清晰后续对于项目维护,易于维护理解升级,切记避免复杂抽象,过于复杂抽象对于后续维护人员是极其不友好的。例如采用面向对象技术抽象出来系统,尽量避免过多层次抽象,过多层次会导致后续人员维护是崩溃的,会花费大量时间来梳理清晰,而且抽象可能后续根本就用不起来。一定要避免过度抽象。

数据结构需要简洁清晰,包含必要注释,方便后续对于数据结构理解。合理数据结构,能够帮助对于整个系统架构流程理解,能够有助于维护升级,尽量避免过多层次嵌套数据结构,过多嵌套对于理解是比较难的。

复杂项目还包含非常多沟通,因为各个系统或者各个模块有着很多的互相调用,需要设计容易理解接口协议来实现模块直接交互。这是一般后端交互方式,在当前微服务流行场景下,还是模块交互还比较简单的。还有比较复杂交互情况,比如当下比较流行的推荐系统,涉及沟通协作流程就比较复杂,因为涉及大数据、后台服务、算法模型三种类型之间比较多的交互,由于交互内容涉及三个领域,导致复杂度比以前有了很大提升,要提升效率就需要将三者设计很好的交互协议,高内聚低耦合,尽量将流程固化下来,来减少问题。

大型项目还需要有严格测试流程,没有严格测试,会导致整个系统质量没有保证。大型系统稳定性、正确性是比较难的,经常会遇到一种情况就是系统有个问题,非常难于定位,因为涉及多个系统,需要一个一个系统定位才能定位问题,导致人非常的崩溃。相信设计过多个复杂系统,并且经常进行bug定位同学感触会很深。

大型网站架构方面,《大型网站技术架构 核心原理与案例分析》这本比较基础适合有后端开发经验,但没有互联网开发经验同学学习;《亿级流量网站架构核心技术》、《从零开始学架构》这两本适合有一定互联网开发经验,并对系统架构设计有一定追求同学,这两本书能打开眼界提升设计系统能力,是大型网站架构设计进阶方面不可多得好书。

原文  https://mp.weixin.qq.com/s/9JMaY23L6pqnwI_qfrL-ng
正文到此结束
Loading...