模块化架构

一、模块化是什么

模块化的思想不是我们创造的,而是各行各业的趋势。造一辆汽车,它的发动机、轮子、电池组等都是标准化模块化的;又比如原来造一幢房子是钢筋水泥土,现在是通过预制件。带来的好处是又快又好又省。

模块化架构

二、开发领域模块化

基于传统的开发方式,软件工程到一定的规模以后,系统变的越来越复杂,很多一定规模的公司,中台系统也非常庞大复杂,按传统的开发方式,来一个需求,编码开发,一段时间之后系统变的越来越臃肿。

模块化架构

这是一张印度的电线杆,比较形象的来形容软件工程到一定程度后系统变的越来越复杂了,很多大公司也有类似的系统。

模块化架构

传统的软件工程方式,随着需求和时间会变得越来越臃肿,而采用模块化方式,我们尽可能思考如何复用,很多实现可以用流程图代替大量编码,并且沉淀更多的能力组件,组件越来越多,反而以后开发起来越来越快。

模块化架构

对于一块业务而言,业务需求提高一倍,传统模式因为系统复杂了,需要倍数级增加开发人员,如从10人增加到25人,目前程序员成本极高,而用海牛架构后可以大幅减少人员规模。

三、为什么用海牛模块化架构

公司自研一套有效的模块化成本极高

交流了一些大公司CTO,其中有一家公司在我们交流之前,组建了架构师团队,花了6个月时间开发了一套模块化解决方案,但是效果不好就废弃了;另外一家投入了5、6百万成本,也没有搞出来;还有几家搞出来了,效果也不明显。海牛模块化是资深架构师设计的,不需要花6个时间开发,直接可实战使用,最重要的是可行性,已经有多个项目落地,可行性比较高。对于很多公司来说,不用投入不确定的研发,站在海牛模块化的肩膀上构筑自己的模块化方案。

我们的专业性

我在8年前在阿里开始实践模块化,阿里的会员平台是基于模块化落地的,支撑了很多核心业务的会员解决方案,出来之后把基于阿里会员模块化,重新打造,更标准化体系化落地,又有很多项目落地,这些年一直在打磨模块化架构,目前几个大公司开始使用,我们是模块化架构最专业的,海牛模块化是模块化开发的最佳实践。

通过不断的思考和实践模块化,我们体系化来设计模块化(可以参考第四部分,4个层面的思考);我们像艺术品一样打磨每个组件,从组件的抽象力度和范围,到组件的每个文案交互,到用流程图来组合组件,力求顺应程序员所思所想,就是这样来呈现的,简单又自然。

解决痛点问题

1)大量重复开发,释放大量的工作量 ,同样的人创造数倍的价值

如文件导出导出批量处理方案、大屏展示方案等,原来需要1天-3天工作量,后续开发只要半个小时之内。

目前研发从业人员成本非常高。

2)解决复杂系统问题,让系统更好维护,更好扩展。

灵活应对人员变动,原来需要长长交接文档,系统中有什么坑,成本比较高去维护别人的代码,现在文档自动生成,流程图及是文档,只要权限更改就完成了。

每次开发越多,潜在的bug也越多,但反复使用模块和组件,已经反复使用了几十遍上百遍,产出的稳定性较高,而且复杂系统变的简单,提高了系统稳定性,更好地服务目标客户。

3)通过模块化解决异构系统问题

很多saas方案有很多定制化场景,原来可以saas化部署,现在需要部署多套,需要更多的人来维护,成本高。

异构部分可以用流程图代替,真正实现定制化场景的saas化,一套系统解决不同客户问题。

四、如何践行海牛模块化

海牛工作台开发工具只是模块化的一小部分,更核心的是整个海牛模块化架构和思想。

和传统开发方式对比:

模块化架构

对于资深的开发者本身就会把一些通用功能抽象为方法类;对于海牛模块化我们抽象的是开发的本质(取数据、数据处理、数据展示或者落库)

