《程序员修炼之道》这本书后面一部分则是更深入、更具体、更细致地就程序员应该注意的事项做一些讨论,书中说的很多在过去的经历中都有较深的体会,同时也给了我很多启发。
以下是一些我感悟较深的点:

1、工匠与工具
    工匠在使用工具的过程中,二者互相磨合,工具甚至变成了工匠双手的延伸。这就好像我们学习与适应的过程。在学习初始阶段,我们先精心挑选我们的工具。然后在使用这些工具时,不断地熟悉,不断地适应,工具成为你的大脑的一部分,它能放大你的才干。
但是我们不能总局限于单一的工具,虽然有些工具看起来通用,但是当遇到一些特殊需求时,我们要像工匠学习,定期增加工具。就我自身而言,这方面我就做的不够好。我个人就属于习惯于一种后就不太愿意更改的人。这一点不是很好,我们要乐于超越工具(如IDE)施加的各种性质。
    2、纯文本
    纯文本有很多好处,首先纯文本格式不仅可以被机器理解,也是人可以理解的格式,这也就意味着它能够保存更久。
其次,纯文本格式具有简单性,它也更易于测试。我们可以很轻松的增加、修改测试数据,也可以轻松地分析回归测试输出的结果,或使用一些脚本工具进行彻查。
    3、源码控制系统
    我们应该总是使用源码控制系统。因为我过去没有进行过团队编程项目,对一些源码控制相关的工具也不是很了解。通过近期的认识,我愈发觉得源码控制系统非常重要。它能帮助你对比不同版本直接的对比,帮助你返回之前的版本等。
    团队项目,不论大小,都应该使用源码控制系统。虽然看起来有时候有些麻烦,但是养成习惯后对你整个项目都有非常大的帮助。
    4、调试bug
    我摘下了书中引用的这句话:
    “看着你自己的烦忧,并且知道不是别人、而是你自己一人所致
                                                                  ——索福克勒斯:《埃阿斯》”
    (1)接受事实
    首先我们要接受这个事实。Bug已经出现了,你要做的失去解决它。而调试就是解决问题,我们要据此发起进攻。
    (2)恰当的思维方式
    其次,恰当的思维方式非常重要。不要恐慌,恐慌不能解决任何问题。更不要浪费时间在觉得那不可能上,因为事实就是,这个程序已经错了。在学习C语言或者数据结构的时候,无论是平时上机实验,还是大作业,总会有或多或少的bug。而每当遇到bug,总是调试不出来时,我确实非常容易陷入焦虑情绪。因为在我自己看来,程序完全没问题啊。但是错误的运行结果又确确实实摆在眼前,只能硬调。
    (3)小心近视
书中还提醒我们要“小心近视”。因为有时bug可能是在你以为的地方几步远的地方。而如果总是陷在一个点中,就会像我有时调试bug一样,调试几个小时,结果发现只是一个小小的变量打错了。
    (4)再现bug
要真正解决bug,我们要有能力将bug再现,也就是说我们要知道bug是怎么出现的。只有知道它是怎么出现的,我们才能学会避免它。
    (5)橡皮鸭
    这个概念,是我在数据结构课在大佬们的讨论中第一次听说的。调试bug一个很有效的办法就是向别人解释你的代码,往往在你解释的过程中,你就能发现bug所在。因为bug出现一定是和你的逻辑有关的。如果我们能够从头按正确的逻辑梳理一遍代码,很大概率能发现代码的漏洞。
    (6)不要假定,要证明
    不要轻易下结论“这不可能”,不要轻易放弃任何微不足道的地方。不要理所当然地去假定,而应该去证明它。
    (7)让下次修复更容易
    修复完bug后,我们需要想想,我们可以做些什么,让下次修复更容易。比如书中提到的内建更好的测试挂钩,或是编写日志文件分析器。
    (8)早崩溃
    让程序崩溃是你的最佳选择。这句话虽然单看有些怪,但就程序而言,一个死程序带来的危害要远远小于一个有病患的程序。

软工读书笔记 week2的更多相关文章

  1. 软工读书笔记 week 9 ——《构建之法》

    软工读书笔记  week 9                 ——<构建之法> 最近的三周我们正式开始我们的项目.然后我也把<构建之法>中的相关章节再拿出来读了一番.以下是一些 ...

  2. 软工读书笔记 week 5 ——《构建之法》

    本周主要对<构建之法>中的一部分进行阅读. 一.软件与软件工程究竟是什么? 本书的概论部分就指出“软件 = 程序 + 软件工程”.而我们这门课的名字就叫“现代软件工程”.其实在上课之前,我 ...

  3. 软工读书笔记 week 8 —— 《疯狂的程序员》

    这次接着上一次的进度继续阅读,并将其中感悟较深的几点记录如下.      程序员是一个幕后工作者 书中绝影给医院写软件,而医生(用户)只是评价这个软件好不好用,而不会去评价写这个软件的程序员优不优秀. ...

  4. 软工读书笔记 week4 ——《黑客与画家》下

    因为时间有限,只对书中后半部分几个篇章进行了阅读.        一.另一条路       作者以他自己为例,在那个没人知道什么叫“软件运行在服务器时”的时代,他和朋友选择创业时,没有选择写传统的桌面 ...

  5. 软工读书笔记 week 1

    这次读书笔记主要是就<程序员修炼之道>这本书的前半部分做一些总结以及发表一些自己的看法. 本书前面的一部分主要是一些程序员应该在工作中时刻注意的事情,一些关键的信息如下: 1.处理问题的态 ...

  6. 软工读书笔记 week 7 ——《构建之法》

    总时长近两周的结对项目终于算是结束了,马上要重新开启团队项目.于是这几天决定对<构建之法>一书中与团队项目及需求分析有关的章节进行重点阅读,希望能够从中得到启发,并运用到接下来的团队项目中 ...

  7. 软工读书笔记 week 6 ——《疯狂的程序员》Part 1

    这本小说以主人公绝影上大学后初次接触编程开始讲起,这周主要看的就是绝影还在大学的那段经历,虽然故事背景很多年前,但很多地方仍然会引发我的共鸣. 第一个梦想 在“第一个梦想”一节讲了作业布置做一个通讯录 ...

  8. 软工读书笔记 week3 (《黑客与画家》上)

    一.何谓黑客? 黑客,在我们大多数普通人眼里,就是入侵计算机的人,通常还与干坏事挂钩.而书中告诉我们,这 并不是它的真正含义.而要想理解这本书,就要首先理解什么是黑客. 黑客这个词最初起源时,完全是一 ...

  9. 《代码大全2》读书笔记 Week2

    <代码大全2>第四.五章 第四章“关键的‘构建’决策”主要有以下三要点:1.每种编程语言都有优点和缺点,程序员应根据需要选择编程语言,尽量选择熟悉的语言以提高生产效率.作为一种表达工具,编 ...

随机推荐

  1. springcloud(七)-Feign声明式REST调用

    前言 前面我们使用的RestTemplate实现REST API调用,代码大致如下: public User findById(@PathVariable Long id) { return rest ...

  2. dubbo服务引用与集群容错

    服务引用无非就是做了两件事 将spring的schemas标签信息转换bean,然后通过这个bean的信息,连接.订阅zookeeper节点信息创建一个invoker 将invoker的信息创建一个动 ...

  3. (转)AIX ODM 简介

    什么是 ODM 原文:https://www.ibm.com/developerworks/cn/aix/library/1105_chenwei_odm/ Windows 的注册表相信大家都知道,是 ...

  4. FX4300超频4.7GHz

    先贴出本人计算机配置: (本人cpu为fx4300,默认频率为3.8GHz) 谨记:超频有风险,很可能烧坏主板.cpu.内存等硬件,特别是增加主板电压时一定一次增加0.025V,不要一次增加太多,并且 ...

  5. spring 线程异步执行

    多线程并发处理起来通常比较麻烦,如果你使用spring容器来管理业务bean,事情就好办了多了.spring封装了Java的多线程的实现,你只需要关注于并发事物的流程以及一些并发负载量等特性,具体来说 ...

  6. 有关索引的DMV

    转自:http://www.cnblogs.com/CareySon/archive/2012/05/17/2505981.html#commentform 有关索引的DMV 1.查看那些被大量更新, ...

  7. 带你走近WebSocket协议

    一.WebSocket协议是什么? WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. 二.那为什么我们要用WebSocket协议呢? 了解计算机网络协议的 ...

  8. Ruby(3):基本语法中

    字符串分割成数组: 可以使用先scan再join的方法,当然其实有更好的 split方法,专门用来分割字符串 # 在Ruby中,如果不使用inspect,直接使用puts输出数组,那么每个元素会占用一 ...

  9. iOS仿今日头条滑动导航

    之前写了篇博客网易首页导航封装类.网易首页导航封装类优化,今天在前两个的基础上仿下今日头条. 1.网易首页导航封装类中主要解决了上面导航的ScrollView和下面的页面的ScrollView联动的问 ...

  10. IOS项目之弹出动画终结篇

    在之前写过IOS项目之弹出动画一.IOS项目之弹出动画二.IOS项目之弹出动画三,今天来一个终极封装已经上传到Github上弹出动画总结篇UIPopoverTableView. UIPopoverTa ...