首页 > 编程语言 >程序员修炼之道阅读笔记

程序员修炼之道阅读笔记

时间:2023-04-20 21:24:16浏览次数:44  
标签:笔记 我们 程序员 编辑器 源码 修炼 UNDO bug 调试

第16节 强力编辑器

1、我们认为你最好是精通一种编辑器,并将其用于所有编辑任务:代码、文档、备忘录、系统管理等等。

进行编辑活动时,你不必停下来思考怎样完成文本操作,编辑器将成为你双手的延伸,键会在滑过文本和思想时歌唱起来。

这就是我们的目标。

2、好的编辑器应该具有这些特性:可配置、可扩展、可编程、语法突显、自动缩进、类IDE特性。

3、编辑器对生产效率是有影响的。试想当我们需要一个字符一个字符或者一行一行移动时,按一次键,就以词,行,块的单位移动,显然效率更高。

4、然后做什么。选一种强大的编辑器,好好学习它。不断学习,减少你敲击的次数。设法扩展它,让它能胜任更多任务。

推荐两款编辑器:vim、Emacs

第17节 源码控制

1、原谅我们犯错的按钮是 UNDO 键,通常他们还支持多级 UNDO 和 REDO。而源码控制系统就相当于一个巨大的 UNDO 键,一个项目级的时间机器。源码控制系统(SCCS)能够追踪你在源码和文档中做的每一项改动。

2、应该总是使用源码控制,即使团队只有你一人,即使项目很小。

3、可以尝试的源码控制系统有 CSV、RCS、ClearCase 等。(那时 Git 还没流行起来)

第18节:调试

1、调试心理学。调试的目的是解决问题,不要因为别人提出 bug 而发起进攻。

2、当你目睹 bug 发生或者看到 bug 报告时,第一反应不要是“那不可能”。很明显已经发生了,把时间用在思考它为什么产生上面。

3、使数据可视化。例如循环引用问题,如果可视化的话可以很轻易地进行排查。

4、跟踪代码。发生 crash 我们能够查看系统的调用堆栈,但这些数据不一定够。对于非 crash 类错误,因为没有抛出,我们甚至不知道发生了什么。所以添加所谓的跟踪日志很有必要,这类日志最好采用统一规范,便于后期我们可以自动解析他们。

5、橡皮鸭,也叫小黄鸭调试法。遇到无法定位的问题时,对着小黄鸭(屏幕)解释自己的实现逻辑,很可能在说的过程中你自己就发现了问题所在。

6、不要第一时间怀疑 OS,IDE,三方库的问题,他们出问题的概率比你代码出问题概率小得多。我们应该首先确认和排查自己的问题。

7、对 bug 原因进行复盘。修复了一个 bug,不要就让它结束了,想一下,为什么它会出现了,如何避免。定位过程如果耗时较长,也需要复盘下为何花费了那么长时间,以及后续如何优化。

 

标签:笔记,我们,程序员,编辑器,源码,修炼,UNDO,bug,调试
From: https://www.cnblogs.com/bu-dao-weng/p/17338380.html

相关文章

  • 程序员面试金典---11
    魔术索引思路:直接代码functionfindMagicIndex(nums){leti=0if(!nums.length){return-1}else{while(i<=nums.length&&i!==nums[i]){i++}letmin=i>nums.length?-1:i......
  • 人月神话读书笔记02
    我过去是怎么做的:单纯把编程作为工作这样做为什么不好:没有乐趣就没有动力解决办法:第一章焦油坑编程系统产品只有编程系统产品才是真正有用的产品,是大多数系统开发的目标。职业的乐趣创建事物的纯粹快乐;eg:当自己写完第一个helloworld时候的欣喜来源于开发对......
  • 人月神话读书笔记03
    本次阅读第七章 我过去是怎么做的在编程之前没有清晰的目标,写到什么就去做什么这种做法为什么不好思路不够清晰,导致编程没有逻辑性如何解决:7.为什么巴比伦塔会失败?关于巴比伦塔的故事:维基百科TowerofBabel7.1巴比伦塔的管理教训据《创世纪》记载,巴比伦塔是人类继......
  • 梦断代码读书笔记2
     第五章中作者提到了OSAF办公室里的两条狗,他们是项目的吉祥物,也是很多人工作之余的放松。随着项目人数的增多,对狗的管理也提上了日程,这一过程中,作者发现了管理的程序员和管理狗的相似之处。人们用动物术语讨论管理程序员时,通常比作“管理猫群”。初读时,我感到十分的不适,辛苦的程......
  • Java学习笔记(二)
    1.请描述标识符的命名规则答:(1)由26个英文字母大小写,数字,_或$组成。(2)不能以数字开头。(3)不能使用关键字和保留字(指已经定义过的变量),但是可以包含关键字和保留字。(4)严格区分大小写,无长度限制。(5)不能有空格。2.请描述数据类型存在的意义数据有明确的类型划分,为了确保变量保留的......
  • Java学习笔记(一)
    1、JDK,JRE,JVM三者之间的关系、答:JDK是编译环境,集成了JRE和一些JAVA开发工具包。JRE是运行环境。JVM是一种平台软件,负责将字节码文件解释成机器码并提交操作系统执行。将.class文件解释并提交操作系统。2、为什么要配置环境变量配置环境变量:为了在系统中的任何位置都可以访问jdk......
  • 有理想的程序员必须知道的15件事
     评:作为程序员,要取得非凡成就需要记住的15件事。1.走一条不一样的路在有利于自己的市场中竞争,如果你满足于“泯然众人矣”,那恐怕就得跟那些低工资国家的程序员们同场竞技了。2.了解自己的公司以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看,这一点所言不虚。不同公......
  • 长链剖分学习笔记
    一些定义重子节点表示其子节点中子树深度最大的子结点如果有多个子树最大的子结点,取其一。如果没有子节点,就无重子节点。轻子节点表示剩余的子结点从这个结点到重子节点的边为重边到其他轻子节点的边为轻边若干条首尾衔接的重边构成重链把落单的结点也当作重链,那么整棵......
  • 51单片机学习笔记 STC89CRC (03)蜂鸣器和三级管
    蜂鸣器根据工作原理的不同可分为"电磁式蜂鸣器"和"压电式蜂鸣器"蜂鸣器根据驱动方式可分为"有源蜂鸣器"和"无源蜂鸣器"有源蜂鸣器:一通电就会叫无源蜂鸣器:必须用2k~5k的方波去驱动它 三极管直插式封装TO-92:面向三极管平的一面,从左往右数1.发射极2.基极3.集电极......
  • C++黑马程序员——P185-188. STL初识
    P185.STL初识——STL的基本概念P186.STL初识——vector存放内置数据类型P187.STL初识——vector存放自定义数据类型P188.STL初识——容器嵌套容器P185.STL的基本概念STL,StandardTemplateLibrary,标准模板库STL:为了提高代码的复用性,提供一套标准的数据结构和算法STL......