代码大全 读书笔记
由于这周有个人大作业,所以我一边写大作业,写累了就看《代码大全》,我粗略地翻了一下有关前期准备的部分,重点看了调试和修改错误的部分。感觉看完之后,今天和昨天的调试效率要高的多,这种"做中学,学中做"的方式还是很不错地,知行合一:将知识应用到实践,使得实践能力提高。另一方面,实践也更有助于对晦涩的理论的理解。
首先是前期准备,概括一下就是你要明确你需要完成的需求,为此你要设计什么样的框架功能模块来解决,否则你写起代码来很容易没有方向感。为了更加明确怎么写这份代码,你应该"先让战争发生在头脑中",可以把自己的想法写下来,这样思路会更加清晰,为了更好地安排时间,你也应该提前有所规划。下面是我的一些规划和写代码前的思路。
由于这周有个人大作业,所以我一边写大作业,写累了就看《代码大全》,我粗略地翻了一下有关前期准备的部分,重点看了调试和修改错误的部分。感觉看完之后,今天和昨天的调试效率要高的多,这种"做中学,学中做"的方式还是很不错地,知行合一:将知识应用到实践,使得实践能力提高。另一方面,实践也更有助于对晦涩的理论的理解。
首先是前期准备,概括一下就是你要明确你需要完成的需求,为此你要设计什么样的框架功能模块来解决,否则你写起代码来很容易没有方向感。为了更加明确怎么写这份代码,你应该"先让战争发生在头脑中",可以把自己的想法写下来,这样思路会更加清晰,为了更好地安排时间,你也应该提前有所规划。下面是我的一些规划和写代码前的思路。
然后是关于代码编写过程中
1.写一段就测试一下。如果写一大段再调试,往往会出不少错,你又不知道错在哪。
2.不要依赖编译器调错。在编译之前,自己先看看代码,很多低级错误就能找出来了,这样大大地提高了编程效率。
我重点看了关于调试的部分:
其中有几个我觉得很重要的建议:
第一是在动手之前,需要理解问题,而且要理解程序本身。让自己代码一塌糊涂的最好办法,就是不懂装懂地动手修补程序,这样只会更糟。另一方面,理解全局也比理解局部往往更加高效。
第二是放松的重要性。匆忙动手往往导致草率判断,片面分析,并不彻底的改正。压力通常来源于自身:压力过大往往导致程序员采用随机测试。这本书提到Windows 2000开发的最后阶段,修补最后错误的程序员在debug之前,先去玩了一下篮球。因为他觉得他压力太大的情况下,没法考虑所有需要考虑的问题。这点我很有同感,这两天我在写这个大作业的时候,写不下去出去跑跑步,稳定了情绪之后,往往效率也高了上去。这就是磨刀不误砍柴工。
最后是一次只做一个改动。因为同时修改两个错误,所做的修改可能引入微妙的错误。这些错误耦合起来,可能会导致程序陷入焦油坑。
1.写一段就测试一下。如果写一大段再调试,往往会出不少错,你又不知道错在哪。
2.不要依赖编译器调错。在编译之前,自己先看看代码,很多低级错误就能找出来了,这样大大地提高了编程效率。
我重点看了关于调试的部分:
其中有几个我觉得很重要的建议:
第一是在动手之前,需要理解问题,而且要理解程序本身。让自己代码一塌糊涂的最好办法,就是不懂装懂地动手修补程序,这样只会更糟。另一方面,理解全局也比理解局部往往更加高效。
第二是放松的重要性。匆忙动手往往导致草率判断,片面分析,并不彻底的改正。压力通常来源于自身:压力过大往往导致程序员采用随机测试。这本书提到Windows 2000开发的最后阶段,修补最后错误的程序员在debug之前,先去玩了一下篮球。因为他觉得他压力太大的情况下,没法考虑所有需要考虑的问题。这点我很有同感,这两天我在写这个大作业的时候,写不下去出去跑跑步,稳定了情绪之后,往往效率也高了上去。这就是磨刀不误砍柴工。
最后是一次只做一个改动。因为同时修改两个错误,所做的修改可能引入微妙的错误。这些错误耦合起来,可能会导致程序陷入焦油坑。