《重构:改善既有代码的设计》中提到过一些代码的坏味道,针对这些坏味道,需要进行重构。
基本类型偏执 primitive obsession

  • 问题1:基本数据类型的参数意义不是很明确

    • 解决方案:利用replace data value with object 将原本单独存在的数据值替换为对象。
    • 解决方案:如果想要替换的数据值是类型码,而它不影响行为,则可以用replace type code with class将它换掉
    • 解决方案:如果你有与类型码相关的条件表达式,可运用replace type code with subclass 或 replace type code with  state/strategy加以处理
    • 解决方案:如果有一组应该总是被放在一起的字段,可运用extract class
    • 解决方案:在参数列中看到基本数据类型,不妨试试 introduce parameter object
    • 解决方案:如果正从数组中挑选数据,可运用replace array with object

代码坏味道 之 9 基本类型偏执 primitive obsession相关推荐

  1. 代码坏味道之代码臃肿

    :notebook: 本文已归档到:「blog」 翻译自:sourcemaking.com/refactoring- 代码臃肿(Bloated)这组坏味道意味着:代码中的类.函数.字段没有经过合理的组 ...

  2. 25种代码坏味道总结+优化示例

    前言 什么样的代码是好代码呢?好的代码应该命名规范.可读性强.扩展性强.健壮性......而不好的代码又有哪些典型特征呢?这25种代码坏味道大家要注意啦 1. Duplicated Code (重复代 ...

  3. 25 种代码坏味道总结+优化示例

    作者 | 捡田螺的小男孩       责编 | 欧阳姝黎 前言 什么样的代码是好代码呢?好的代码应该命名规范.可读性强.扩展性强.健壮性......而不好的代码又有哪些典型特征呢? Duplicate ...

  4. 代码坏味道之非必要的

    :notebook: 本文已归档到:「blog」 翻译自:https://sourcemaking.com/refactoring/smells/dispensables 非必要的(Dispensab ...

  5. 代码 | 一天一点代码坏味道(1)

    [代码精进]| 总结/Edison Zhou 作为一个后端工程师,想必在职业生涯中都写过一些不好维护的代码.本文是我学习<代码之丑>的学习总结,今天第一天发车,先来看看在命名上的一些常犯的 ...

  6. .NET代码质量 | 一天一点代码坏味道(4)

    [代码精进]| 总结/Edison Zhou 作为一个后端工程师,想必在职业生涯中都写过一些不好维护的代码.本文是我学习<代码之丑>的学习笔记,今天最后一天,一起品品滥用控制语句的味道,再 ...

  7. .NET代码质量 | 一天一点代码坏味道(3)

    [代码精进]| 总结/Edison Zhou 作为一个后端工程师,想必在职业生涯中都写过一些不好维护的代码.本文是我学习<代码之丑>的学习笔记,今天第三天,品品大类和长参数列表的味道. 上 ...

  8. java 代码坏味道_代码中的坏味道

    前言 在日常生活中,当我们买的水果放久了之后会发出一种难闻的气味("坏味道"),这个时候我们就应该把它扔掉.同样,代码也有"坏味道",当然确定什么是和不是代码& ...

  9. java滥用接口_吐槽一下项目中的代码坏味道:滥用java常量

    我们的项目中是否充斥着类似以下的代码呢?定义一个专门存放常量的java类(接口),非常多其它类依赖该常量类. public interface IConstant { int ZERO = 0; St ...

  10. 讲点码德!避免这些代码坏味道,努力做一名优秀的程序员

    Martin Fowler:任何一个傻瓜都能写出计算机可以理解的代码.唯有写出人类容易理解的代码,才是优秀的程序员. 大家闭着眼睛想一下什么是好代码?也许你的脑海中漂浮着一堆词:干净.整洁.命名规范. ...

最新文章

  1. sql server 经典SQL——分组统计
  2. Subversion权限详解
  3. 【批处理学习笔记】第二十四课:直接传递
  4. win8.1 mysql使用教程_windows下mysql 8.0.12安装步骤及基本使用教程
  5. 【算法入门】动态图展示 6 个常用的数据结构,一目了然!
  6. C++学习笔记:类的成员函数的声明与定义
  7. Win8离线安装.net framework组件
  8. mysql根据idb还原数据_mysql通过idb文件,恢复数据库
  9. (转)淘淘商城系列——发布dubbo服务
  10. explict关键字
  11. 注意!下个月开始 GitHub 新建存储库的默认分支就不叫“master”了!
  12. STM32寄存器操作端口模式SDA_OUT()/SDA_IN()
  13. C++中名字隐藏,名字查找优先于类型检查
  14. 腾达无线路由器如何开启无线中继功能
  15. python学习笔记(8)
  16. vba 更新mysql数据库_使用VBA中的UPDATE SQL语句更新Access数据库
  17. 使用 HTML CSS 编辑静态网页
  18. 抖音python广告用的什么音乐_被抖音捧火的几首纯音乐,都是你们要的原版,太震撼人心!...
  19. JAVA毕业设计装修设计管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库
  20. 如何给MFC对话框添加背景图片

热门文章

  1. 谷歌浏览器 performance 详解
  2. html数独游戏源代码,数独算法及源代码
  3. maxwell采集mysql binlog 日志数据到kafka topic
  4. 学习要趁早年轻要挣钱
  5. spark读取esField ‘xx‘ not found; typically this occurs with arrays which are not mappedas single value
  6. 自学python的痛楚,来报团报吧
  7. 大规模图算法在京东广告的实践
  8. 体百味人生,感产品之道
  9. 多项式的乘法满足结合律和交换律
  10. flappy brid