基于飞凤开发一站式政务应用

简介: 2018云栖大会深圳峰会阿里云IoT物联网技术专场上,江苏智慧新吴信息科技有限公司技术总监、阿里云MVP胡磊在深圳云栖大会分享基于飞凤开发一站式政务应用,从两周迭代一次到一星期开发一个应用。 数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧! 直播视频回顾 以下为精彩视频内容...

2018云栖大会深圳峰会阿里云IoT物联网技术专场上,江苏智慧新吴信息科技有限公司技术总监、阿里云MVP胡磊在深圳云栖大会分享基于飞凤开发一站式政务应用,从两周迭代一次到一星期开发一个应用。

数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧!

直播视频回顾

以下为精彩视频内容整理:

公司背景

首先简单说一下智慧新吴的背景,我公司是一个政府性的公司,主要开发符合政府条件的应用。公司现状是研发团队有20个人,要应对19个应用。之前每个应用都是独立开发的,独立的设计、开发、测试到上线使得我们工作中遇到一些问题。

走过的路,遇到的“坑”——在开发政务系统的过程当中遇到的问题

问题1:不确定。举一个最极端的例子,有一次一个版本的需求要求用两周时间来迭代,但是在第二周的周二,之前的需求全部都发生了改变,但是周五的上线期限是不能改的,这样的问题屡见不鲜,导致团队的困扰加深。问题2:复用低。因为每个应用都是独立开发,各个应用之间的数据完全没有复用,代码的复用还仅仅停留在一些组件库层面。问题3:周期长。由于政策和各种因素影响,应用需要不断的迭代开发,并没有一个准确的完成概念,导致项目的周期非常长。

怎样去解决这些问题?我们通过四个维度来思考解决方案。其一,需要一个可随时响应变化的系统,这种响应变化最好体现数据库里面。其二,需要一个数据可共享又可隔离的存储方案。每一个应用的数据需要独立存储,但是有业务逻辑的需求时又可共享。其三,需要一个运维相对简单的系统。基于时间成本的考量,简便易操作是我们的迫切需求。其四,软件指标不能丢失。不能因为灵活性的提升导致软件性能的下降。总的来说我们需要一个配置驱动的系统。

要想富,先修路——解决问题的方法

a768c36b0ec517a6825d35b467d36cdc7f37c2e4

这些问题长期困扰着我们这些开发人员,所幸遇到了飞凤平台。作为深度的参与者和应用制作者,我们作为第一批吃螃蟹的人,了解到了飞凤不仅可以解决物联网问题,也可以解决各个应用之间数据和业务层面互通问题。后来政务系统通过借助飞凤平台的工具及设计理念,重新定义了应用开发模式。

1、表单。在字段方面,借助飞凤上数据成像的一些功能,我们把字段的定义单独提取出来,让它的一些特质,比如说类型、长度、校验等发生改变;在关系层面,除了传统的固定逻辑形式,我们也设计成了可变逻辑形式,主要解决字段改变产生的一系列影响。

2、流程。流程方面我们完全借助服务编排设计理念。我们把流程分成策略和引擎,主要目的是把业务逻辑变成可配置化方式。策略就是把配置和执行引擎独立成为一个单独模块,引擎编为执行单元。它们之间的关系就是策略是提木偶的线,引擎是下面的木偶,用这种方式很好的把整个业务逻辑动态的进行组合和串联。

3、视图。第一个需要解决的问题是由于不同种数据库,导致数据库操作不通的问题,我们这边叫做DSL(Without SQL)。然后我们针对表单和业务逻辑关系进行配置,结果形成一个视图。通过这种方式把整个开发链从数据库的语法中解放出来。下一步我们打算把DSL(without SQL)也抽取成一个独立的模块,这样可以在逻辑中添加更多自定义的特殊场景的DSL,用来适应更多更通用的业务和变化方式。

