代码坏味道 之 9 基本类型偏执 primitive obsession
《重构:改善既有代码的设计》中提到过一些代码的坏味道,针对这些坏味道,需要进行重构。
基本类型偏执 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相关推荐
- 代码坏味道之代码臃肿
:notebook: 本文已归档到:「blog」 翻译自:sourcemaking.com/refactoring- 代码臃肿(Bloated)这组坏味道意味着:代码中的类.函数.字段没有经过合理的组 ...
- 25种代码坏味道总结+优化示例
前言 什么样的代码是好代码呢?好的代码应该命名规范.可读性强.扩展性强.健壮性......而不好的代码又有哪些典型特征呢?这25种代码坏味道大家要注意啦 1. Duplicated Code (重复代 ...
- 25 种代码坏味道总结+优化示例
作者 | 捡田螺的小男孩 责编 | 欧阳姝黎 前言 什么样的代码是好代码呢?好的代码应该命名规范.可读性强.扩展性强.健壮性......而不好的代码又有哪些典型特征呢? Duplicate ...
- 代码坏味道之非必要的
:notebook: 本文已归档到:「blog」 翻译自:https://sourcemaking.com/refactoring/smells/dispensables 非必要的(Dispensab ...
- 代码 | 一天一点代码坏味道(1)
[代码精进]| 总结/Edison Zhou 作为一个后端工程师,想必在职业生涯中都写过一些不好维护的代码.本文是我学习<代码之丑>的学习总结,今天第一天发车,先来看看在命名上的一些常犯的 ...
- .NET代码质量 | 一天一点代码坏味道(4)
[代码精进]| 总结/Edison Zhou 作为一个后端工程师,想必在职业生涯中都写过一些不好维护的代码.本文是我学习<代码之丑>的学习笔记,今天最后一天,一起品品滥用控制语句的味道,再 ...
- .NET代码质量 | 一天一点代码坏味道(3)
[代码精进]| 总结/Edison Zhou 作为一个后端工程师,想必在职业生涯中都写过一些不好维护的代码.本文是我学习<代码之丑>的学习笔记,今天第三天,品品大类和长参数列表的味道. 上 ...
- java 代码坏味道_代码中的坏味道
前言 在日常生活中,当我们买的水果放久了之后会发出一种难闻的气味("坏味道"),这个时候我们就应该把它扔掉.同样,代码也有"坏味道",当然确定什么是和不是代码& ...
- java滥用接口_吐槽一下项目中的代码坏味道:滥用java常量
我们的项目中是否充斥着类似以下的代码呢?定义一个专门存放常量的java类(接口),非常多其它类依赖该常量类. public interface IConstant { int ZERO = 0; St ...
- 讲点码德!避免这些代码坏味道,努力做一名优秀的程序员
Martin Fowler:任何一个傻瓜都能写出计算机可以理解的代码.唯有写出人类容易理解的代码,才是优秀的程序员. 大家闭着眼睛想一下什么是好代码?也许你的脑海中漂浮着一堆词:干净.整洁.命名规范. ...
最新文章
- sql server 经典SQL——分组统计
- Subversion权限详解
- 【批处理学习笔记】第二十四课:直接传递
- win8.1 mysql使用教程_windows下mysql 8.0.12安装步骤及基本使用教程
- 【算法入门】动态图展示 6 个常用的数据结构,一目了然!
- C++学习笔记:类的成员函数的声明与定义
- Win8离线安装.net framework组件
- mysql根据idb还原数据_mysql通过idb文件,恢复数据库
- (转)淘淘商城系列——发布dubbo服务
- explict关键字
- 注意!下个月开始 GitHub 新建存储库的默认分支就不叫“master”了!
- STM32寄存器操作端口模式SDA_OUT()/SDA_IN()
- C++中名字隐藏,名字查找优先于类型检查
- 腾达无线路由器如何开启无线中继功能
- python学习笔记(8)
- vba 更新mysql数据库_使用VBA中的UPDATE SQL语句更新Access数据库
- 使用 HTML CSS 编辑静态网页
- 抖音python广告用的什么音乐_被抖音捧火的几首纯音乐,都是你们要的原版,太震撼人心!...
- JAVA毕业设计装修设计管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库
- 如何给MFC对话框添加背景图片
热门文章
- 谷歌浏览器 performance 详解
- html数独游戏源代码,数独算法及源代码
- maxwell采集mysql binlog 日志数据到kafka topic
- 学习要趁早年轻要挣钱
- spark读取esField ‘xx‘ not found; typically this occurs with arrays which are not mappedas single value
- 自学python的痛楚,来报团报吧
- 大规模图算法在京东广告的实践
- 体百味人生,感产品之道
- 多项式的乘法满足结合律和交换律
- flappy brid