2018云栖大会深圳峰会阿里云IoT物联网技术专场上,江苏智慧新吴信息科技有限公司技术总监、阿里云MVP胡磊在深圳云栖大会分享基于飞凤开发一站式政务应用,从两周迭代一次到一星期开发一个应用。
数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧!
以下为精彩视频内容整理:
公司背景
首先简单说一下智慧新吴的背景,我公司是一个政府性的公司,主要开发符合政府条件的应用。公司现状是研发团队有20个人,要应对19个应用。之前每个应用都是独立开发的,独立的设计、开发、测试到上线使得我们工作中遇到一些问题。
走过的路,遇到的“坑”——在开发政务系统的过程当中遇到的问题
问题1:不确定。举一个最极端的例子,有一次一个版本的需求要求用两周时间来迭代,但是在第二周的周二,之前的需求全部都发生了改变,但是周五的上线期限是不能改的,这样的问题屡见不鲜,导致团队的困扰加深。问题2:复用低。因为每个应用都是独立开发,各个应用之间的数据完全没有复用,代码的复用还仅仅停留在一些组件库层面。问题3:周期长。由于政策和各种因素影响,应用需要不断的迭代开发,并没有一个准确的完成概念,导致项目的周期非常长。
怎样去解决这些问题?我们通过四个维度来思考解决方案。其一,需要一个可随时响应变化的系统,这种响应变化最好体现数据库里面。其二,需要一个数据可共享又可隔离的存储方案。每一个应用的数据需要独立存储,但是有业务逻辑的需求时又可共享。其三,需要一个运维相对简单的系统。基于时间成本的考量,简便易操作是我们的迫切需求。其四,软件指标不能丢失。不能因为灵活性的提升导致软件性能的下降。总的来说我们需要一个配置驱动的系统。
要想富,先修路——解决问题的方法
这些问题长期困扰着我们这些开发人员,所幸遇到了飞凤平台。作为深度的参与者和应用制作者,我们作为第一批吃螃蟹的人,了解到了飞凤不仅可以解决物联网问题,也可以解决各个应用之间数据和业务层面互通问题。后来政务系统通过借助飞凤平台的工具及设计理念,重新定义了应用开发模式。
1、表单。在字段方面,借助飞凤上数据成像的一些功能,我们把字段的定义单独提取出来,让它的一些特质,比如说类型、长度、校验等发生改变;在关系层面,除了传统的固定逻辑形式,我们也设计成了可变逻辑形式,主要解决字段改变产生的一系列影响。
2、流程。流程方面我们完全借助服务编排设计理念。我们把流程分成策略和引擎,主要目的是把业务逻辑变成可配置化方式。策略就是把配置和执行引擎独立成为一个单独模块,引擎编为执行单元。它们之间的关系就是策略是提木偶的线,引擎是下面的木偶,用这种方式很好的把整个业务逻辑动态的进行组合和串联。
3、视图。第一个需要解决的问题是由于不同种数据库,导致数据库操作不通的问题,我们这边叫做DSL(Without SQL)。然后我们针对表单和业务逻辑关系进行配置,结果形成一个视图。通过这种方式把整个开发链从数据库的语法中解放出来。下一步我们打算把DSL(without SQL)也抽取成一个独立的模块,这样可以在逻辑中添加更多自定义的特殊场景的DSL,用来适应更多更通用的业务和变化方式。
4、页面,我们把整个页面的概念叫数据驱动。整个页面是由三个部分组成。第一部叫Reducer,是接收页面视图驱动的状态。第二部叫做Saga,可以理解为事件流。最后是View,View是通过组件来划分的。View组件被我们划分为基础组件、高级组件、特定组件。新建的系统打破了我们以往的开发模式,更多的实现了代码的复用。
总结一下,我们通过字段、关系、引擎、策略、DSL、Reducer、Saga和View重新定义了应用模式,并重新组装成我们需要的应用。
阡陌交通,鸡犬相闻——达到应用效果
通过借助飞凤平台,我们20人的研发团队在一个月的时间内把之前的19个应用做了迁移。通过这样的换算,相当于大概4个人一星期就可以开发一个应用,提升特别大。感谢飞凤团队和我们自己的开发团队做出这样的成果,也希望给大家以借鉴。
本文由云栖志愿小组王晓慧整理编辑