《编程重构终极问题》是一本关于软件重构过程中常见问题的书籍,它为程序员提供了在重构代码时应避免的错误和解决方案。该书不仅覆盖了基础的重构原则,还涉及到了一些高级的问题和解决方案,为程序员在实际工作中提供指导。 书中的内容包括但不限于以下几个方面: 1. 编译器的工作不应该由程序员来完成,比如,不要试图优化编译器的工作。在重构时,应该注意代码的可读性和可维护性,而不是仅仅关注性能。 2. 在判断一个数大于0时,应避免使用`>= 1`,而是应该用`> 0`,因为有些程序员习惯从0开始计数,这可能会引起误解。 3. 在进行复制操作时,应做到复制一次,检查两次,以确保代码的准确性和稳定性。 4. 警惕三元运算符`?:`的使用,并在使用时用括号包围起来,以避免优先级问题。 5. 利用可用的工具来分析代码,从而发现潜在的问题。 6. 在有指针显式转换为整型的地方要检查,因为这可能隐藏了类型安全问题。 7. 在循环内避免使用`alloca()`函数,因为它可能会导致栈溢出。 8. 在析构函数中抛出异常是危险的,应当避免。 9. 使用`\0`来表示字符串的结束。 10. 避免使用多个小型的`#ifdef`块,应该尽量减少预处理器的使用,以提高代码的清晰度。 11. 在一行中尽可能不要进行太多的操作。 12. 在进行复制粘贴操作时,特别注意检查最后一行代码,以避免遗漏或错误。 13. 使用表格样式的排版来提高代码的可读性。 14. 即使有好的编译器和编码风格,也需要使用枚举类`enum class`。 15. 使用专门的函数来清除私有数据。 16. 从一个构造函数中正确调用另一个构造函数。 17. 检查文件结束符(EOF)是否正确到达。 18. 避免使用`#pragma warning(default:X)`。 19. 自动评估字符串字面量的长度。 20. `override`和`final`修饰符应该成为你的新朋友。 21. 不要再将`this`与`nullptr`进行比较。 22. 注意`VARIANT_BOOL`的隐患。 23. 避免使用宏,尽量使用简单函数。 24. 一个语言中的知识并不总是适用于另一种语言。 25. 在迭代器中使用前缀递增`++i`而不是后缀递增`i++`。 26. 在C和C++中,数组不是按值传递的。 27. 危险的`printf`。 28. 不要对空指针进行解引用。 29. 未定义行为比你想象的更接近。 30. 在枚举中添加新常量后,不要忘记更正`switch`语句。 31. 如果你的电脑出现奇怪的问题,检查内存。 32. 在`do {} while();`循环中要小心`continue`运算符的使用。 33. 使用`nullptr`替代`NULL`。 34. 为什么错误的代码有时候可以工作。 35. 开始使用静态代码分析。 36. 避免使用`Visual C++`和`wprintf()`函数。 37. 在C和C++中,数组不是按值传递的。 38. 对于`enum`添加新的常量时,不要忘记更新`switch`语句。 39. 当在构造函数中使用`new`关键字时,应当考虑异常安全性。 40. 应当注意`Visual C++`中的`wprintf()`函数的行为,因为它和`printf()`在处理宽字符时有所不同。 41. 在处理文件时,不仅仅要检查EOF,还要确保确实到达了文件末尾的字符。 42. 使用专门的函数来清除私有数据,避免直接访问私有成员。 43. 当需要调用一个构造函数时,应该使用初始化列表而非普通的函数调用。 44. 使用静态代码分析工具来提前发现代码中的潜在问题。 45. 在考虑代码重构时,不仅要使用好的编码实践,还应当考虑使用现代的编程特性,如`enum class`,这样可以增强代码的可读性和类型安全性。 这本书为软件开发中的重构问题提供了全面的分析和解决策略,帮助开发人员避开在重构过程中可能遇到的种种陷阱。书中不仅提供了理论知识,还包含了大量的实践案例和技巧,对于希望提高代码质量、进行有效重构的开发人员来说,是一本非常实用的参考资料。
剩余123页未读,继续阅读
- 粉丝: 1
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ORACLE数据库管理系统体系结构中文WORD版最新版本
- Sybase数据库安装以及新建数据库中文WORD版最新版本
- tomcat6.0配置oracle数据库连接池中文WORD版最新版本
- hibernate连接oracle数据库中文WORD版最新版本
- MyEclipse连接MySQL的方法中文WORD版最新版本
- MyEclipse中配置Hibernate连接Oracle中文WORD版最新版本
- MyEclipseTomcatMySQL的环境搭建中文WORD版3.37MB最新版本
- hggm - 国密算法 SM2 SM3 SM4 SM9 ZUC Python实现完整代码-算法实现资源
- SQLITE操作入门中文WORD版最新版本
- Sqlite操作实例中文WORD版最新版本