fd421c108d3e4dd3537f99b531b5ccaad62645f2

4、页面,我们把整个页面的概念叫数据驱动。整个页面是由三个部分组成。第一部叫Reducer,是接收页面视图驱动的状态。第二部叫做Saga,可以理解为事件流。最后是View,View是通过组件来划分的。View组件被我们划分为基础组件、高级组件、特定组件。新建的系统打破了我们以往的开发模式,更多的实现了代码的复用。

780fcc252018a49491fa67e2f58f878b4d76a8ac

总结一下,我们通过字段、关系、引擎、策略、DSL、Reducer、Saga和View重新定义了应用模式,并重新组装成我们需要的应用。

阡陌交通,鸡犬相闻——达到应用效果

83da82c1ce531b4286588f123367524c54b93055

通过借助飞凤平台,我们20人的研发团队在一个月的时间内把之前的19个应用做了迁移。通过这样的换算,相当于大概4个人一星期就可以开发一个应用,提升特别大。感谢飞凤团队和我们自己的开发团队做出这样的成果,也希望给大家以借鉴。

本文由云栖志愿小组王晓慧整理编辑

目录
相关文章
|
存储 边缘计算 对象存储
阿里云盘正式公测
今天,我们的第一款个人云产品——阿里云盘,正式启动公测
5236 0
阿里云盘正式公测
|
编解码 算法 文件存储
浅谈动图文件格式 - GIF
介绍动图的文件格式,及其优劣
3467 0
浅谈动图文件格式 - GIF
|
监控 应用服务中间件 PHP
|
7月前
|
存储 缓存 自然语言处理
64_模型部署:推理优化策略
随着人工智能技术的飞速发展,大型语言模型(LLM)在自然语言处理、多模态理解等领域展现出惊人的能力。然而,将这些模型从实验室环境部署到实际生产系统中,面临着诸多挑战。根据2025年最新研究数据,大模型部署的主要挑战包括:
1124 0
|
人工智能 分布式计算 数据处理
MaxCompute Data + AI:构建 Data + AI 的一体化数智融合
本次分享将分为四个部分讲解:第一部分探讨AI时代数据开发范式的演变,特别是MaxCompute自研大数据平台在客户工作负载和任务类型变化下的影响。第二部分介绍MaxCompute在资源大数据平台上构建的Data + AI核心能力,提供一站式开发体验和流程。第三部分展示MaxCompute Data + AI的一站式开发体验,涵盖多模态数据管理、交互式开发环境及模型训练与部署。第四部分分享成功落地的客户案例及其收益,包括互联网公司和大模型训练客户的实践,展示了MaxFrame带来的显著性能提升和开发效率改进。
|
机器学习/深度学习 人工智能 Kubernetes
【DSW Gallery】介绍如何使用命令行工具提交DLC任务
本文介绍如何使用DLC命令行工具提交任务到指定的工作空间内. 同时,会介绍如何提交预付费和后付费的DLC训练任务
【DSW Gallery】介绍如何使用命令行工具提交DLC任务
|
JavaScript Ubuntu Linux
Linux安装Vue环境
Linux安装Vue环境
544 2
|
存储 安全 Java
难搞的偏向锁终于被 Java 移除了(下)
难搞的偏向锁终于被 Java 移除了(下)
难搞的偏向锁终于被 Java 移除了(下)
|
编解码 数据可视化 定位技术
Planet Explorer的简单介绍——高分辨率影像下载和使用
Planet Explorer的简单介绍——高分辨率影像下载和使用
1846 0
Planet Explorer的简单介绍——高分辨率影像下载和使用
|
Linux Python
【Linux】nohup后台运行程序并打印日志
在/home/coggle目录下在你英文昵称(中间不要有空格哦)的文件夹中创建一个sleep.py文件,该文件需要完成以下功能:程序一直运行每10秒输出当前时间
1009 0
【Linux】nohup后台运行程序并打印日志