Java/JavaFX企业级应用开发平台(fxEAP)
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

目标

前言

有感于一些软件公司由于平台化、模式化方面的欠缺,开发人员实现并维护一个简单的管理型界面,往往需要数天的时间。前后端代码动辄几百行甚至数千行,并由此导致效率、维护等方面一系列的问题。

对此,我们的愿景或基本要求是:以实现一个中等复杂程度的一主一子型(即一张主表、一张子表)的管理功能为例,在需求明确并完成需求反讲等控制环节,可以开始编码的基础上,一个熟手应该在2个工时内就能够完成数据库设计、生成业务逻辑处理、界面展现等相关的框架性代码,与业务处理无关的手工代码量应该尽量少,可运行并具备基本的增删改查功能。对于一个新手,经过1-2周的培训,也能够以较快的速度完成一般复杂程度的业务功能的开发。

fxEAP用于验证上述愿景的可行性。在基于平台+模式化开发体系的支撑下,开发人员应该把主要精力放在实现业务逻辑上。软件公司或是编码人员的本质工作是什么?我们认为是解决客户的问题,满足客户的需求

这是我写这些文字和代码的初衷,也是fxEAP平台的主要源头。希望我的这些文字和代码,可以给面临项目交付压力的企业和开发人员一些有益的启迪和帮助。

目标

fxEAP是一个基于Java、借鉴我们以往接触以及了解到的企业级应用开发思想及经验、整合第三方成熟的技术框架及工具,产生的企业级应用开发平台。编写该平台主要的技术目标,是尝试使企业应用的开发过程标准化、模式化,使开发人员把精力集中在实现业务逻辑上,减少代码量,降低开发以及维护的成本,达到以下基本目标:

  • 提供自成体系、模式化的企业级应用开发思想、方法论、相应的规范和工具集,实现针对已知的绝大多数业务场景的模式化开发。fxEAP不仅仅是一堆代码,还包括思想、规范、工具集、最佳实践等内容。
  • 基于JavaFX,实现基于领域建模的代码自动生成,生成从UI到持久化所有相关的代码和配置信息,实现针对绝大多数业务场景的可视化开发。在此基础上进一步完成业务逻辑处理等相关的代码开发工作,以减少手工代码量、提高开发效率、降低开发难度和维护成本。例如,对于比较简单的只有增、删、改、查功能的管理型界面。“不写代码”从来都不是我们的重点或目标,恰恰相反,我们一直鼓励开发人员多“手办”代码,因为我们认为,所谓的高手、牛人,在成长的过程中,都逃不过“久病成医”和“熟能生巧”的宿命。所谓的神乎其技,无它,唯熟耳。
  • 持久化方面,基于MyBatis,结合fxEAP的Value Object(VO)体系,实现高效、易用的O-R Mapping机制,减少与数据操作相关的代码、配置文件以及SQL等配置信息。fxEAP持久化的目标,是以MyBatis(直接、少量SQL语句)的性能,达到Hibernate(VO映射)的易用性。包括便于前台界面展现、中间件业务逻辑处理及持久化、其它方面数据交互等方面的易用性。这是fxEAP基础价值的重要体现。
  • 实现模式化开发所需要的平台级的基础架构,包括元数据管理等。
  • 实现系统管理相关的基础功能,包括机构管理、功能权限管理(用户、角色、权限等)、数据权限、按钮权限等。
  • 实现应用层面基础的功能及组件,包括声明式事务、远程调用、安全体系、日志体系、工作流等基本功能及组件,减少冗余代码和技术耦合。
  • 充分利用主流的、经过项目验证的第三方技术,提高开发的便捷性、规范性,降低开发难度。工具能够提升效率。
  • 提供尽量多的基础应用级组件及开发模式,方便开发人员快速实现常见的通用业务需求,如可视化流程定义、公式编辑以及解析器、文件交换组件、任务体系、国际化体系、通用查询组件、模板处理、指标体系、业务锁机制、文档处理组件等,以提高复用程度,提升开发效率,降低开发难度和维护成本,加快业务功能的交付速度和质量。这是fxEAP平台在应用层面最主要的关键目标。
  • 继承并发扬以往的企业级应用开发经验,减少业务风险、提升平台性能、降低开发及维护的复杂度