目录:

快捷键的使用

文件快速检索

1.本书概况

转自图灵社区

一.机制
1、加速法则 :使用各种工具或技巧,使自己工作效率最优化
关注本质,而非形式
键盘输入总比导航快 简化启动面板,将最常用功能最优先化
花点时间来学习你手边所有隐藏的快捷键
环境切换会消耗时间,尽量减少环境切换
记住操作的历史,忘记历史就意味着你得重新再输入一遍
嵌入图形化工具的命令提示符让你鱼与熊掌兼得
在资源管理器中嵌入命令提示符使环境切换更容易
开发时优先使用键盘而非鼠标-----------------快速切换至地址栏 Alt+D
在上下文中学习IDE快捷键,而不要出背长长的列表
当你第二次输入一个复杂结构时,将它做成模板
在工具中使用查找手段来导航
如果要对多行文本做同样的事情,就应该找出其中的模式,并把它记录为一个宏
在一个文本上执行某个特定操作的次数越多,就越有可能会再次重复他
不要总是重复输入相同的命令,使用键盘宏功能
每天花一点时间来使每天都更高效

2、专注法则:想办法改变环境以减少打扰,减少来自电脑的干扰以及借助工具保持专注
排除干扰
精力越集中,思维越缜密
策略:隔离策略、创造安静时间、关掉不需要的提示----修改注册表

搜索优于导航
草堆越大,从中找到一根针就越难
不要文件树,要搜索
在诉诸高级搜索之前,先尝试简单的搜索
使用有根视图,有根视图把资源管理器变成了项目管理工具
充分利用内建的机制(例如颜色)来帮助你集中注意力
使用基于项目的快捷方式,用链接来创建虚拟的项目管理目录
虚拟桌面可以让原本杂乱无章的一大推窗口变整洁-----Virtual Desktop manager

3、自动化法则:自动化每天重复的工作或任务,留住宝贵的时间做更有价值的事情
不要重新发明轮子,给合适的任务寻找合适的工具
即便不是工具最初的设计意图,只要是合适的场合,同样可以使用这些工具
不要浪费时间动手去做可以被自动化的事情
做简单重复的事情实在浪费注意力
以创造性的方式解决问题,有助于在将来解决类似的问题
是否应该自动化的关键在于投资回报率和缓解风险
研究型的工作应该放在时间盒里做
别让自动化的努力变成剪牦牛毛(注意你的解决的核心问题)
建立本地缓存
自动访问网站(cUrl工具)
与RSS源交互|Yahoo!pipes、automator
在构建之外使用ant,
用Rake执行常见任务
用Selenimu浏览网页
用Bash统计异常数

4、规范性法则:消除重复,保持规范化
DRY-Don’t repeat yourself!
对于任何你不自己去构建的东西,只在版本控制中保存一份副本
使用间接机制创建友善的工作空间
使用间接机制来保持稳健同步
通过复制粘贴来复用是邪恶的,不论你复制粘贴到是什么
利用虚拟平台使项目以来标准化
始终保持代码和数据库结构的同步
使用迁移为数据库结构的改动创建可重复的快照
过时的文档比没有文档更糟,因为它会自动误导你
对管理者来说,文档意味着缓解风险
始终保持“活”的文档,最好是能自动生成svn2wiki
任何需要费劲创造的东西,都让它的创造者欲罢不能
白板+数据相机强过任何的CASE工具
尽量生成所有的技术文档
重复是软件开发中最大的阻力

二.实践
1、测试驱动设计
测试代表着软件开发行为中工程式的严谨部分
把注释重构成方法
代码需要进行度量
代码需要统计代码测试覆盖率

