首先我表个态,我是那种老顽固型的,一般人的建议是听不进去的,觉得世界上只有我才是对的那种人。
我大概在几年前也反对代码生成器,觉得那玩意儿只是个花架子,不可能满足日常开发里那么多复杂的 问题,用了也是白用,怎么可能满足那么多各式各样的复杂情况,其实我错了,代码生成器不是万能的 对他的定位错了,他只是一个开发的辅助工具,不是万能工具,有部分功能用代码生成器是可以大大提 高工作效率的。因为我多年始终完善维护一个系统架构一个体系,每天修修改改、完善完善,表结构变动不多,也不经
常加表什么的,修修改改,感觉不需要多少工作量,这也是我当初反感代码生成器的原因,说白了我是 走产品路线的,不是走项目路线的这还是有本质的区别的。后来自己亲身经历了几个项目后,才深刻体会到,我是大错特错,由于大型的管理类软件,会建立很多
表,例如我们的数据表往往会有100个以上,这么多表的读、写、删除等操作都是大同小异,让7-8个 项目组人员,都写出同样风格的代码,那比上天还难,因为每个人都是大爷,都有个性,都喜欢按自己 的方式写,谁也听不进去谁的,谁都自己有一套写法,什么规章制度,检查都是瞎扯蛋没多大实际用, 你不可能罚款吧?把大爷惹毛了人家辞职不干了,还有你凭什么说你的写的就是对的,最好的呢?他的 写法也是对的呀,效率、性能说不定还比你的还高了。而且这部分对数据的操作纯粹没任何技术含量、而且还需要经常变动,例如增加了几个字段,修改了几
个字段,删除了几个字段等等,改来改去是累死累活,时间长了,这些大爷也都懒得修改,能用就行吧, 能不改就不改吧、很少有有耐心重复去做相同的事情,而且从早到晚都是这样的重复劳动。还有就是对这么多无聊代码的质量检查及测试工作,也是个头痛的工作,经常会有变动,还真TMD的需
要经常测试验证才能保证质量,这些大爷的写法又乱,你命名规定写在哪个类里,他甚至可能写到页面 上都有可能,因为毕竟这个项目组里啥人都有,不可能是清一色听话的好员工。我很早的时候,大概在2003年左右见过我们项目组的老大写了一个代码生成器,当时我也是很反感没用,
几年后想想的确是有道理,2007年时我彻底接纳了别人的思想,也写了一个代码生成器,结果花了7天把 生成器写好了,然后用几分钟就生成了接近2万行的高质量的程序代码,真的是磨刀不误砍柴工啊,我平 时一天也就能写1000多行有效代码,用了代码生成器几分钟就写出来2万行代码,而且不用检查,编写 风格、排版、命名是统一的,错误也是集中管理的,后来又在另一个大型项目里,所有项目组成员必须用 这个代码生成器生成,结果上百个表的几万行代码,玩一样生成好了,代码质量也过关,可以偷懒了,检 查都不用检查,用的真的是不亦乐乎啊,大家可以专心写业务逻辑代码了,从繁重的体力劳动里解放了。因为我们有一些历史积累的原因,我们还没用最新的技术,采用了最新的技术,这部分也不用人工写了,
也可以由开发环境自动生成了,是大大的提高生产率啊,进步不是一步飞上天的,都是靠点点滴滴的积累, 10年前,我就听说过什么智能开发软件什么的,说是用嘴巴说说需求就可以了,或者就一个软件就是万能了 什么什么的,10年过去了这样的神奇软件我连影子都没见过,开发软件还是一步一个脚印的发展。我们不要当老顽固,有时候需要积极的吸纳新知识、新思想。
用代码生成器的好处总结如下:
1. 效率高,可以在1分钟内生成几万行代码。 2. 代码质量高,因为都是一个生成器生成出来的,代码的风格一致、以后好维护。 3. 不用反复测试,人是最靠不住的,很容易马虎,偷懒,代码生成器不存在这个问题,或者有也好修改。 4. 人是靠不住的,电脑、程序相对来说比人更靠得住一些。 5. 可以把人从重复劳动解放出来,用更多的精力去关注更核心的业务逻辑上,系统的优化上。手写代码比做是小米加×××,代码生成器就是【飞机+坦克】,当然小米加×××也有战胜后者的时候,
打游击战前者优点更多,但是打大仗、正面交锋还是后者更强一些,不承认不行啊,当然也不能过于 夸大他们的功能,不是万能的,要用后者的长处,少用后者的短处。往往一个大型软件项目来了,都需要快速搞定、迅速组织人马,短期见效,所有还是要有好的武器才可以。
这样才能把大型软件项目及时又快有好的搞定。
代码生成器最好不要用,住着拐棍是永远都走不快的 == 这个是彻底的谬论,大家不要相信这个啊。
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。