低代码low-code,无代码no-code,合称LCNC,近年来获得较快发展,一个重要的原因是需求推动,各个行业数字化升级和工业4.0,对软件开发人员需求巨大。
一,LCNC解决方案
很多公司和创业者有想法没团队,为了降低软件开发门槛,将通用代码形成组件化模块,通过图形化界面来拖拽组件拼装成应用。
降低培训学习成本、降低开发投入、降低技术和业务人员门槛,这是LCNC平台要解决的终极问题。
现在市场上已经有一些成熟的解决方案可用,比如国内的明道云、清流、搭搭云,国外的OutSystems等著名企业。当SaaS/PaaS平台提供的通用服务模块无法满足业务需求时,推荐使用开源框架JeecgBoot。
二,JeecgBoot开源项目
JeecgBoot基于代码生成器,支持无代码配置化快速开发,适用于常见的企业信息管理系统开发,比如OA办公、ERP系统、客户关系管理系统等,显著提高开发效率,降低开发成本。
代码托管在Github和Gitee,star数量超14.7K,fork数量超5.7K,获得多个奖项,连续五年中国最火TOP5、十大优秀开源项目、2014年微信开发商大会第一名。
三,Jeecg开源社区
JeecgBoot和多个项目一起,形成了完善的解决方案。
1,JeecgBoot
基于代码生成器的低代码开发平台,无代码配置化,前后端分离架构,技术栈使用主流的Java Spring Boot MyBatis,前端使用node Ant Design。
最新版本JeecgBoot2.2.1,发布于2020年7月13日,包括多项功能优化,支持Docker一键部署。
2,JeecgCloud
Jeecg Boot的微服务版本,基于Nacos服务注册和发现框架。
最新版本1.0.0 Beta,发布于2020年5月21日。
3,JeecgUniApp
一站式跨平台,完整的移动解决方案,采用Uniapp ColorUI 框架,APP、小程序、H5多终端适配。
版本1.0.0 Beta,发布于2020年6月8日,最新改版上线于8月17日。
4,JeewxBoot
基于Java Spring Boot开发的微信管理平台,采用插件机制,支持公众号、小程序、第三方平台,包括公众号基础管理、群发、系统权限、抽奖活动、小程序官网等功能。
最新版本1.1.0,发布于2019年12月5日。
5,JeewxAppCMS
基于wepy语言开发小程序,包含CMS网站基本功能,快速开发应用。
最新版本1.1.0,发布于2020年5月30日。
四,软件工程实践改进
JeecgBoot功能强大,社区活跃,版本发布及时。但是当看到JeecgBoot版本升级说明不能做到平滑兼容时,就有点感概了。
“JeecgBoot属于平台级产品,每次升级改动内容较多,目前做不到平滑升级。”
作为忠实用户,如果有新版本发布或者重大问题修复,是非常希望能够平滑升级功能的。从几方面提一些建议。
1,代码质量保障,单元测试
打开JeecgBoot工程,仅有两个单元测试,而且不能够直接运行通过,需要准备好依赖环境。
单元测试好处,欢迎补充:
1) 保证代码质量,及早发现bug。
2) 修改过的bug,避免再次发生。
3) 改动代码时,避免引入新bug。
4) 回归测试,保障功能兼容。
如何写单元测试?Java开发时,常用JUnit Mockito,使用起来非常高效。
2,Git发布版本管理
Git提升团队协作水平,团队架构和代码管理相对应,功能开发、代码合并、测试发布,分支和标签配合使用,清晰高效。
在并行功能开发较多时,上线顺序不完全确定,结合多个分支,完成测试和发布版本时,打上对应标签。
3,SQL脚本版本化管理
和代码对应的数据库SQL脚本,也应该包含在Release Tag中,建议引入Flyway。
Flyway是一个数据库版本化管理工具,通过SQL脚本实现DB Migration自动化升级,支持独立运行,也可以和构建工具或者Spring开发环境集成。
4,自动化部署,Docker-compose资源编排
打包Docker镜像常采用的两种方式:
一种是本地编译,然后将得到的jar包文件加入到Docker镜像中,这种方式速度较快,多用于本地开发测试。
另一种就是Dockerfile包括完整步骤,从编译源码开始,不依赖本地环境,全量构建,这种方式经常配合构建服务器,耗时较长,用于发布部署。
为了提高开发测试效率,经常配置两个Dockerfile。
├── Dockerfile
├── Dockerfile_ce
5,持续集成,Docker镜像自动构建
充分利用免费的阿里云容器镜像服务,配置持续集成系统,实现Docker镜像自动构建功能。
登录阿里云容器镜像服务,增加Docker镜像,配置代码源,增加构建规则,指定Dockerfile路径。
当有代码提交时,将触发构建,Docker-compose.yml引用镜像,实现自动更新部署。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。