2、静态分析:通过软件工具对程序代码进行验证
静态分析工具提供了便宜实惠的验证手段
动态语言分析
3、当个好公民
4、YAGNI – You Ain’t Gonna Need It!你不会需要它
如无必要,勿增复杂度
软件开发首先是一场沟通博弈
5、古代哲人 – 哲学思想对构建高质量软件有直接的影响
亚里士多德 “事物本质性质和附属性质” -> 致力本质复杂度,去除附属复杂性
奥姆剃刀原理 -> 如果对一个现象有好几种解释,那么最简单的解释往往是最正确的
Dietzler定律:即使是通用目的变成语言也逃不出“80-10-10准则”(80%的需求可以很快完成,下一个10%需要花很大的努力才能完成,而最后的10%却几乎是不可能完成的)的魔咒。
迪米特法则 -> 任何对象都不需要知道与之交互的那些对象的任何内部细节
关注那些“古老的”软件技术学说。理解已存在的软件学说,能给你提供很好的资源
6、质疑权威 -> 推行标准是一件好事,但不能盲从标准
7、元编程 -> 编写“会写程序”的程序
元编程改变了你的语法词典,给你提供了更多表达自己的方式
元编程的语言允许开发者使用额外的能力,由开发者决定什么时候使用这些额外的能力
java与反射
groovy
编写连贯接口
8、组合方法和SLAP(Single Level of Abstraction Principle,单一抽象层次原则)
重构成组合方法能暴露出隐藏的可复用代码
TDD实践推动组合方法模式
9、多语言编程
10、寻找完美工具
寻找属于你的完美编辑器,并从里到外去了解它
你可以使用宏来记录所有重复的文本操作
可以从命令行调用的
掌握好正则表达式将为我们节省大量的精力
如果能够批量处理,就不要来回做重复的工作
用“真正的”脚本语言去完成自动化任务
将行为保留在可测试的代码中。xml不应该带有行为特性,行为特性由动态语言来完成
关注每个小工具的演化
丢弃错误的工具,尽量少交复杂税

一些比较实用的工具或软件:
windows工具:Windows PowerToys、Tweak UI、Virtual Desktop manager(workspace之间切换的快捷键是:ctrl + alt + 方向键)

应用程序快速加载器:launchy、Colibri、Enso。QuickSilver(MacOSX),个人推荐TypeAndRun或AltRun
Command Prompt Explorer Bar 兼有图形和命令行(ctrl+m)。path Finder(Mac OSX)
cygwin
强制快捷键工具:Key Prompter(eclipse、IntelliJ).http://www.mousefeed.com
键盘宏工具:AutoHotKey
集中注意力工具:jediconcentrate
搜索工具:google desktop serch,插件Any Text FileIndexer(可搜索文本内容),UNIX下的find命令,个人推荐Everything
文件管理工具:subversion、git
持续集成:CruiseControl、Bamboo、Hudson、TeamCity、LuntBuild
问题跟踪和WIKI:Trac
敏捷项目管理:Mingle
Ant、Gant、Groovy
UML图生成工具:yDoc
数据库结构生成工具:SchemaSpy
代码度量工具:McCabe的圈复杂度(边数-节点数 +2 | 边代表执行路径,节点代表代码的行数)、javaNCSS、Saikuro
静态分析工具:Findbugs、PMD、CheckStyle、CPD
统计数据生成工具:Panopticode(包括emma、jdepend、javaNcss、simian、Panopticode Aggregator)
Jaskell

个人经验和实践:
自动化一切可以自动化的任务和日常工作,不能自动化的也要想尽办法自动化,尽量不要做重复性的工作 保持简单和优美,简单即是美
学会一种动态语言,比如ruby,python,在工作中会有很大的帮助
善用工具,创造工具

桌面快捷键总结:

1 workspace之间切换的快捷键是:ctrl + alt + 方向键

2 切换至地址栏Alt+D

2.快捷键的使用

Google Chrome 快捷键知多少

主题不会用?插件不会设置?博客使用出问题?就上WordPress问答找答案!

使用快捷键,减少鼠标的定位过程,可以在很大程度上提高工作的效率,在Google Chrome 中也一样,快捷键可以提高我们冲浪的效率。

比如,使用 Google Chrome 进行全屏浏览时,想要在标签页间进行切换,这时使用快捷键是非常方便的:使用 Ctrl+Shift+Tab 或 Ctrl+PgUp 即可切换至上一个标签页,而 Ctrl+Tab 或 Ctrl+PgDown 则可方便的切换到下一个标签页。

下面所列为 Google Chrome 快捷键,其中有一些非常实用,掌握之后可以让你的浏览速度变得更加快捷:

窗口和标签页快捷键

Ctrl+N 打开新窗口
Ctrl+T 打开新标签页
Ctrl+Shift+N 在隐身模式下打开新窗口
Ctrl+O,然后选择文件 在谷歌浏览器中打开计算机上的文件
按住 Ctrl 键,然后点击链接 从后台在新标签页中打开链接,但您仍停留在当前标签页中
按住 Ctrl+Shift 键,然后点击链接 在新标签页中打开链接,同时切换到新打开的标签页
按住 Shift 键,然后点击链接 在新窗口中打开链接
Alt+F4 关闭当前窗口
Ctrl+Shift+T 重新打开上次关闭的标签页。谷歌浏览器可记住最近关闭的 10 个标签页。
将链接拖动到标签页内 在指定标签页中打开链接
将链接拖动到两个标签页之间 在标签页横条的指定位置建立一个新标签页,在该标签页中打开链接
Ctrl+1 到 Ctrl+8 切换到指定位置编号的标签页。您按下的数字代表标签页横条上的相应标签位置。
Ctrl+9 切换到最后一个标签页
Ctrl+Tab 或 Ctrl+PgDown 切换到下一个标签页
Ctrl+Shift+Tab 或Ctrl+PgUp 切换到上一个标签页
Ctrl+W 或 Ctrl+F4 关闭当前标签页或弹出式窗口
Alt+Home 打开主页

