前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >干货 | X-Series企业级开发实践

干货 | X-Series企业级开发实践

作者头像
携程技术
发布2018-03-16 11:52:31
7400
发布2018-03-16 11:52:31
举报
文章被收录于专栏:携程技术

作者简介

赫杰辉,携程框架研发部高级研发经理,负责携程DAL组件开发与推广。在开发一线奋战多年的老兵,热爱中国传统文化和推广开源软件,希望用自己开发的工具为大家解决实际问题,愿为中国的开源事业贡献自己的绵薄之力。

前言

X-Series是我开发的可视化系统快速开发框架。它的功能是为系统的处理过程,状态变迁和复杂逻辑判断提供一个可视化的,基于流程图,状态机和决策树的建模平台和运行平台。该框架是我基于多年的一线开发经验,针对实践中难以解决的痛点而研发的。使用X-Series开发能够极大简化系统设计,降低开发难度,提高易用性。

好东西应该大家分享,我希望向广大开发者推广这套框架。但由于X-Series之前只有我自己在项目里使用过,因此能不能够让大多数人接受还未可知。2016年初某医疗领域初创互联网公司需要做网站建设。公司开发负责人希望我可以帮助做系统的架构设计和技术选型。我向其推荐了X-Series作为快速开发框架。

该项目开发正式启动后我帮他们用X-Series中用于处理流程构建的XrossUnit(简称xUnit或Xunit)设计好顶层流程和一个子流程作为培训示例,指导他们熟悉工具的使用。

在一个月的时间里,他们已经熟练掌握了xUnit并成功完成第一版可用系统并上线试运行。从那时起到现在接近一年的时间里,开发团队一直使用Xunit构建系统,同时还自己尝试并成过使用了X-Series中的XrossState管理主要业务模型的状态处理。通过和他们交流使用体验,可以说X-Series在该公司的使用是成功的。

X-Series使用效果说明

为了说明使用X-Series确实能够使系统在不断的演变中始终能够保持易于理解,易于维护。我将展示基于xUnit的系统最初模型和该系统最新的模型。通过这种直观的对比我们可以看到使用xUnit可以让系统始终保持清晰易懂的状态。

  • 最初系统模型

系统主流程

子流程示例

  • 最新系统模型

系统主流程

子流程示例

通过上面的介绍可以看到流程图可以有效的描述和分解系统。我相信任何一个有多年开发经验的人都一定会觉这就是渴望已久的工具。

用户反馈

下面是该公司主力开发人员给我的使用反馈:

  • 学习安装

Xunit的demo和介绍在相关的GitHub已有介绍。引入Xunit只需pom.xm中引入相关dependency。

  • 使用感受

配置文件的编辑,GitHub也有介绍,确实清晰方便,三视图配合,一目了然。

  • 承担角色

如果将系统看一个人,那么可用Xunit来搭建人的骨架。

以某服务系统为例,从服务总入口,到服务的分发,再到每个服务的业务逻辑切分都配置在Xunit。整个系统的服务功能清晰明了,能快速定位到每个功能点,极大方便了后续的维护。而每个服务的业务逻辑也是一目了然,方便定位业务的节点,调整业务的逻辑。

业务逻辑切分示例

  • 吐槽

Xunit的图形化编辑器已经满足开发所需,但对于懒人来说,总是会追求更懒的方式,所以这里还是要吐槽一下编辑器。首先是如上图所示,不能放大缩小;其次是Xunit不能切分成多个小的Xunit,需要自己写Processor去额外处理;每个元件不能通过复制粘贴来复用;没有搜索功能。

以上是用户的反馈,这些功能都会想办法在未来的版本中提供。

总结

流程,决策,状态这些抽象模型往往是系统设计中最重要,最复杂,也是最难处理好的部分。

使用X-Series能够将这些模型从代码中抽离出来,以可视化的方式为这些抽象概念提供一个创建,修改,交流和高效运行的平台。通过这个平台可以很快完成从整体到部分的设计和分解,从而使总的设计工作量大大减轻。

通过X-Series完成总体设计,开发人员可以仅考虑很小范围内的需求,即有助于做出高内聚,低耦合的设计,也有助于降低测试难度,提高测试效率。X-Series可使抽象的系统设计原则通过工具来具体化和可操作化,无需生搬硬套。在标准化的同时,也降低了对人员能力的要求。原生的模块化允许即使设计有误,也可方便迅速的做到故障定位,隔离并替换。

虽然X-Series的三个组件非常直观,基本上都属于可视化的DSL,但在实际的推广分享中,不同的开发人员理解接受程度还是有一定的区别。XrossUnit基于流程图,使用起来没什么门槛;XrossDecison需要了解什么是决策树,对于没有接触过类似概念的开发人员来说稍微有点难度。XrossState涉及到对状态机的运用,最好具备一定的背景知识。

作为一个开源的,通用的解决方案,使用X-Series在达到提高开发效率,质量的同时,还能将充满困难,风险,不确定因素的开发过程转变为简单的,标准的,可重复的过程。不但在当前的工作中可以有效解决问题,其积累的经验也有助于在未来的工作中有效的复用。如果对使用方面有任何疑问,可以加入下方的技术支持组。

参考

项目地址:

https://github.com/hejiehui/xross-tools-installer(点击文章底部“阅读原文”可直接跳转)

X-Series技术分享视频:

https://v.qq.com/x/page/c0340vrpod1.html

X-Series设计思路详细介绍:

http://blog.csdn.net/ctrip_tech/article/details/53337622

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 携程技术中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档