如上图所示,海牛模块化和传统开发方式相比,往下多思考了几个层面。

第一层 抽象的范围

传统开发方式主要抽象的能力,如传统组件能复用10种场景;

海牛模块抽象的要求更高,而且不仅仅抽象功能还抽象业务,海牛组件能复用20种场景。

第二层 组件可视化配置

海牛组件可以通过可视化表单进行配置,组件的表达能力进一步增强,能复用50种场景。

第三层 模块化三个层次(组件、模块、模板),从简单到复杂,又可以从复杂到简单

就行模块化方式造的房子,通过基础的预制件可以搭建出各种各样的房子,而且可以更灵活的扩展和更改。

多个组件可以组成模块,多个模块还可以组成模块,多个模块接口可以组成模板(如用户模板,包括登录、注册、管理等),进一步复用,这时海牛组件能复用100种场景。

道生一、一生二、二生三、三生万物,虽然后面万物个不同,也很复杂,但都是从最简单标准的元素开始,在模块化中就是标准的组件,通过标准的组件可以组合成各种复杂的系统。

第四层 分布式服务标准化

当我们面向整个公司分布式服务体系来看。

传统模式下,如电商中台有很多系统,不同的团队负责不同的系统,内部很多微服务接口,而且服务形式也有很多,在模块化架构的中台下,系统变成了一个通用系统,运行不同的流程图数据。

并且服务也标准化了,把服务抽象为服务调用和服务提供,通过组件来调用服务,(除了调用标准接口,历史的各种接口也可以通过通用组件调用)用流程图来实现标准统一的服务,这样整个分布式中台复杂度大幅降低。

模块化架构

模块化是体系化的,从很小的组件开始,到整个公司模块化分布式中台架构,都是通过一个简单的标准化的组件开始,通过分形,能表达复杂系统和整个公司分布式体系,但本质是很简单的组件。

海牛工作台设计了一整套机制,先让程序员用起来,用的过程中,自然而然开始抽象和思考,慢慢引导程序员去设计开发一套让自己很舒服的优雅的系统,通过不断地使用和项目模块化落地,自然而言让程序员具备了模块化架构的思维。

对于模块化开发人员来说,对自己产出的东西是有一定要求的,设计出一套优雅的架构,我们尽可能发挥我们抽象能力,经过一段时间模块化反复训练后,当有需求和项目时,脑子里就有流程图了,就知道怎么更好的实现,就像打太极,很多招式方法,都在我们脑子里,打出来游刃有余,一切是那么自然。

两个案例践行模块化案例

1)第一次真正迈入模块化

某应届测试同学第一次真正的用海牛平台开发的一个项目实战体会。

2)模块化熟悉之后融会贯通

对海牛平台比较熟悉的同学,用半天时间实现了一个原本需要3天的需求,

更重要的是沉淀了一套解决方案,后面再开发类似需求时只要半个小时。

这两个实战的例子更接近我想表达的从传统开发方式到模块化开发方式,不仅仅是上面的案例,之前我带的开发人员,也同样具备了以上的能力,模块化流程图需要训练程序员的抽象能力,经过反复训练之后,流程图和传统代码方式相比更接近程序员的思维方式,实现前面说的遇到一个需求,自然而然脑子里就有流程图了,经过反复训练,能设计出让我们自己很舒服的架构和方案,后期扩展也是很顺滑的。

五、海牛模块化部分案例

模块化架构

美港股金融量化APP,提供财报、量化分析和投资组合计算,非常复杂的金融场景,完全用模块化落地。

采用海牛模块化1.0版本(模块配置化版本),1个开发当3个人来使用。

模块化架构

类似于产业园区的贝壳,用海牛模块化2.0版本,15天后端全部开放完成。

模块化架构

寺庙saas,采用海牛云3.0版本(可视化开发)1天架构设计,2天开发完成。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91611 人正在系统学习中

来源:程序猿子曰

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月23日
下一篇 2021年11月23日

相关推荐