代码大全读后感(2)
本书的第三部分是变量(我总是搞不懂),这是全书描述的最细微的单元。主要包括如果对变量命名,变量与数据的绑定时间,基本的数据类型以及一些不常见的数据类型,比如指针、全局变量等等。变量命名是有多种方法的,用哪种无所谓,关键是要统一。变量与数据的绑定时间,这个问题我以前没有系统考虑过。书中的观点是绑定时间越滞后,则系统越灵活。这个我赞同。硬编码到程序中的,是直接赋予数值的常量,除非修改源码,否则不变;编译时刻确定的,是一些静态变量;运行时间确定的,就难说了,可能是从I/O获得,也可能是从内存获得。其它是介绍基本数据类型,在此不赘述。下一部分就是语句,语句的重要性不必多说:他是构建程序主体的基本构成单元,比变量又高了一级。这部分主要描述语句的组织结构,比如直线型、循环控制、条件控制、表驱动等。一般的方法比如条件循环等等,大部分情况下可见。表驱动,我是不常见的,应该是对程序逻辑的高度概括,并且高度灵活化。这个只在写编译器课程实践代码的时候简单运用过。第五部分是代码改善(感觉这是本书带给我最重要的一点知识及能力),这部分包括以下几个主题,协同、测试、调试、重构、调整。这里的测试是开发者测试,应该是指单元测试了,现有很多合适的工具,比如NUnit、CppUnit、JUnit等等。调试主要难点在于寻找和定位问题,解决问题虽然也不容易,但需要的是远见,因为再不济,总会存在一种打补丁的方法可以临时解决问题。重构和代码调整是我近期需要关注并且不断提高自己的主题。这两个技术的运用,可以较好的弥补前期代码设计不足所带来的隐患。代码调整的目标是进行性能优化。这需要考虑方法以及后果,书中有一个很重要的观点是,往往表面看起来有效的优化却并不有效,尤其是你看似整洁不重复的代码,却还不如一个重复代码执行效率高。要达到这一步,需要在每次的调整后进行性能测试,以判定性能是否优化。只有不断的去尝试去测试才能出来较好的代码块,就想我记得有位大能说过一个最复杂的程序也能通过最基本的顺序循环和条件来实现,只不过是复杂度不同本学期老师也不断在改变我们固有的思想,想办法来改变程序的时间复杂度来使代码更好。