地址栏快捷键在地址栏,进行下列操作之一:

键入搜索字词 使用默认搜索引擎进行搜索
键入网址中”www.”和”.com”之间的部分,然后按 Ctrl+Enter 键 为您在地址栏中输入的内容添加”www.”和”.com”,然后打开网址
键入搜索引擎关键字或网址,按Tab 键补全,然后键入搜索字词 使用与关键字或网址相关联的搜索引擎进行搜索。如果谷歌浏览器可以识别您要使用的搜索引擎,则会提示您按 Tab 键。
F6 或 Ctrl+L 或 Alt+D 选中网址区域中的内容
键入网址,然后按 Alt+Enter 键 在新标签页中打开网址

打开谷歌浏览器各功能的快捷键

Ctrl+B 打开和关闭书签栏
Ctrl+Shift+B 打开书签管理器
Ctrl+H 查看”历史记录”页
Ctrl+J 查看”下载”页
Shift+Escape 查看任务管理器
Shift+Alt+T 将焦点设置在工具栏上。使用键盘上的向右和向左箭头,可导航至工具栏上的不同按钮。

网页快捷键

Ctrl+P 打印当前页
Ctrl+S 保存当前页
F5 重新加载当前页
Esc 停止加载当前页
Ctrl+F 打开”在网页上查找”框
点击鼠标中键或滚轮 激活自动滚动。当您移动鼠标时,网页会根据鼠标的移动方向自动滚动。
Ctrl+F5 或 Shift+F5 重新加载当前页,但忽略缓存内容
按住 Alt 键,然后点击链接 下载链接
Ctrl+G 或 F3 查找与您在”在网页上查找”框中输入的内容相匹配的下一个匹配项
Ctrl+Shift+G 或 Shift+F3 查找与您在”在网页上查找”框中输入的内容相匹配的上一个匹配项
Ctrl+U 查看源代码          
将链接拖动到书签栏 将链接加入书签
Ctrl+D 将当前网页加入书签
Ctrl++,或者按住 Ctrl 键并向上滚动鼠标滚轮 放大网页上的所有内容
Ctrl+-,或者按住 Ctrl 键并向下滚动鼠标滚轮 缩小网页上的所有内容
Ctrl+0 将网页上的所有内容都恢复到正常大小

文字快捷键

选中内容,然后按 Ctrl+C 键 将内容复制到剪贴板
将光标置于文本字段中,然后按 Ctrl+V 或 Shift+Insert 键 从剪贴板粘贴当前内容
将光标置于文本字段中,然后按 Ctrl+Shift+V 键 从剪贴板粘贴当前内容的纯文本部分
选中文字字段中的内容,然后按 Ctrl+X 或 Shift+Delete 键 删除内容并将其复制到剪贴板

更多快捷键

Backspace,或同时按住 Alt 和向左箭头键 转至标签页浏览历史记录中的上一页
Shift+Backspace,或同时按住 Alt 和向右箭头键 转至标签页浏览历史记录中的下一页
Ctrl+K 或 Ctrl+E 将”?”置于地址栏中。在”?”之后键入搜索字词,以使用默认搜索引擎进行搜索。
将光标置于地址栏中,然后同时按住 Ctrl和向左箭头键 跳到地址栏中的前一个字词
将光标置于地址栏中,然后同时按住 Ctrl和向右箭头键 跳到地址栏中的下一个字词
将光标置于地址栏中,然后按住Ctrl+Backspace 键 删除地址栏中的上一个字词
空格键 向下滚动网页
Home 转至网页顶部
End 转至网页底部
按住 Shift 键并滚动鼠标滚轮 在网页上水平滚动
from: http://www.cnblogs.com/abc8023/p/3700373.html

