往前走时,记得抬头看路
在新入职的这段时间,刚开始维护老项目,之后开发新项目,对于项目开发上的一些问题和项目维护中的一些问题有一些感悟,分享出来。
老项目
可能大部分人都有维护过老项目的一些经验,一个项目经历了项目初期开发
,项目前期工期紧张
,项目中期人员离职,文档交接不全
的一些过程,之后的人维护起来简直想要XXX,公司有个老项目,据说有百万行代码,之前的老员工基本离职了,这个项目至今无人敢改,我之前维护的项目代码量虽说没这么多,但是经过4年的运行,中间交替了好几拨人,代码中@author
也是有10个以上,在这中间,也是积累了一些经验
老项目存在的问题
- 代码不规范
- 日志打印格式不规范
- 魔法值频现
- 方法名称(类名称)和具体想要做的事情不一致
- Maven依赖混乱
- 逻辑嵌套太深
- 异常处理不规范(直接捕获Throwable)
- 方法过长(大的方法超过了500行)
- 重复代码
维护老项目的一些好处
- 可以快速了解公司(部门)业务
- 可以学习到一些好的代码风格
- 有机会解决一些系统性能上的问题
- 尝试去修改一些坏味道的代码
维护老项目的一些思考
在维护老项目的过程中,看别人写的代码其实是可以看到自己的影子的,自己在维护项目的过程中遇到的一些问题会逼迫自己在之后写代码的过程中避免这些问题,例如
在哪些地方该打印日志,哪些地方可以不用打印
,如何处理异常
,怎么写出更好的代码
新项目
新项目更多的是对于前期系统设计,需求沟通以及开发人员之间的协作,在这次项目中有一些经验也想分享出来
- 合理的规划前期设计的时间(不好太赶,做好设计很重要)
- 在做技术方案时确保一些问题:
- 业务的合理性和必要性
- 业务确认后确保自己理解了业务
- 做好技术方案后和技术Leader以及上下游小伙伴以及产品经理展开讨论,分析自己设计的不足以及一些边界问题的考虑
- 不要太相信自己的记忆力,不管是会议中的正式讨论还是一个小问题的确认,最好是记录邮件或者自己笔记有地方记录起来
- 从现在开始观察和记录自己开发的时间(方便之后的开发时间量化)
- 二八原则,为重要的工作保障时间和效率
- 分析项目中的风险点,并做好应对方案
- 每天给自己做一个TodoList,下班前将List清空(早上先做重要和困难的事情)
- 后端开发在着手开发之前做好功能List,细化到每个API接口
- 如果前期项目比较着急,和产品讨论出核心功能(不做会影响主流程的)
- 对于接口交互的地方多考虑点
- 做好单元测试
准则
墨菲定律:
- 任何事情都没有表面看起来那么简单
- 所有的事都会比你预期的时间长
- 可能出错的事情总会出错
- 如果你担心某种情况发生,那么它就更有可能发生
网友评论