架构笔记 | 从业务架构设计到系统组件化落地
△ 是新朋友吗?记得先点“球迷Long笔记”关注我哦~
导读
架构的一基本趋势是,整体结构的强壮性与简洁性越来越高,而单元的小颗粒度、标准化、精细化也同时在另外一个维度上发生。组件化开发的优势已然渐渐凸显。
所谓“组件化”就是把企业的产品、销售、采购、生产、财务等业务功能转变为一群一群的业务模块,即业务组件,以利于对企业的价值链进行持续解构和重塑。
构建组件化企业有助于推动企业商业模式的创新。当企业面临产品服务变革、运营流程变革和商业模式变革时,构建组件化企业可以使企业的创新和变革摆脱原有的“封闭”状态,使企业能够从整体价值链的高度分析企业内部情况,寻找与伙伴之间协同增长的可能。
琢磨架构是必须的前瞻性思考,同时也要能让技术落地。
只有美的交流,才能使社会团结,因为它关系到一切人都共同拥有的东西。
1
组件化研发特征
组件化软件工程有三个特点,高内聚、低耦合、无重用。而第一点组件化开发主要是解决了重用问题,提升了部分内聚。组件,最初的目的是代码重用,功能相对单一或者独立。在整个系统的代码层次上位于最底层,被其他代码所依赖,所以说组件化是在横向资源重用的基础上向纵向继续对应上层的归并。
每个组件都自己独立的版本,组件可以独立编译、独立打包和部署;
产品组件化后可以真正实现完整意义上的按组件进行产品配置和销售,用户可以选择哪些组件,组件之间可以灵活的进行组装形成新的服务。
将配置管理、开发、测试、打包、发布完全控制到组件内部,若A组件进行小版本升级,提供给外部的接口没有任何变动,则相关的B组件不必做任何测试,这就大大降低了关联测试工作量。
所以说白了,所谓组件就是一代码包、独立生存、自生自灭...
我们把组件拆开看
实现各自独立、互相调用、结构化组装。
*App壳 : 主要负责页面切换
*home:业务模块
*shop : 业务模块
*user : 业务模块
*baselibray: 基础组件的依懒
当团队搭建完成组件化之后,接下来就是成员间的使用,这一过程由业务需求产生组件模板、组件模版形成页面、页面形成页面流程和页面流程形成用户体验。
*业务需求产生组件模板:基于业务需求,产生符合业务属性的组件,当有新需求时,根据业务场景选择合适的组件组合成对应的模板。
*组件模版形成页面:组件模板根据实际产品需求,形成对应的产品页面。
*页面形成页面流程:设计师根据组件模板所搭建的页面,形成一个个页面操作流程。
*页面流程形成用户体验:根据最终完成的页面流程,则形成最终的用户体验。
2
业务建模和业务组件阶段
Brooks 大师说,三十多年来各式各样的应用系统(Application Programs AP)历经多次的修修改改,已经变得面目全非,如同一群的怪兽,难以驯服。
我们要从业务建模入手,而不是从较低层次(部门级或以下)入手。通过用例分析技术,建立企业的业务模型,进行适当的切割,选取稳定的软件架构,分析出企业的业务实体(Business Entity企业中微小不可分的事物,抽象或具体的,如帐户,契约等,又被称为Business Object),以此为基础,组装出组件(Component),落实到相应的结构中去,形成针对特定功能区域的应用服务。
接下来,我们尝试推演从业务到组件化的拆解步骤,一杯咖啡,聊一聊。