卓有成效的程序员之笔记与实践


本文作者:王德水 http://www.cnblogs.com/cnblogsfans, 转载请保留此处声明。

卓有成效的程序员之笔记与实践

一、加速法则

加速法则,就是能加快我们工作的一切的东西。

a. 删除启动面板多余的东西,一个应用程序列表的有用程度与它的长度成反比

下面我以win7为例,把All Program里常用的程序放到Start Menu里,移除Start Menu里没用的程序。

卓有成效的程序员之笔记与实践  卓有成效的程序员之笔记与实践

b. 把常用的程序和目录放到任务栏和桌面,下面是我的工作台。

卓有成效的程序员之笔记与实践

c、使用应用程序加载器

十款好用的Windows Launcher

卓有成效的程序员之笔记与实践

d. 首选键盘,记住常用的 Win+E, Win+R,Alt+Tab等等快捷键,少用鼠标。

e. 使用多重剪贴板,减少来回切换的时间。

f. 记住历史操作。Linux下可以敲入History,但Windows下只能上下箭头。

g,开发加速器, 记住IDE快捷键可以大大提高开发速度。vsts有很多快捷键,请记住常用的。

 

二、专注法则

工作当中,专注可以很大的提高工作效率。

a. 排除干扰,隔离(带耳机)。

b. 关掉不必要的提示(更新呀,等等)。

c. 创造安静时间.

d. 搜索优于导航,使用有根试图.

卓有成效的程序员之笔记与实践

e. 使用基于项目的快捷方式,多显示器,虚拟桌面

    把项目的常用文件放置一个地方。使用虚拟桌面来分类。windows下有vitual desktop.

三、自动化法则

a. 不要重复发明*,SubVersion, CruisinControl, Trac, Mingle.

下面是我的项目的自动集成,可以参考我的系列教程 .NET环境下每日集成

卓有成效的程序员之笔记与实践

b. 建立本地缓存。

c. 使用RSS订阅我们需要的信息。

d. 构建之外使用Ant,可以为我们执行一些常用的任务。

e. 用Rake执行常见任务,这个是Ruby下的,我的博客里有一些Ruby的入门文章一步一步学Ruby

f. 用Selenium浏览网页,我的博客里有点Selenium的教程http://www.cnblogs.com/cnblogsfans/archive/2008/12/23/1360320.html

h. 作者推荐使用Powershell,这个我目前还不会。读者可以自己去查相关资料。

四、规范性法则

规范很重要,这个可以减少不一致

  • 使用版本控制。
  • 使用标准的构建服务器。
  •  文中作者提到利用虚拟平台备份每个项目的交付时的环境,这个很不错。
  • 数据迁移,Ruby on rails里的Migration做的很不错,我们可以拿来使用,对数据可以做到很好的版本控制。
  • 保持活的文档,过时的文档比没有文档更糟.
  • 白板+数码相机强过任何CASE工具。
  • 尽量自动生成所有技术文档。
  • 数据库结构 SchemaSpy可以生成数据关系图。
  • 减少重复,重复是软件开发中最大的阻力。

五、测试驱动开发

测试代表着软件开发行为中工程式的严谨部分。他可以帮你养成更好的对代码的“消费意识”,减少调试时间和副作用。

这里记录了我的一些TDD实践 http://www.cnblogs.com/cnblogsfans/category/167592.html

六、公民责任

每一个开发人员都是一个“公民”,我们要尽到公民的责任。

七、注释重构成方法。

这个观点很新颖,我非常赞同。

八、勿过度开发

YAGNI(“You Ain’t Gonna Need it”)你不会需要它,如无必要,勿增复杂度。

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

沟通,沟通,再沟通。

十、致力本质复杂度,去除附属复杂度。

这点,我觉得对架构师很重要。

十一、高内聚,低耦合

  • 在调用方法时,不要出现一个以上的. , homer.getJob().setPosition(“Jantior”) 。
  • 把所有的实现细节封装在公共方法之外。

十二、关注古老的软件学说

旧的语言和软件学说,有时很有用,因为我们在继承时,可能丢了很多好的“传统”。看看《人月神话》吧,看看SmallTalk吧,也许你有不一样的收获。

十三、质疑权威

要有质疑权威的精神,不要成为一群《愤怒的猴子》。这个主要是讲一群猴子想吃房子里的香蕉,当它们每次爬上*时,主人就用冰水泼它,后来来了一只新的猴子A,当A爬上*时,房子里的其它猴子都打他,最后房子里全部都是没有被泼过冷水的猴子,但是还是没有猴子敢去拿香蕉了,因为都是一群愤怒的猴子。

十四、多语言编程

关注多语言编程,每个语言都有自己的特长,比如Erang适合并发程序,Ruby on Rails适合Web开发,让它们专注与自己的特长,今天的平台,明天的语言。

本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2009/06/15/1503668.html如需转载请自行联系原作者

王德水