读书笔记第四周 《代码大全》
由于这周有个人大作业,所以我一边写大作业,写累了就看《代码大全》,我粗略地翻了一下有关前期准备的部分,重点看了调试和修改错误的部分。感觉看完之后,今天和昨天的调试效率要高的多,这种"做中学,学中做"的方式还是很不错地,知行合一:将知识应用到实践,使得实践能力提高。另一方面,实践也更有助于对晦涩的理论的理解。
首先是前期准备,概括一下就是你要明确你需要完成的需求,为此你要设计什么样的框架功能模块来解决,否则你写起代码来很容易没有方向感。为了更加明确怎么写这份代码,你应该"先让战争发生在头脑中",可以把自己的想法写下来,这样思路会更加清晰,为了更好地安排时间,你也应该提前有所规划。下面是我的一些规划和写代码前的思路。
1.写一段就测试一下。如果写一大段再调试,往往会出不少错,你又不知道错在哪。
2.不要依赖编译器调错。在编译之前,自己先看看代码,很多低级错误就能找出来了,这样大大地提高了编程效率。
我重点看了关于调试的部分:
其中有几个我觉得很重要的建议:
第一是在动手之前,需要理解问题,而且要理解程序本身。让自己代码一塌糊涂的最好办法,就是不懂装懂地动手修补程序,这样只会更糟。另一方面,理解全局也比理解局部往往更加高效。
第二是放松的重要性。匆忙动手往往导致草率判断,片面分析,并不彻底的改正。压力通常来源于自身:压力过大往往导致程序员采用随机测试。这本书提到Windows 2000开发的最后阶段,修补最后错误的程序员在debug之前,先去玩了一下篮球。因为他觉得他压力太大的情况下,没法考虑所有需要考虑的问题。这点我很有同感,这两天我在写这个大作业的时候,写不下去出去跑跑步,稳定了情绪之后,往往效率也高了上去。这就是磨刀不误砍柴工。
最后是一次只做一个改动。因为同时修改两个错误,所做的修改可能引入微妙的错误。这些错误耦合起来,可能会导致程序陷入焦油坑。
转载于:https://www.cnblogs.com/ustcldq/p/8666918.html
读书笔记第四周 《代码大全》相关推荐
- 读书笔记:《代码大全2》
本书在笔者实习时就已经开始阅读,按照自己的所处阶段有间隔的分成了3次阅读,一直到现在终于完成了.读者千万不要认为这本书真的只是"代码大全",在我看来,这本书就是软件工程师的心法,提 ...
- 读书笔记:《代码大全第2版》软件行业应有的性格
人的性格对其编程能力有直接影响. 好性格与培养正确的习惯关系甚大.要成为杰出的程序员,先要养成良好习惯,其他自然水到渠成. 聪明与谦虚 按照一定的原则,降低程序的复杂度,减少大脑的负荷,就能够在软件开 ...
- 【读书笔记】——《代码大全》(一)
Welcome to Software Construction 之前总听到老师.师兄谈到构建.重构之类的词语,一直认为"构建"就是"编码".读完了第一章,才对 ...
- 读书笔记:《代码大全第2版》布局与风格
文章目录 类的布局 注释 自说明代码 傻瓜都能写出计算机可以读懂的代码,只有优秀的程序员才能写出人能读懂的代码. 类的布局 接口的布局顺序 描述类的作用和用法的注释 构造函数 public方法 pro ...
- 读书笔记:《代码大全第2版》 07.变量
文章目录 1.使用变量的一般事项 1.1 变量初始化原则 1.2 作用域 1.3 变量的单一职责 1.3.1 每一个变量只用于单一用途 1.3.2 避免让代码具有隐含含义 1.3.3 确保使用了所有已 ...
- 读书笔记:《代码大全第2版》软件工艺
征服复杂度 软件开发的核心是降低复杂度 降低复杂度的方法 将系统拆分成多个子系统 设计抽象的接口,隐藏底层细节(抽象最能降低复杂度) 避免使用全局变量 避免深层次的继承 避免深度嵌套的循环或条件判断 ...
- 读书笔记:《代码大全第2版》 01.打好基础
文章目录 前言 理解软件开发 软件开发经历 建筑过程与软件工程 前期准备 前期准备的意义 前期准备的工作 明确软件类型 问题定义 需求分析 架构设计 前期准备工作不周全的原因 在构建期间处理需求变更 ...
- 读书笔记:《代码大全第2版》 08.语句
文章目录 1.直线型代码 2.条件语句 2.1 if-else 语句 2.2 if-else if 语句 2.3 case语句 3.表驱动法 4.一般控制问题 4.1 布尔表达式 4.2 空语句 4. ...
- 读书笔记:《代码大全第2版》 02.创建高质量的代码之软件构建中的设计
文章目录 软件构建中的设计 1.软件设计的特征与挑战 2.管理复杂度 3.好的设计所具有的特征 4.软件设计的层次 5.软件设计方法 5.1 找出现实世界中的对象 5.2 形成一致的抽象 5.3 封装 ...
- 读书笔记:《代码大全第2版》 04.创建高质量的代码之高质量的方法
文章目录 高质量的方法 1.创建方法的理由 2.内聚性(cohesion) 3.方法命名 4.方法参数 5.总结 高质量的方法 1.创建方法的理由 降低复杂度 引入中间的,易懂的抽象 避免代码的重复 ...
最新文章
- 模板方法模式与策略模式的区别
- ggplot2可视化水平箱图并使用fct_reorder排序数据、使用na.rm处理缺失值(reorder boxplot with fct_reorder)、按照箱图的中位数从小到大排序水平箱图
- 从零开始的AI·决策树原来这么好理解(附实例代码)
- 画面逐渐放大_日本80后画“人体妖女”,画面诡异,放大10倍越看越可怕
- Python连接字符串用join还是+
- Jquery中正确使用trim方法以及避免遇到坑
- 程序员面试金典 - 面试题 02.03. 删除中间节点
- oracle test传入参数,oracle存储过程,test(测试)时传自定义类型参数问题
- SpringCloud工作笔记084---SpringCloud项目中,关于防止表单提交_使用redis+Aspect面向切面实现
- i219v微星 驱动_适用于WinPE的I219V英特尔驱动程序
- 关于Linux SHELL 的编程的几个练习(课本182页5-10题)
- 重SQL开发和重 Java开发比较
- 舒尔特表-计时开始-暂停-继续 js
- 近世代数--陪集--|左陪集|=|右陪集|
- 计算机桌面图标如何变小,电脑屏幕图标怎么变小_桌面图标太大怎么调小
- 使用Java编写爬虫,下载百度图片
- 有影响力的数据挖掘软件列表
- 【转载】Python遍历pandas数据方法总结
- python调用谷歌翻译__201907
- React使用TS模板脚手架报错:声明了“ React”,但从未读取其值