整洁代码中的魔术值
来源:互联网 发布:介绍花苗可靠的淘宝店 编辑:程序博客网 时间:2024/06/05 20:54
之前在项目上进行《编码规范》培训的时候,发现很多人不清楚魔术值是什么。但是,了解CleanCode,整洁代码的话,一般都比较清楚。比如在《代码整洁之道》这本书中,第二章就出现了关于魔术数的描述。魔术值就是代码中直接出现的数值。从CleanCode的角度来说,肯定是提倡尽量避免代码中出现魔术值的。至于原因,基本上都是其会使代码可读性大大下降。
在之前修订项目上《编码规范》的时候,我们也纠结过,到底要不要将不出现魔术值作为强制性的规范要求,还是仅仅作为推荐或者参考规范,而不强制的推行。后来,因为一次现场质量事故的故障回溯,使得项目上最终决定,将不允许出现魔术值作为强制性的代码规范在全项目推广。
事情的前因后果是这样的:
造成现场严重问题的故障回溯中,我们发现,代码逻辑的边界值没有得到测试覆盖,而在代码走查过程中,参与了代码走查的QA也未能对该边界值提出要进行测试覆盖,同时也没有对应的测试用例来体现,因此问题泄露到了现场。因此,项目上要求,QA在参与代码走查的过程中,必须对常量高度敏感,理解常量的意义,同时要对常量出现的地方评估是否有必要做边界测试,并且同时要编写边界测试用例覆盖。对于代码并不是非常深入熟悉的QA来说,要在代码走查过程中,快速准确的识别出逻辑边界,代码中的魔术值无疑是非常大的绊脚石。因此,强制不允许魔术值的出现,有利于QA在代码中快速识别边界值并了解边界含义,实际上,这也是增加代码可读性的另一种更加务实的体现。
在宣贯项目的《编码规范》过程中,很多同事对这一条规范实际上第一反应都是比较排斥的,这主要是从自身出发考虑问题。但是,我们通常要考虑到其他人,比如模块的备份人员,QA,甚至是在更远的将来需要接手这个模块的同事。
在之前修订项目上《编码规范》的时候,我们也纠结过,到底要不要将不出现魔术值作为强制性的规范要求,还是仅仅作为推荐或者参考规范,而不强制的推行。后来,因为一次现场质量事故的故障回溯,使得项目上最终决定,将不允许出现魔术值作为强制性的代码规范在全项目推广。
事情的前因后果是这样的:
造成现场严重问题的故障回溯中,我们发现,代码逻辑的边界值没有得到测试覆盖,而在代码走查过程中,参与了代码走查的QA也未能对该边界值提出要进行测试覆盖,同时也没有对应的测试用例来体现,因此问题泄露到了现场。因此,项目上要求,QA在参与代码走查的过程中,必须对常量高度敏感,理解常量的意义,同时要对常量出现的地方评估是否有必要做边界测试,并且同时要编写边界测试用例覆盖。对于代码并不是非常深入熟悉的QA来说,要在代码走查过程中,快速准确的识别出逻辑边界,代码中的魔术值无疑是非常大的绊脚石。因此,强制不允许魔术值的出现,有利于QA在代码中快速识别边界值并了解边界含义,实际上,这也是增加代码可读性的另一种更加务实的体现。
在宣贯项目的《编码规范》过程中,很多同事对这一条规范实际上第一反应都是比较排斥的,这主要是从自身出发考虑问题。但是,我们通常要考虑到其他人,比如模块的备份人员,QA,甚至是在更远的将来需要接手这个模块的同事。
阅读全文
0 0
- 整洁代码中的魔术值
- 整洁代码
- 整洁代码
- 代码整洁
- 整洁代码
- 代码整洁
- 整洁代码
- 整洁代码
- 整洁代码----代码格式
- 整洁代码----整洁的测试代码
- [代码整洁之道]-整洁代码
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁之道
- 代码整洁阅读笔记
- 代码整洁之道
- 《代码整洁之道》
- 【模板】哈夫曼树构造
- gantt图demo
- gdb调试多进程、多线程
- csdn 普通编辑器 代码样式 代码高亮 高亮代码皮肤更换
- springboot+mybatis(读写分离)
- 整洁代码中的魔术值
- BFS 版本的匈牙利算法
- 计算机网络中的七层模型
- 算法第4版(谢路云译)学习笔记(1) -- 课后习题答案
- 大讲台 Hadoop 面试过关必备
- Android 蓝牙强度Rssi
- WebAPI Rest机制
- Android使用FFmpeg 解码H264并播放(三)
- P2P 之UDP穿透NAT的原理与实现 whood