第一部分 机制
第二章 加速法则
加载器(Launcher)允许你输入应用程序或文档名称的第一部分来加载它:一个应用程序列表的有用程度与它的长度成反比
花点时间来学习你手边所有隐藏的快捷键
命令提示符:基本技能
开发加速器:编程时始终优先使用键盘而非鼠标
在上下文中学习IDE快捷键,而不要背长长的列表
在工具中也使用查找手段来导航:Ctrl+F
宏记录器:如果要对多行文本做同样的操作,就应该找出其中的模式,并把它记录为一个宏
键盘宏工具:不要总是重复输入相同的命令
第三章 专注法则
本章主要介绍一些去除低效率和不必要干扰的方法,以集中注意力。
1.关闭不必要的提示:我的理解就是关闭各种垃圾弹窗,各种邮件通知等等。带耳机这种操作,得看情况吧,个人不喜欢
2.创造安静时间:为什么很多程序员喜欢晚上工作,可能一个原因就是晚上不容易受打扰,平时白天各种开会不易集中注意力
3.搜索优于导航:草堆越大,从中找出一根针就越难。不要文件树,要搜索。现在Windows搜索栏已经很好用了,但是注意别全局搜索。VS里面的 ctrl+f 也很好用。 操作系统一般都有find命令,这个命令用熟也能提高效率。
4.使用有根视图:没见过这个东西
5.设好“粘性“属性:Windows命令行其实很不好用,可以对命令行做点个性化配置方便使用
6.使用基于目录的快捷方式:用链接来创建虚拟的项目管理目录。简单说就是给项目弄个文件夹,存各个相关文件的快捷方式。
7.使用多显示器,用虚拟桌面拆分工作空间:试着用了一下虚拟桌面,把不同类型的应用分在不同虚拟桌面上,还挺好用的。
第四章 自动化法则
1.不需要重复发明轮子:感觉是在安利 thoughtworks 的轮子2333
别让自动化的努力编程剪牦牛毛
2.建立本地缓存:用wget抓取网页镜像,这个可以试试
3.自动访问网站:现在基本都有记住密码功能了吧,这个用不上了
4.与RSS源交互:现在还有人用yahoo?
5.在构建之外使用Ant:Java的工具,没怎么用过,类似于make?
6.用Rake执行常见任务:不了解Ruby..
7.用Selenium浏览网页:Selenium [27]是一个开源的测试工具,用于web应用的用户验收测试。
8.用bash统计异常数: 基本操作吧,工作中要熟练使用bash
9.用Windows Power Shell 替代批处理文件: 据说这个比cmd功能强大,但是运行速度会慢一些
10.用Mac OS X 的 Atuomator删除过时的下载文件:不熟,用python吧
11.驯服subversion命令行:现在一般用git吧
12.是否应该自动化的关键在于投资回报率与缓解风险:搞这些别走火入魔了....
第五章 规范性法则
DRY版本控制:Dont repeat yourself 项目需要的任何东西都应该进入版本库,包括各种外部工具和共享库,否则若干年后你找不到了....
1.使用标准的构建服务器:持续集成服务器把构建的责任从个人机器上剥离出来
2.规范的配置:把所有机器都安装和设置为一模一样总是项目中令人头疼的一件事。
3.利用虚拟平台:A项目用了某个组件,B项目没有用到,为了避开隐形依赖,使用虚拟机
DRY阻抗失配
阻抗失配发生在两种风格的边界处:从基于集合到基于对象,或从过程式到面向对象。因为你试图融合两种抽象风格,在边界处就出现了重复
DRY文档:过时的文档比没有文档更糟,因为它会主动误导你
1.大多数时候,代码和文档会失去同步,因为进度压力等原因....
2.如果你花了很多时间去画一个类图,你一定不愿意修改它,如果你打算先画图,那么用工具来生成代码,如果你用白板创建了非正式的图,而稍后又需要更正式的版本,那么从代码中生成它们,否则它们一定会失去同步。
3.数据库结构:和类图一样,数据库结构是产生不必要重复的危险地带