版权说明:原创文章转载请注明来源:程序员的高产之路 https://blog.csdn.net/qq_26318179/article/details/106262281
研发,一个高智商的技术工种,这个行业,拥有的开发大军,已经非常多了,尤其在疫情这样的背景下,作为一个程序员或者一个团队,应该优化自己的技能,提高质量,提高速度.研发的高产,应该保证以下几点,才有意义:
- 高质量
- 方便维护
- 方便扩展
- 开发速度快
高质量
作为一个开发者,我做了自己的开发框架,慢慢建立独立的思维方式,有我自己的风格,随着时间的推移,不停的优化,我的框架,质会越来越高,随着不停在实际项目中验证,基础框架的bug越来越少.我是从以下几个方面来做的:
- 尽量将常用的功能,封装成常用的库,并且不停的优化
- 尽量前后端保持一致的开发风格
- 核心部分,尽量通过接口编程,保持一致的接口
- 框架分层明确,每次写代码,都想清楚,我的这部分代码放在那一层,更合理
方便维护
在长期的项目维护中,项目分层合理,保持一致的接口,这两个是很重要的
- 分层合理,每次遇到问题可以在最短的时间之内定位错误位置,迅速找到错误代码,并修复
- 封装错误库,记录错误链,这样可以通过日志来定位错误
- 接口一致,可以让我们减少很多跟踪代码执行流程,查找错误的时间
方便扩展
- 这是开发中经常遇到的问题,每次客户说,我需要增加一个XXX功能,这时候如果你的底层设计不够灵活,往往你就需要改动其他代码了,保持一个整体的思考方法,站在客户的角度,提前思考用户可能的变化,这样我们在设计代码的时候,就可以规避很多问题,往往客户提出修改时,你只要说:这个没问题,我们之前已经考虑过了.瞬间,客户对你的信任值又提升了几个百分点.
- 在有些项目中,为了方便扩展,我们也会采用接口规范,比如说支付,当前用户只会要求微信支付,可是一段时间之后,突然告诉你,我们现在为了用户方便,必须要接入支付宝,更有甚者,我们要在东南亚运作,必须要接入PayPal,如果你的代码不是接口方式定义的,我相信,出现这种多个支付的,你的脸可能马上就绿了,或者比马的还要长.
- 还有其他情况,可以增加扩展想,降低项目依赖,比如通过IM通讯,就可以减少很多依赖.也有通过rpc实现不同语言之间的通讯,这些本质上,都是降低耦合,提高项目的健壮性.
开发速度
这是个亘古不变的话题,效率,尤其是你的老板,总是希望,他要的时候,你就做好,这个是多么美好的愿望:要就可以.(我也希望,看见美女,要就可以.)
我们来算算的时间问题:
- 数据库字段修改(加上思考时间,5分钟)
- API修改(往往涉及到多个模块都要修改,15分钟)
- API运行测试(就算15分钟)
- 接口文档的修改(10分钟)
- 后端web(对应接口修改,大概10分钟)
- 前端(对应代码修改15分钟)
- 前端打包运行测试(往往需要20分钟不止,如果漏掉某个地方,再来一次,时间更长)
- 沟通(前后端沟通时间10分钟)
- 上面的时间如果你觉得多了,实际上还有代码同步,上传测试服务器,上传正式服务器等等,永不止境的工作量等着你.
这种还不包括修改错误,重复修改,重复运行,这些时间,就已经有100分钟了,这么一来,人生就都在这么简单而又无法避免的工作上浪费掉了,这是理想的情况,每个人都积极的配合修改,不然会有更多的时间被浪费掉
从去年开始,我就一直在研究,如何采用代码生成器的方式,来减少重复的工作量,这个也是我开发的重点,我把代码生成器作为一个项目来思考;我思考的目标如下:
- 生成一个可靠稳定的快速启动框架
- 生成生成一份精美的文档,每次更新代码,自动重建文档
- 代码生成时,保留手动修改的业务逻辑
- 当设计错误时,可以直接删除不需要的代码,重新生成
- 生成前端API部分,前端可以直接开始写UI部分和业务逻辑,不用浪费时间在基础框架的搭建和对接API上,对接API这些应该自动生成
从技术实现层面,我需要思考,以下重点:
- 如何生成项目文件
- 对于新文件,这个不是多大的问题,可以通过模板的方式来生成.
- 对于编辑的文件,有点麻烦,比如路由问题,每次添加,都需要在路由的地方新增一条路由记录,这种在代码生成器上就需要定位
- 生成项目文件后,如何删除
- 新文件的删除也比较方便
- 对于编辑的文件,从中删除部分代码,这个就比较麻烦,需要定位,定位后准确删除不需要的代码
- 对于代码生成器,如果编辑代码,这个我做了一个长期的积累,形成了一个开发库.
上面只是代码生成的一些技术细节,从去年到现在,随着不断的优化和完善,我的代码生成器,已经实现:
- golang版的API
- react的后台
- vue的手机端
- flutter的app端(支持Android和iOS)
- PHP版的API生成正在调试中,预计两三天后可以完成
- vue的后台正在开发中
我做了一个演示站,通过我的代码生成器生成后,一个字符都没有修改,从API到后端界面全都是自动生成的.生成的flutter APP没有打包,以后空了补上.
演示站账号:admin
演示站密码:123456
自从我把完善了生成器后,做项目对我来说就三个字"轻松了",可以经常可以去喝喝茶,聊聊天.瞬间感觉生活就是这么美好.
版权说明:原创文章转载请注明来源:程序员的高产之路 https://blog.csdn.net/qq_26318179/article/details/106262281
我的文章给你提供了更好的思路,或者对你有所帮助,你可以请我喝一杯咖啡,你想进行沟通交流,可以加我微信.