【死代码】(Dead Code)和【夸夸其谈未来性】(Speculative Generality)-如何解决被遗弃不用的代码以及暂时未被使用,但之后存在规划的代码?
死代码
●症状和特点
一个变量、参数、字段、方法或类不再被使用(通常是因为它们已经过时)。
●问题产生的原因
当对软件的需求发生变化或做出更正时,没有人有时间清理旧代码。
当其中一个分支(由于错误或其他情况)变得不可达时,也可以在复杂的条件语句中找到这样的代码。
●解决方法
找到死代码的最快方法是使用一个好的IDE。
●删除不需要的代码和文件。
●在不必要的类的情况下,如果使用了子类或超类,则可以应用内联类法或折叠层次结构法。
●要删除不需要的参数,请使用删除参数。
●好处
减少代码大小。代码维护更容易。
夸夸其谈未来性
●症状和特点
有一个未使用到的类、方法、字段或参数。
●问题产生的原因
有时创建代码是“以防万一”,以支持预期的未来功能,但这些功能永远不会实现。结果,代码变得难以理解和支持。
●解决方法
●要删除未使用的抽象类,请尝试折叠层次结构法。
●通过内联类法可以消除不必要的对另一个类的功能委托。
●未使用的方法吗?使用内联方法法去除它们。
●带有未使用参数的方法应该考虑删除参数法。
未使用的字段可以简单地删除。
●好处
减少代码大小。代码维护更容易。
●何时应该忽略
●如果您正在开发一个框架,那么创建框架本身不使用的功能是非常合理的,只要这些功能是框架用户所需要的。
●在删除元素之前,请确保它们没有在单元测试中使用。如果测试需要一种方法从类中获取某些内部信息或执行与测试相关的特殊操作,就会发生这种情况。
【死代码】(Dead Code)和【夸夸其谈未来性】(Speculative Generality)-如何解决被遗弃不用的代码以及暂时未被使用,但之后存在规划的代码?相关推荐
- 代码坏味道 之 13 夸夸其谈未来性 speculative generality
<重构:改善既有代码的设计>中提到过一些代码的坏味道,针对这些坏味道,需要进行重构. 夸夸其谈未来性 speculative generality 问题1:未来可能要做某事,使用很多特殊情 ...
- 代码坏的味道13:夸夸其谈未来性(Speculative Generality)
如果你的某个抽象类其实没有太大作用,请运用 Collapse Hierarch (折叠继承体系).不必要的委托可运用 Inline Class (将类内联化)除掉.如果函数的某些参数未被用上,可对它实 ...
- 代码的坏味道之十三 :Speculative Generality(夸夸其谈未来性)
这个令我们十分敏感的坏味道,命名者是Brian Foote.当有人说『噢,我想我们总有一天需要做这事』并因而企图以各式各样的挂勾(hooks)和特殊情况来处理一 些非必要的事情,这种坏味道就出现了.那 ...
- 3.13 speculative generality (夸夸其谈未来性)
如果所有装置都会被用到,那就值得那么做,如果用不到,就不值得.用不上的装置只会挡你的路,所以,把它搬开. 如果某个抽象类其实没有太大作用,请运用collapse hierarchy,不必要的委托可运用 ...
- 代码坏味道之夸夸其谈的未来性
1.为什么会有夸夸奇谈的未来性呢? 当我们谈到这个问题的时候,我们就要反思在需求理解和设计的时候对程序变动性的理解出现了偏差."哦,我想我们总有一天炫耀做这事儿的"常常是一念之差导 ...
- WPF MVVM 架构 Step By Step(2)(简单的三层架构示例及粘合代码GLUE code)
WPF MVVM 架构 Step By Step(2)(简单的三层架构示例及粘合代码GLUE code) 原文:WPF MVVM 架构 Step By Step(2)(简单的三层架构示例及粘合代码GL ...
- 作为CTO,我为什么必须要求代码进行Code Review!
来源:宝玉 链接:https://cnblogs.com/dotey/p/11216430.html 我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量, ...
- 老板:请将你的代码进行Code Review!
点击上方的终端研发部,右上角选择"设为星标" 每日早9点半,技术文章准时送上 公众号后台回复"学习",获取作者独家秘制精品资料 往期文章 平常,BAT的大佬们都 ...
- Xcode可重用代码块code snippets
一. 关于code snippets 通过Xcode的重用代码块(code snippets)可快速输入预设好的常用代码模板,如通过键入 hystrong 系统会直接替代为 @property(non ...
最新文章
- python写数据结构书_有哪些用 Python 语言讲算法和数据结构的书?
- 这个德国山寨工厂靠抄袭干到240亿,让硅谷恨之入骨
- 【转】Linux Netfilter实现机制和扩展技术
- spring cloud云服务架构 - particle云架构代码结构讲解
- C++之 static 关键字
- 启动Eclipse时,启不起来JVM terminated. Exit code=-1
- Error:Trailing spaces not allowed no-trailing-spaces
- datepick二格式 化时间_同样是持久化,竟然有这么大的差别
- python爬取b站403_使用Python爬取B站全站视频信息
- Atitit.研发管理---TOGAF架构跟 (ADM开发方法)总结
- linux屏保程序,桌面技巧小贴士 Linux下制作屏保程序
- 通信总线模块:RS485、SP3232
- 爱折腾星人必备工具,系统重启还原精灵-影子卫士
- 904L 是一种耐酸不锈钢含低碳
- Java设置时间为0时0分0秒和23时59分59秒
- 密码学常用工具,作图
- panabit之Web认证
- 柠檬班软件测试靠谱吗 全程班毕业后7天就拿到了offer
- Spark - Isotonic Regression 理论与实战
- 戴尔在哪看计算机的显卡,戴尔电脑显卡天梯图,2018dell电脑显卡天梯图新版
热门文章
- oracle 与plc通信,cim系统(com系统和plc的通讯)
- 02 C/C++创建tcl自定义命令
- Java数组初始化, 冒泡排序, 查找
- 计算机符号大写怎么退出,如何输入数字,字母 和 回车换行符,大写字母锁定输入模式怎么退出...
- AD软件PCB快捷键
- ajax异步上传图片文件并将其转换为base64格式
- 在ceph 的admin-node安装calamari详细步骤
- sql和mysql的区别
- 图片存档和通信系统(PACS)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- (Emitted value instead of an instance of Error) postcss-viewport-units: