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

转载于:https://www.cnblogs.com/ustcldq/p/8666918.html

读书笔记第四周 《代码大全》相关推荐

  1. 读书笔记:《代码大全2》

    本书在笔者实习时就已经开始阅读,按照自己的所处阶段有间隔的分成了3次阅读,一直到现在终于完成了.读者千万不要认为这本书真的只是"代码大全",在我看来,这本书就是软件工程师的心法,提 ...

  2. 读书笔记:《代码大全第2版》软件行业应有的性格

    人的性格对其编程能力有直接影响. 好性格与培养正确的习惯关系甚大.要成为杰出的程序员,先要养成良好习惯,其他自然水到渠成. 聪明与谦虚 按照一定的原则,降低程序的复杂度,减少大脑的负荷,就能够在软件开 ...

  3. 【读书笔记】——《代码大全》(一)

    Welcome to Software Construction 之前总听到老师.师兄谈到构建.重构之类的词语,一直认为"构建"就是"编码".读完了第一章,才对 ...

  4. 读书笔记:《代码大全第2版》布局与风格

    文章目录 类的布局 注释 自说明代码 傻瓜都能写出计算机可以读懂的代码,只有优秀的程序员才能写出人能读懂的代码. 类的布局 接口的布局顺序 描述类的作用和用法的注释 构造函数 public方法 pro ...

  5. 读书笔记:《代码大全第2版》 07.变量

    文章目录 1.使用变量的一般事项 1.1 变量初始化原则 1.2 作用域 1.3 变量的单一职责 1.3.1 每一个变量只用于单一用途 1.3.2 避免让代码具有隐含含义 1.3.3 确保使用了所有已 ...

  6. 读书笔记:《代码大全第2版》软件工艺

    征服复杂度 软件开发的核心是降低复杂度 降低复杂度的方法 将系统拆分成多个子系统 设计抽象的接口,隐藏底层细节(抽象最能降低复杂度) 避免使用全局变量 避免深层次的继承 避免深度嵌套的循环或条件判断 ...

  7. 读书笔记:《代码大全第2版》 01.打好基础

    文章目录 前言 理解软件开发 软件开发经历 建筑过程与软件工程 前期准备 前期准备的意义 前期准备的工作 明确软件类型 问题定义 需求分析 架构设计 前期准备工作不周全的原因 在构建期间处理需求变更 ...

  8. 读书笔记:《代码大全第2版》 08.语句

    文章目录 1.直线型代码 2.条件语句 2.1 if-else 语句 2.2 if-else if 语句 2.3 case语句 3.表驱动法 4.一般控制问题 4.1 布尔表达式 4.2 空语句 4. ...

  9. 读书笔记:《代码大全第2版》 02.创建高质量的代码之软件构建中的设计

    文章目录 软件构建中的设计 1.软件设计的特征与挑战 2.管理复杂度 3.好的设计所具有的特征 4.软件设计的层次 5.软件设计方法 5.1 找出现实世界中的对象 5.2 形成一致的抽象 5.3 封装 ...

  10. 读书笔记:《代码大全第2版》 04.创建高质量的代码之高质量的方法

    文章目录 高质量的方法 1.创建方法的理由 2.内聚性(cohesion) 3.方法命名 4.方法参数 5.总结 高质量的方法 1.创建方法的理由 降低复杂度 引入中间的,易懂的抽象 避免代码的重复 ...

最新文章

  1. 模板方法模式与策略模式的区别
  2. ggplot2可视化水平箱图并使用fct_reorder排序数据、使用na.rm处理缺失值(reorder boxplot with fct_reorder)、按照箱图的中位数从小到大排序水平箱图
  3. 从零开始的AI·决策树原来这么好理解(附实例代码)
  4. 画面逐渐放大_日本80后画“人体妖女”,画面诡异,放大10倍越看越可怕
  5. Python连接字符串用join还是+
  6. Jquery中正确使用trim方法以及避免遇到坑
  7. 程序员面试金典 - 面试题 02.03. 删除中间节点
  8. oracle test传入参数,oracle存储过程,test(测试)时传自定义类型参数问题
  9. SpringCloud工作笔记084---SpringCloud项目中,关于防止表单提交_使用redis+Aspect面向切面实现
  10. i219v微星 驱动_适用于WinPE的I219V英特尔驱动程序
  11. 关于Linux SHELL 的编程的几个练习(课本182页5-10题)
  12. 重SQL开发和重 Java开发比较
  13. 舒尔特表-计时开始-暂停-继续 js
  14. 近世代数--陪集--|左陪集|=|右陪集|
  15. 计算机桌面图标如何变小,电脑屏幕图标怎么变小_桌面图标太大怎么调小
  16. 使用Java编写爬虫,下载百度图片
  17. 有影响力的数据挖掘软件列表
  18. 【转载】Python遍历pandas数据方法总结
  19. python调用谷歌翻译__201907
  20. React使用TS模板脚手架报错:声明了“ React”,但从未读取其值

热门文章

  1. 职务作品的著作权归属情况分析
  2. Hive基本查询语法
  3. Hive 动态分区入门
  4. Windows核心编程_修改U盘图标
  5. Linux-mysql备份
  6. 以终端模式连接远程桌面
  7. 1.13 单用户模式;1.14 救援模式;1.15 克隆虚拟机;1.16 Linux机器相互登录
  8. 图论--最小生成树总结(PrimKruskal)
  9. Nginx静态资源POST请求返回405状态
  10. 库没启动,报:ORA-01034: ORACLE not available