C++程序设计陷阱读书笔记(一)
2015-09-26 22:21
295 查看
差不多有三年没系统地温习C++程序设计了,但面试官问起这方面的知识时,我有种恍然隔世的感觉。年龄越大越难静下心来读完一本专业书,越学心越浮躁。将所看所思记录下来能稍微提高一下学习效率。下面是我读了这本书之后,联系平常的日常工作所获得的一些感悟。
1、注释很重要,注释不是越多越好,如果代码本身就具有很好的可读性,那就不用画蛇添足了。我曾经接手过两个软件。一个软件A几乎没有任何注释,很多人都动过里面的代码,且代码风格各成一体。另一个软件B在数据结构定义部分写了很详细的说明,代码也很优雅。我每次读软件B的代码时,心情很舒畅,也愿意去花些心思重构代码,不糟蹋代码的美感。对于软件A的代码,我实在不想继续维护下去,当老师说让我停止维护它时,我觉得我解脱了。注释很重要,代码规范很重要,代码可读性很重要!
2、少使用魔数。我工作中曾碰到要对四类数据进行操作的问题。第一版的解决方案是用0表示第一类,1表示第二类,依次类推。然后我就看到代码中到处是0,1,2,3的数字,一会儿又忘记含义了,又要去前面查看。第二版的解决方案是用枚举类型表示四类,四类都有自己的名字了,一看就知道谁是谁,不会认错了。另外,用初始化常量去取代数字也能增强代码可读性。其优点至少有两个:1、常量名称可以告诉你这个数的含义,并减少数字的二义性。如果使用魔数,有可能出现此处的10和别处的10含义不一样的情况,而使用常量可以唯一标识一个含义。2、当你想修改常量时,只要在初始化的地方稍作修改,而不要修改代码中所有用到这个常量的地方。
1、注释很重要,注释不是越多越好,如果代码本身就具有很好的可读性,那就不用画蛇添足了。我曾经接手过两个软件。一个软件A几乎没有任何注释,很多人都动过里面的代码,且代码风格各成一体。另一个软件B在数据结构定义部分写了很详细的说明,代码也很优雅。我每次读软件B的代码时,心情很舒畅,也愿意去花些心思重构代码,不糟蹋代码的美感。对于软件A的代码,我实在不想继续维护下去,当老师说让我停止维护它时,我觉得我解脱了。注释很重要,代码规范很重要,代码可读性很重要!
2、少使用魔数。我工作中曾碰到要对四类数据进行操作的问题。第一版的解决方案是用0表示第一类,1表示第二类,依次类推。然后我就看到代码中到处是0,1,2,3的数字,一会儿又忘记含义了,又要去前面查看。第二版的解决方案是用枚举类型表示四类,四类都有自己的名字了,一看就知道谁是谁,不会认错了。另外,用初始化常量去取代数字也能增强代码可读性。其优点至少有两个:1、常量名称可以告诉你这个数的含义,并减少数字的二义性。如果使用魔数,有可能出现此处的10和别处的10含义不一样的情况,而使用常量可以唯一标识一个含义。2、当你想修改常量时,只要在初始化的地方稍作修改,而不要修改代码中所有用到这个常量的地方。
相关文章推荐
- c++继承中的构造与析构
- 9.23/9.26强连通分量学习笔记
- 文章标题
- C语言解两个乒乓球队赛事问题
- 无法使用sort给vector排序
- More Effective C++ 条款25 将constructor和non-member function虚化
- c++ 日志类 线程安全+缓存
- C语言程序初体验-第十一课-第二题:分离浮点数的整数和小数
- C++中利用libxl操作Excel表格
- Python与C/C++ 代码互调
- [C++]memcpy 小记
- [C++]memcpy 小记
- c++设计模式-----中介者模式Mediator
- 关于素数判定的算法优化
- 《Effective C++》读书笔记(四)
- 浅谈C/C++的浮点数在内存中的存储方式
- C/C++中获取数组的长度
- C语言卷积和C语言互相关:数字信号处理中的卷积和互相关的C语言代码
- 详解C++右值引用
- 浅谈 C++ 中的 new/delete 和 new[]/delete[]