软件工程第一步-提升软件生产效率(一个CURD生成器的实现)
无论是使用何种的开发模式,软件的诞生过程就是分析,设计,生产的过程,或者这三个过程的交替进行过程。
那如何获得软件工程的进步。首先要解决的一定是如何降低生产成本(即减低相同代码量的书写时间)。
在降低生产成本后,才有可能将之前没时间实现的功能有时间去实现。才能有时间去加强系统设计。
比如。订单最好有个审批过程日志表,这对之后排查问题或形成报表都是有利的,这是显而易见的。
但是如果成本降不下来,那么开发人员会本能的拒绝去开发日志表。
不要批评这种想法对或不对,只谈实际情况。强迫开发去做超额内容,反感与拒绝是肯定会出现的,嘴上不说不等于没有。
因为这耗费时间,尤其是时间紧迫的时候,会想先把日志表放一放,放到二期。众所周知,二期,约等于没有。
正式一点说就是:开发成本有限的情况下,产出和效率成反比。
如果想提过产出,管理者首先想到的一般是增加成本,即延长工时,俗称“加班”。
即使是无偿不给钱的加班,其实也是增加了开发成本(开发时间加长了)。
实际上,靠工程师加班这个行为,就是温铁军所说的经济上在没有外部资本投入的情况下,维持经济的方式一般是成批量的投入劳动力(罗斯福新政)。
但这是没有办法的办法,并不是正确的办法,那正确的办法是什么也就清晰可见了。
增加资本投入。提高生产力。来代替大批量的劳动力。
在开发成本不变的情况下,通过拉高效率来实现拉高产出。
问题的解决方式永远应该朝着有利于大众,方便于大众的方向来前进,而不应该靠强制方式来推行。
阿里的开发规范手册写的听好,规定的也很细,但是推行不下去,落实不了。为什么。因为他只有一个插件来校验你写完的代码合不合规,而没有插件来帮助开发人员产出合规的代码。
推行阿里的开发规范这实际上是增加了开发人员的工作量,对开发人员没有任何可见的好处,一定是推行不下去的。
现在比如最基本的单数据库的CURD,
是完全可以实现自动化生成
下面这个是我自己做的一个生产工具。虽然还没有多完善,但是实际上已经帮我解决了很大一部分无趣的劳动。
不需要自己写这部分代码。只需要动动手指点一点,然后在生成的代码里做做必要的修改就行。
之前实现相同的功能需要多少时间,现在大概需要原来的五分之一就可以了。
而且我相信大部分人是会赞同这种方式的,只不过可能嫌我现在的实现方式比较烂而已。
你们要是觉得可用的话。请点几个赞,支持一下。我把插件发出来。
现在的实现内容还比较简单。这个插件的最终目的是:
1,自动生成增删改查代码(单表)
2,规定出表对应实体类,dao类的位置及名称,从而不需要人工指定,maven的代码一定在src下,不会在srb下。没有为什么,就是约定而已。
3,通过一个yml格式的接口描述文件,生成一个 controller 的方法。
4,生成配套的简单增删改查页面。
插件内容:
一,配置数据源
二,生成实体类
三。生成增改查语句,数据不要物理删除。所以不生成delete语句
1,查询
2,插入
3,修改