排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
举报
首页
/
浅谈组件化
浅谈组件化
松华说
2020-02-19
167
我之前在做业务需求的时候,很多的个性化需求并不能快速响应,实现后有时也很难保证系统的可阅读性。不过好消息是,我今年在做京东内容领域的组件化改造和能力输出,之前的问题或许会得到根本性的解决。那么,接下来我将分享一些个人对于组件化的认知,希望能帮助到你。
一、什么是组件
组件,它是基于可复用、可插拔为目标的功能单元,同时具有清晰的职责和上下文边界。当然组件颗粒度把控也是一门学问,太大和太小都会直接影响到重用性和复杂性,所以组件一般为某个业务域下具体的、能独立提供服务的产品或者模块。
比如,我们日常使用的统一规范、代码自动生成器、分库分表组件、连接池组件、SQL拦截组件、多级缓存代理组件等等都是组件。
二、什么是组件化
1、将没有实现组件化目标的业务功能转化为符合组件化目标的功能单元的过程。
2、抽离可组件化的界面元素, 组成一个前端组件库。
3、从业务开发中抽离出纯技术的可复用技术组件的过程。
比如,内容创作基础能力提供通用服务,然后定义出一系列扩展点,包括语言包(中文、英文、泰文等)、创作页面配置(图片、富文本、话题、商品、视频等)、表单字段基本校验(字数限制、格式限制)、内容校验规则配置(黑名单、图片文本、商品好评率等)等,然后不同的垂直业务身份就可以通过实现扩展点进行编排,从而达到自助式开发的快速试错。此时,我们就可以说它具备很好的组件化能力。
显然组件化的方式更具备扩展性,更能适应各种场景和快速响应新的业务需求。
三、组件化的目的
沉淀业务资产,以面的方式协同复用,从而达到支持快速、低成本的组合式开发,快速应对业务的不稳定性、不确定性、复杂性、模糊性。
再者,从宏观角度来看,组件化改造是从"一体化组织"到"积木型组织"的变革之路。
四、组件化的步骤
组件化的步骤是,重新梳理业务、重新组织数据,明确业务边界,提取可复用的能力进行角色、场景枚举,然后进行统一接口设计,最后是通过平台让业务接入配置。这里说的统一接口不是只有一个接口,而是要保证语义一致性。
五、组件化的方法
1、基于流程引擎的实现
创建多个结点,然后将这个结点形成一条链。业务数据沿着这个链依次进行处理,只有当前结点执行成功后才能执行下一个结点,如果结点执行异常就进行重试,直到成功或者达到最大重试次数限制。
比如,京东的KitStore运维编排工具,通过将复杂的作业节点编排成任务,通过设定触发条件或者依赖,满足更为灵活的应用场景。
类似于自动化运维工具SaltStack,只不过KitStore将其可视化了,使得接入门槛更低。
以下为SaltStack的PlayBook示例,可以通过order指定顺序,还可以通过require、watch、onchanges、onfail灵活设置依赖和触发任务。
2、基于规则配置的实现
将业务规则的配置单独提取出来,使之与业务系统保持低耦合。
比如,京东的达人平台,支持渠道、样式、类型、字段等动态调整。前端根据规则渲染页面和拼装请求参数,服务端根据规则动态校验和保存。
3、基于设计模式的实现
增加一层抽象来隔离变化。比如模板方法。
4、基于运行时加载的实现
比如Spring Boot框架的自动装配特性,它会
在应用依赖中搜索符合预期的JAR包并加载其Bean对象。
5、基于开放脚本的实现
脚本可以是代码片段、也可以是表达式,还可以是指标计算公式,其可以被动态编辑管理。
比如,京东通天塔平台提供了丰富的图文、商品、导航、营销模板,同时支持自定义代码生成自己的模板,从而让采销、运营、商家能快速和灵活地搭建营销活动页面。
六、总结
本文讲解了组件和组件化的概念,还有具体落地方案,希望能给你带来一些思考。当然,组件化的初衷是美好的,但是开发、维护、冶理的成本不容小视。
数据库
文章转载自
松华说
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