《卓有成效的程序员》----读书笔记一相关推荐

  1. 卓有成效的程序员 阅读笔记 第一部分

    第一部分 机制 第二章 加速法则 加载器(Launcher)允许你输入应用程序或文档名称的第一部分来加载它:一个应用程序列表的有用程度与它的长度成反比 花点时间来学习你手边所有隐藏的快捷键 命令提示符 ...

  2. ThoughtWorks(中国)程序员读书雷达

      软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与学识.世界上并不存在速成的终南捷径,但阅读好的技术书籍 ...

  3. 张逸:ThoughtWorks(中国)程序员读书雷达

    2013/06/20 ·  书籍与教程, 开发· 6.6K 阅读·  书籍, 架构设计, 编程, 领导力 原文出处: 简单文本-张逸   欢迎分享原创到伯乐头条 软件业的特点是变化.若要提高软件开发的 ...

  4. 张逸: ThoughtWorks(中国)程序员读书雷达

    原文出处: 简单文本-张逸 软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与学识.世界上并不存在速成的终南 ...

  5. 程序员的共鸣 - 读《卓有成效的程序员》

    最近读了<卓有成效的程序员>,感觉收获颇大.这是一本写给程序员的难得的好书.书中大都是一些浅显的道理,但作者将这些东西加以收集.归纳.总结,并最终成书.作者为了收集各种提高效率的工具和方法 ...

  6. 读《卓有成效的程序员》-----我的一些题内和题外的感想

    读<卓有成效的程序员>-----我的一些题内和题外的感想 本文出自:http://hi.baidu.com/xiaonan33309/blog/item/c708c901a50d940b7 ...

  7. 卓有成效的程序员(影印版)

    卓有成效的程序员(影印版) 一本揭示高效程序员的思考模式,一本告诉你如何缩短你与优秀程序员的差距 定价 : ¥42.00会员价 : ¥31.50(75折) 详情查看:http://www.china- ...

  8. [黑马程序员C++笔记]P72-P83通讯录管理系统

    目录 系统需求 1.菜单功能 2.退出功能 3.添加联系人 (1)​​​​​​​设计联系人结构体 (2) 设计通讯录结构体 ​​​​​​​(3)main函数中创建通讯录 (4)封装添加联系人函数 (5 ...

  9. [黑马程序员C++笔记]P72-P83通讯录管理系统总体概览

    系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别.年龄.联系电话.家 ...

  10. php末尾友链,与php程序员的笔记网站交换友链的原则

    很抱歉,由于本网站首页友链已满,目前停止交换首页友链,内页仍可交换友链!(2013年2月24日) 随着本站友链的数量不断增多,本人不得不对本站的友链申请的原则进行郑重的申明一下,希望各位申请本站友链的 ...

最新文章

  1. Python进阶之递归函数的用法及其示例
  2. Java开发知识点!手把手讲解-一个复杂动效的自定义绘制
  3. java8 list 行转列_Java14 都来了,你还不会用 Java8吗?
  4. python并行运算库_最佳并行绘图Python库简介:“ HiPlot”
  5. elif是不是java关键字_C# 中的#if、#elif、#else、#endif等条件编译符号 (转载)
  6. React Native 一些事
  7. Docker启动Mysql容器失败,挂载时权限不足,chown: changing ownership of ‘/var/lib/mysql/‘: Permission denied
  8. android sdk引入 微信分享_Android 微信SDK分享功能中的最全过程步骤分析
  9. NIS服务的基本配置----视频下载
  10. text-align 属性,输入框数字向右靠
  11. PHIL2650 是个好课程
  12. 全志平台ov2710 sensor驱动调试记录
  13. smartsvn smartgit 安装 及其破解
  14. LabVIEW编程LabVIEW控制GPS例程与相关资料
  15. C++ 后端开发工程师的技术栈整理
  16. CF1076C Meme Problem(韦达定理)
  17. matlab非单位阶跃响应,MATLAB下二阶系统的单位阶跃响应
  18. mysql 占用cpu高_mysqlCPU占用过高解决方案
  19. Vue Echarts英文版地图——强大的高德地图
  20. 浙江法院公开网文书PDF爬取

热门文章

  1. Lesson 15.2 学习率调度在PyTorch中的实现方法
  2. 微信小程序外卖增长402%,茶饮下单最活跃
  3. PANDAS 数据合并与重塑(concat篇) 原创 2016年09月13日 19:26:30 47784 pandas作者Wes McKinney 在【PYTHON FOR DATA ANALYS
  4. Java Review - ArrayList 源码解读
  5. Java - Jackson JSON Java Parser API
  6. 武大计算机宿舍,国内最“豪华”的4所大学宿舍,武大上榜,最后一所意想不到!...
  7. java中文版src_java Web开发医药后台管理系统mysql版本源代码下载,支持中英文
  8. java 线程池 源码_java线程池源码分析
  9. Go中线程和协程的区别
  10. pytest中pytest_addoption用法 动态添加命令行参数 (钩子函数)