组件的本质是一件产品,独立性很强;组件的核心是复用,与其它功能又有强依赖关系;在非中台产品中,模块与模块间是强耦合关系,模块不可以独立运行;插件化是一种遵循一定规范的应用程序接口编写出来的程序。
一、模块化、组件化、插件化的区别
组件化
组件的本质是一件产品,独立性很强;组件的核心是复用,与其它功能又有强依赖关系。组件是独立工具,强调跨项目可用,模块强调设计某个项目里的功能区域,二者没有上下级包含关系,模块可以由多个组件构成,组件也通常由多个模块实现。但是,组件是独立产品而模块不是。
如:插件,控件(按钮,列表框,对话栏)
模块化
在非中台产品中,模块与模块间是强耦合关系,模块不可以独立运行;在中台产品中,模块可以独立运行。
如:spring boot 里的spring boot模块(提供启动spring应用的主类,创建和刷新spring容器的上下文,内嵌tomcat等web应用容器),spring boot autoconfigure模块(自动注解),spring boot starter模块(启动器,一站打包相关spring技术应用不需要你到处找依赖。如:新建spring boot starter web模块,就会自动配置web应用 ),spring boot cli模块(命令行工具),spring boot actuator模块(执行端点),spring boot test模块(应用测试),spring boot actuator autoconfigure模块(为应用测试提供自动配置),spring boot loader模块,spring boot devtools模块(开发者工具模块,一般被禁用)。
插件化
是一种遵循一定规范的应用程序接口编写出来的程序,基于特定平台才可使用。插件的数量非常多。
延伸阅读:
二、中间件
是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。它位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件。这样相连接的系统,即使具有不同的接口,但通过中间件相互之间仍能交换信息;典型的云化中间件包括分布式消息队列、分布式缓存、分布式锁、分布式ID等。中间件与操作系统、数据库管理系统并称基础软件的“三驾马车”;与组件、模块、套件和插件相比,其复用性的约束更多的体现上计算机资源管理和网络通讯上。