第九周读书笔记
这周我的阅读书目是《编程匠艺》,像大多数有关书目一样,该书从围绕着如何编写优美的代码进行了讨论,我着重看了书中关于防御性编程和代码优化两个部分,这两个部分也是我们在该课程中可以说是最主要的两个方面。
1、关于防御性编程:
用书中一句让人觉得可笑却又不得不认同的话引入,就是“所有你觉得有可能出错的地方就一定会出错”,虽然这句话有片面性,但是我们不得不承认作为一个程序员或者即将成为程序员的人来说,简直是至理名言。我理解防御性编程,就是在编写的过程中将犯错误的可能性消除,用老师的话说就是将bug扼杀在娘胎中。虽然编写代码时考虑太多会耽误一点时间,但是这些都是为了节省debug的时间,这话是有道理的,但仔细一想却又是模糊不清的,写代码时要考虑到什么样的程度,怎么避免“太过谨慎”,比如写一行无关紧要的代码,却仔仔细细看了十几遍,这自然是划不来的。所以我感觉也并不是说作者强调的是代码写的时间越长,出错的可能性就越低,作者的意思应当是写代码不要过于追求速度,应当保持平和的心态,在做任何新的代码结构方面的构思时,应当深思熟虑,最少要三思而后码。当做到这几点时,再花更多的时间也就已经没有太多意义了。
2、代码优化的问题:
优化通常的意思就是让代码运行的更快,减少存储的开销,也即提高代码的质量。但是书中也给出了某些专家关于优化的传统观点:对于一般程序员,不要做优化;对于专家,也还是不要做优化。虽然现在的计算机在运算能力上和内存管理上都已经有了极大的进步,我们的优化看起来就没有什么太大的价值了,起始我感觉不尽然,优化能力一方面是程序员技能的体现还有就是做好优化是一种习惯,可以使团队工作的效益得到提升。时间上的优化节约了团队工作时间,内存上的优化也避免了以后工作中因为内存而产生的bug。但是那么多人不建议进行优化就说明优化必定是存在一些负面影响的,比如降低了代码的可读性,使代码变得更加难以维护,所以优化时还是要非常的慎重。