卓有成效的程序员(笔记)

本文链接: http://51meaning.cn/blog/?p=30 转载请注明转载自:我要MEANING

理论篇

对于程序员更全面的衡量标准,应当是生产率。

程序员的三大美德:懒惰,傲慢,缺乏耐心。

这个班上有些人的电脑压根不是在跑,简直就是在散步。

计算机只是工具,你花越多的时间来关注工具本身,你能完成的工作就越少。

关注本质,而非形式。

华而不实的东西中看不中用。

键盘输入总比导航快。

首选键盘而非鼠标。

高效是习惯养成的。

Fitt定律:“需要移动的距离”和“目标的大小”共同决定了用鼠标点击一个目标的容易程度。

编程时始终优先使用键盘而非鼠标。

不要总是重复输入相同命令。

每天花一点点时间来使每一天都更高效。

一切的要点都在于寻找一种平衡:一方面需要花时间去学习,另一方面这些学习会让你变得更高效。

精力越集中,思维越缜密。

找东西的时间越少,你就能越快把注意力集中到真正需要解决的问题上。

现代社会让我们很难保持专注。但为了充分发挥潜力,你必须根据周围的情况创造出一个能让自己专心工作的空间和环境来,这将极大地提高你的生产率。

计算机原本就该从事简单重复的工作。

不要浪费时间动手去做可以被自动化的事情。

手工执行简单重复的任务会让你变傻,会消耗你的注意力,而注意力是最重要的生产率之源。

以创造性的方式解决问题,有助于在将来解决类似的问题。

一旦某件事需要你做两次,很可能你还需要做100次。

研究性的工作应该放在时间盒里做。(时间盒是必要的)。

自动化过程中要始终牢记你到底要做什么,如果情况开始失控就及时抽身而出。

把重复的工作自动化,就能给你更多时间来做有用的事,而不是一遍又一遍地解决没有价值的问题。

要始终把构建软件所需要的一切事物都保持在版本控制中。

测试代表着软件开发行为中工程式的严谨部分。

把注释重构成方法。

测试是软件严谨性的保障,没有被测试的代码,往往是错误最有可能存在的地方。

有一套强健的单元测试,允许你进行一些“异想天开”的重构游戏。以便在修改一块完全不相关的代码时,对引发的“副作用”毫不知情。

任何少于100%测试覆盖率的代码都处在危险之中。

不要创建全局变量,即使是对象层次的全局变量。

当你尝试去克服一些烂代码的奇怪之处时,你也会为自己的代码平添不必要的复杂性。唯一的做法就是“踢出”烂代码。

将软件从复杂变回简单可能需要花很大。

要是程序员沉溺于预想开发(不管哪种形式),软件的健康一定会大受损害。

如无必要,勿增复杂度。只做当下需要的。熵会杀死软件。

软件开发首先是一场沟通博弈。

奥卡姆剃刀原理:如果对于一个现象有好几种解释,那么最简单的解释往往是最正确的。

迪米特法则:只跟最亲密的朋友讲话。软件中,在调用方法时,永远不要使用一个以上的”点”。

花一些时间去读读那些数十年前就已面世但仍被广泛阅读的软件书籍吧。

对于软件开发中你所做的每一件事,你都要确保明白做这件事的原因。

对于如何开发相关,仅仅因为”我们一直是这样做的”而存在是站不住脚的。

组合方法鼓励把代码构建(或重构)得更简短、精炼、可读性更高。如java方法不超过15行。

计算机语言就像鲨鱼,要是保持静止就会死。

比起命令式语言,函数式语言更容易写出强壮的线程安全的代码。

掌握好正则表达式将为我们节省大量精力。

过于复杂的工具让事情变得更糟。

方法篇

Windows+数字:运行任务栏中对应位置的程序。

Ctrl + 数字:打开浏览器对应标签界面。

切换到地址栏的快捷键是Alt+D,输入一个目录的部分名称,用Tab,就会为你补全。

利用好剪贴板,成批复制粘贴要比反复多次复制粘贴快。

环境切换会消耗时间。

记住历史。

忘记历史就意味着你得再输入一遍。

所有shell 都有一种历史记录机制。

Eclipse的几个快捷键

1)查看当前窗口支持的快捷键: Ctrl+Shift+L

2)最近打开或编辑的文件: Ctrl+E

3)引入变量:Alt+Shift+L(特别赞),是Alt+/的好助手

4)逐级选择:Alt+Shift+↑

5)定位上一级: Ctrl+Shift+↑

为复杂的语言结构生成模板可以在编码时节省你的时间和精力。

当你第二次输入一个复杂结构时,将它做成模板。

Windows中最流行的键盘宏工具:AutoHotKey。

正则表达式是一种极其强大的搜索机制。

当点击命令行窗口时,会发起一次拖曳操作,进而会冻结所有进程(Windows cmd窗口就会是这样)。

可以设置独一无二的前景和背景颜色。这样靠颜色(和位置)来判断用途比细看其中的文字要快得多。

用链接来创建虚拟项目管理目录。

想办法减少自己在文件系统中四下游逛的时间。

虚拟桌面可以让原本杂乱无章的一大堆窗口变得简洁。

可以用Selenium浏览网页,记录操作。

可以使用FindBugs和PMD来为程序寻找bug。

应该养成写测试的习惯:靠严格的单元测试来避免在调试器上浪费时间。

你可能感兴趣的:(优秀工程师必备)