天天看点

一个10年左右的老程序员说:绝大部分程序员被面向对象的业务开发困住了

   近十年的开发和经过长期不断探索,实践。我得出结论,面向对象编程,面向业务编程。是一个大坑,能消耗掉许多初中级开发人员的时间。

     面向对象在java中的开发的确是一个坑,因为每开发一个新的系统功能模块,都得从用户需求,需求故事,类,实体,持久层设计编码,数据设计,业务对象的CRUD基本功能,业务层代码开发,控制器接口设计。最后满足需求进行前后端联调。如此不断迭代开发。2016年之前,java人能够前后端一起搞,也就是所谓的全栈工程师。16年后微服务把前后端分离。目前还有人想做全栈工程师,是否是逆潮流而行呢?

   作为一个把事情做到极致的人,面向对象的CRUD绝对是一个坑,每个项目新开发一个功能,每一次需求变动,都得从前到后,来一次调整。等好不容易,加班加点调整完,满足当前需求后。没过多久需求又变了。常年开发的人,不可能把自己所有的青春都奉献给一个个业务功能的从前到后的迭代开发和调试中,以及修改BUG的无穷尽的琐碎的日常工作中。对于老开发人员来说,总得想想出路。系统功能开发很多时间都浪费在满足需求变更,迭代开发上。

     其实一个业务系统,最重要的是业务。业务是随着真是业务进行动态变化的。作为一个拥抱变化的系统,就不应该被需求变更给缠住手脚。

      对于一个老开发来说,每经历一个项目,都会有一个项目的技术栈。每隔几年技术浪潮来一次。

      幸运的是,对java后端人员来说,变化大同小异。

       基于MVC,Spring的开发业务功能,开发业务模块。基本是软件开发的日常工作。然后配合一些其他技术功能完善。

       对于java开发来人员来说,其实java的世界,后端开发,其实也算很稳定了。多年来,万变不离其宗。CRUD、校验安全、业务开发、前端交互开发、复杂的系统会进行领域模型设计,领域模型,以及相关的设计模式使用工厂模式。对于很多开发人员来说,简单的系统都不会使用到设计模式。

       世上业务千千万,不可能每经历一次项目,都重新进行一次后端迭代开发。然后陷入无尽的开发细节中。日复一日,年复一年。

    我在多年的探索中,从代码生成器进行出发,减少代码工作量,提高生产效率。开发多个版本的生成器,实用过后,发现代码生成器始终是一个鸡肋。食之无味,弃之可惜。不能应对各个项目的技术,框架的变化。还浪费很多时间进行适配各个项目技术栈,框架栈。

   在后续接触到图数据库,然后结合元编程,图数据库与代码生成器。经过多次探索。竟然探索出一条,虽源自代码生成器,却青出于蓝而胜于蓝的道路。开发出基于LayUI,Themleaf,SpringBoot,JSON,RestFull风格,Neo4j图数据库的元编程的项目。

这个项目做到了,简单的增删改查,前后端一体,前端业务不论怎么变换,直接在页面就可以进行运维管理。

我把这个项目的地址发布出来:http://114.116.218.197:19602/,进入主页,选择左边的菜单:“简单对象定义”。

就出现如下界面:

一个10年左右的老程序员说:绝大部分程序员被面向对象的业务开发困住了

领域对象定义就是简单对象定义:

1、表头列:就是数据列表的表头展示列名。表头列同时对应表单中的Label。多列用逗号隔开。

2、属性列对应对象的属性。数据对象中的key。多列用逗号隔开。

3、Label就是标签,也是简单类的英文编码,即对象名。等价于java后端的类名。

4、name就是对象的中文名称。

5、主键:定义当前对象的主键列是,用英文编码。

定义完上面就完成了简单类的定义。保存即可生产对象定义。可在下方的列表中查询到此定义。

列表中的最左边,复选框,选中后,表单就会展现当前选中对象的属性。

列表右侧操作列中 “接口信息”,大家点一下,就可发现当前对象的操作接口,相信不会让大家失望的。

列表最右边的红色“字段”按钮,即可进行详细定义字段类型。比如定义某个字段为TextArea。

管理按钮点击,就进入了简单对象的增删改查页面了。这个页面包含了简单的对象管理,关系关联等。

今天就到此为止,有点困了,后续更新相关文章。。。