卓有成效的程序员 读书笔记

卓有成效的程序员 读书笔记

第二章:加速法则

1.mac使用spotlight进行快速查找
2. 优秀的IDE快捷键
总之:使用各种工具或者快捷点或者技巧提升开发效率

第三章:专注法则

1: 关掉不需要的提示,邮件,qq等
2:Spotlight找到一个文件后,回车键打开,apple+回车 打开目录
3:用虚拟桌面拆分工作空间 ,从而划分工作区间
排除干扰
隔离策略
关掉不需要的提示
创造安静的时间
搜索优于导航
使用多屏显示器

第四章:自动化法则

1. 自动化脚本
a.建立本地缓存
wget —mirror -w 2 —html-extension —convert-links -P /tmp/a

—mirror 给网站创建本地镜像。递归的下载网站
—html-extension 转化为html扩展名
—convert-links 链接转换为本地链接
-P 指定目录

b. 自动访问网站

curl   HTTP GET
curl -d HTTP POST

c.使用selenium浏览网页

可以使用selenium IDE 来记录浏览器操作

d. 使用bash来做一些操作

第五章:规范性法则

规范性法则:(减少重复)
服务配置、开发工具配置规范,
数据迁移代码化 类似rake db:migrate
DRY文档, 自动生成文档
类图:  yDoc 画图工具,能够从代码产生UML图。
数据库结构:schemaSpy 产生数据库实体/关系图,会连接到数据库,并产生表信息。

第六章:测试驱动设计

TDD 测试驱动开发, 养成这种好习惯,可以极大的提升代码质量
代码覆盖率:尽力使新代码达到100%的覆盖率,每当修复一个错误的时候需要为其添加相应的测试

第七章:静态分析

静态类型语言:java,C#  => 字节码分析  FindBugs
动态语言分析:ruby on rails => rcov, flog,

第八章:当个好公民

第九章:YAGNI

YAGNI => you ain’t gonna need it (你不会需要它)- 对预想开发的战斗宣言
预想开发会给软件造成伤害,过早的引入了复杂度

比如:’在做一个story时,肯定以后需要这个额外的功能,所以现在就去实现了她’

观点:如无必要,勿增复杂度

第十章:古代哲人

SOA  面向服务架构
SOA的原则:
1.可重复使用,粒度,模组性,可组合型,构件化以及具交互操作性
2.符合开放标准
3.服务的识别和分类,提供和发布,监控和跟踪
奥姆剃刀原理 -> 如果对一个现象有好几种解释,那么最简单的解释往往是最正确的
迪米特法则:
任何一个对象或者方法,它应该只能调用下列对象:
该对象本身
作为参数传进来的对象
在方法内创建的对象

第十一章:质疑权威

在开发团队和开发社区中推行通用标准是一件好事。(不要盲目固守标准)
连贯接口:是领域特定语言(DSL)的风格之一,更易阅读
反目标

第十二章:元编程

ruby元编程知识

第十三章:组合方法和SLAP

SLAP 单一抽象层次原则
把复杂的逻辑抽象成离散并且同样的抽象层次
重构成组合方法能暴露出隐藏的可复用代码
TDD实践推动组合方法模式

第十四章:多语言编程

用一种语言(某种静态类型语言)作为可靠的基础,用一种高开发效率的语言(动态语言,eg:jRuby等)来完成日常编程任务,
用多种领域特定语言(DSL)让我们的代码更贴近业务分析师和最终用户的需求

第十五章:寻找完美的工具

找一个好用的编辑器,如textmate,vim


This entry was posted in 读书笔记

Leave a Reply

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">