某个业务领域的技术复用胡想记录

胡想开篇

今天晚上闲来想了想以前做的技术平台和最近两年做的项目. 有些项目可以通过业务抽象和技术总结,有针对性对这些能复用的部分好好总结,可以把很多东西复用到其他项目,进而很大程度上减少开发工作量。

技术组件回忆

记得十多年前(那时刚毕业),我还在上家公司开发Eclipse插件 ,我们组的架构师对 SWT/JFACE 做了封装并形成了当时的UI基础库,实现了控件对数据的智能感应,进而做到了数据与控件的动态绑定、数据校验;如果真用 ` SWT/JFACE ` 自带的控件去实现那些界面,要多不少的代码量,在工程效率上提升非常大;而且也能在一定程度上规范一些界面的实现,从框架层面就保证了UI界面风格的一致性。 举个具体例子:比较简单也是使用频率较高的一个界面组件叫 ` StringPropertyEditor ` ,顾名思义这个就是用来编辑文本的,他的功能就是用来提供给用户输入字符串的,能针对用户的输入进行校验、用户输入与数据模型字段自动绑定等,一般两三行代码就实现了所有的逻辑;而如果使用 ` SWT ` 写的话,需要创建Label、Text,针对Text做事件绑定今儿对用户输入进行模型数据绑定,还要针对Text的输入字符进行校验,针对错误信息的提示需要额外处理,并且没个开发界面的人写出来的控件布局会有各自的风格特点。 StringPropertyEditor 在数据与界面的解偶、校验逻辑与界面的解耦、在界面规范的统一等层面为我们这些开发人员做了很多事情,省去了很多麻烦事情。

业务组件的回忆

也是好几年前在做技术平台时,做了一个带有业务语义的一个技术组件,当时的名字叫 ` 业务查询 ` ;它其实就是对企业业务系统中的关于结构化数据查询进行了封装,供业务系统二开人员可视化使用。他针对查询实体、查询表单、前端页面都做了一连串的封装,并在组件内部实现了前后端交互大部分功能,针对常见的业务查询界面做了实现,二开人员在使用时,可以做到开箱即用,非常方便,大部分情况下只要通过可视化界面配置就能实现业务查询(不用写一行代码)。

工程效率的瞎想

针对现在大部分B/S类系统是否可以这样分解及思考: 前端工作:也许可以粗暴的分为两部分进行思考:一个是针对单页应用,另一个是针对传统的后端渲染的应用。前端界面有很大一部分工作是在html界面标签书写,是否可以通过在IDE上写插件工具,尤其通过向导页生成代码可以减少较大的重复工作,比如表格标签,需要针对每列都写标题、宽度之类的,这种通过数据向导可以直接生成,效率将有很大的提升,针对一些同类型的业务相关组件进行封装,好想都能对工程效率的提升非常明显。

后端工作:很多使用Spring Boot搭建子系统,是否可以在工具层面进行工程效率的优化,比如可以在开发工具上UI向导页加默认值的方式直接就开发完成了。如果碰到类似模块是否可以通过对业务逻辑及数据库设计做些抽象,直接就复用了。

从技术底层到整体业务系统,从下而上在每一层好像都能找到不少的抽象封装,工具化,从而大大提高工程效率,但以上更多的是针对会去主动思考的开发人员而言,对固化或者形成一些工具型的东西那才能大规模提高项目开发进度没有想透。

回忆这一两年的项目,其实或多或少有很多的重复工作,我们应该是可以通过抽象封装的方法减少很大程度的重复工作,但是又不得不思考另一个问题,就是短期代价问题,尤其那种有业绩产出有压力的子公司,不太愿意做这个事情,因为他更多在思考生存问题,这种短期见不了效果,占用最精锐的人,还有较大概率失败风险的事情,咋都很难有决心干。

  • 本文作者: 阿渡先生
  • 版权声明: 本文为原创,如需转载,请联系本文作者。