故事1:
这段代码我没有找到被引用的地方,是不是有什么隐秘的用法?
哦,没有的,这段代码没有用了。
没有用了怎么不删掉?
删掉干什么?
不删干什么,你还要改,我还要code review,测试还没有办法对这个改动进行测试。
恩,还是放在那里吧,谁知道那天又会用到了。
那天基本不会到来的,即使到来了,谁又能保证这段代码没有问题呢,到那时,技术变了,业务变了,不是还得一样分析,编码,测试的老一套走完软件开发的流程,才敢上线。由于是存在老代码,反而使人容易放松警惕,产生以前就是这个样子,所以现在也不会错的想法。殊不知,时过境迁,无用的代码其实是躲在系统的阴暗角落中苟延残喘,鬼才知道当下该段代码的质量如何。
退一步讲,代码其实是删不掉的。我们不是有版本控制吗,可以在历史记录里面查找啊。实在你爱惜这段代码,觉得以后可以用到,可以保存在本地做备份啊。
放一堆不用的代码在系统中,要占地方吧,要编译吧,要维护吧,要干扰看代码的程序员的思路吧,要和每个有疑惑的人解释吧,百害而无一利吧。有那么多的时间和精力要浪费在这些无用的东西上,还是干脆点,删了吧。
当然,系统中有时会存在一些大家都不知道用途的代码,也没有人可以肯定该代码不再使用。可以打打日志,钻研一下这些代码,或者在集成环境删掉看看有什么影响。总之,系统中不应该有没有人知道用途的代码存在,如果当下不知道,就要想办法了解该代码的用途,最终结果有二,一是搞清楚了代码的用途,一是代码无用,可以删掉。
故事2:
我做了一个重构,合并了功能相似的两端代码。
你为什么要改啊,代码不是运行的好好的吗?
恩,功能是正常的,但是系统代码有重复,所以合并了代码。
不要没事找事,好好的代码不要乱改,改错了怎么办,还要浪费我的测试时间。
软件质量大致可以划分为两个方面,外在质量和内在质量。
用户可以直接观察到的系统功能是否正常,响应速度是否满意等等,属于外在质量。
冰山之下,用户看不到的,开发关注的,除了外在质量,也关注系统本身内在的质量,如架构是否合理,代码是否优雅等等,既然重复代码是软件质量公认的大敌,能改的还是要改的。勿以善小而不为!
故事3
我感觉这个代码不好。
怎么不好,全部遵守代码规范。
软件开发的光环早已褪去,昔日的荣耀我们没有机会体会到,但是至少我们还是想传承其精神一二。软件开发已经产业化了,但是软件开发仍然是介于工程和艺术之间的一个存在。如果一个简单的代码规范就可以解决一切,那么作为软件行业从业者岂不是太悲哀了。
代码规范只是软件开发最基本的一个要求,某种意义上说,是用来规范不合格的程序员的一个工具。因为要划一条线,必然会错杀一二,请把代码规范作为自己的基本要求,并深刻理解为什么有这些代码规范和其使用场景,而不是把遵守代码规范作为最终目标。
分享到:
相关推荐
本书《轻松Scrum之旅:敏捷开发故事》就是基于敏捷开发思想的实践经验,讲述了一个外企的一个新团队如何从零开始实施敏捷,经历挫折、失败、进步、成长,直到项目成功结束的故事。本书的创作完全是由 4 位作者共同...
敏捷开发是一种强调快速迭代和持续交付价值的软件开发方法论,其核心在于创造适应性强、高效响应变化的环境,从而帮助团队更好地满足客户需求和应对市场挑战。Scrum是敏捷开发中最流行的一种框架,它提供了一套完整...
过长的开发周期、超出预算的开发成本、令人担忧的 软件质量、频繁流动的开发人员、官僚的体系制度、迅速变化的市场环境等因素, 让繁冗、笨重的软件开发过程越来越不能适应现实的需要,软件项目的失败率很高。 敏捷...
5. **用户故事和冲刺**:敏捷方法中的用户故事与asp.net的页面和功能映射,冲刺则对应于开发周期,便于管理和跟踪进度。 **敏捷开发实例** 压缩包中的“敏捷开发实例”可能包含了实际的asp.net项目代码,这些代码...
- **特色**:结合真实案例与故事,以小说形式展现敏捷开发的实践过程,兼具趣味性和知识性。 - **目标读者**: - 对敏捷开发感兴趣的初学者; - 正在寻找改进软件开发流程的企业和个人; - 想要了解外企工作模式...
敏捷开发--用户故事参考.pdf
Twine引擎开发:故事节点与路径设计_(10).多结局故事设计.docx Twine引擎开发:故事节点与路径设计_(11).利用变量与宏增强故事互动性.docx Twine引擎开发:故事节点与路径设计_(12).嵌入多媒体元素提升故事...
inkle引擎开发:高级故事编辑技巧_1.inkle引擎概述与高级故事编辑背景.docx inkle引擎开发:高级故事编辑技巧_10.优化故事性能与内存管理.docx inkle引擎开发:高级故事编辑技巧_11.用户界面定制与交互设计.docx ...
inkle引擎开发:故事编写与结构设计_(10).角色对话与互动设计.docx inkle引擎开发:故事编写与结构设计_(10).资源管理与优化.docx inkle引擎开发:故事编写与结构设计_(11).事件触发与处理机制.docx inkle引擎...
Quest引擎开发:故事逻辑与房间设计_(10).谜题与挑战设计.docx Quest引擎开发:故事逻辑与房间设计_(10).高级房间设计技巧:优化与动态变化.docx Quest引擎开发:故事逻辑与房间设计_(11).故事逻辑的调试与...