SlideShare a Scribd company logo
1 of 3
我的最小项目管理工具集
作者:江南白衣


2006 年 JOLT 大奖(http://www.sdmagazine.com)的得奖名单:
企业项目管理:WelcomRisk 2.6(Welcom)
缺陷跟踪、变更与配置管理:Perforce SCM 2005(Perforce)
设计与建模:Lattix LDM 2.0(Lattix)
项目质量管理:Rally 5.6(Rally Software Development)
测试工具: VMTN Subscription 2005(VMware)

不知道他们长什么样子吗?没所谓了,工具从来就乱花迷眼,但花哨的工具未必适合自己的团队。总要洗净铅华
的总结出一些最必要的,能提供最大辅力加持的工具。
参见《死亡中旅》2nd 第 x 章--最小工具集.

1.版本管理工具

  有没有版本管理,可以作为项目到底有没有推行软件工程管理的一条华丽的分隔线。
  因为现在是 2006 年了,我们选的是 Subversion。

  客户端工具:小海龟(http://tortoisesvn.tigris.org/)。这个 CVS 版的姊妹工具以前就号称 WinCVS 杀手了,与
Window Explorer 右键的整合,摒弃了必须专门跑一个 Client 的传统。
  文本比较与合并工具:小海龟里集成的 TortoiseMerge。除了 Update 和 Commit 外,查看历史版本差异,合并版
本冲突是大家最常做的事情了,所以工具也一定要用适合的。
 Web 浏览代码:Trac(http://www.edgewall.com/trac/),完全合乎让人 Pleasure 标准的 Web 版代码展示工具。能
够方便的查看,Search 代码,观察仓库的提交日志。

如果团队里依然用 CVS 的话,相对应的推荐套件就是:
  l            客户端:小海龟(www.tortoisecvs.org)
  l            差异比较工具:WinMerge
  l            Web 代码浏览工具:Fisheye
  l            帐号管理工具:CVSTrac

   2.项目计划,任务分配,需求变更管理,Bug 管理工具
     偶然的,我发现自己把这些都交给了 JIRA 完成。

     项目计划,任务分配,进度跟踪,需求变更管理,Bug 管理几乎就是 PM 的全部工作了。
     以前总有很多软件分开来管理这些问题,同一问题经常要 Copy Paste 好几个软件。
     但如果你的团队的项目计划是 XP plan 风格 而不是 MS Project。
     那恭喜了,一个 JIRA 就可以完成所有任务。
    但 MS Project 实在深得各位老板厚爱,所以我们会做一个粒度很粗的 Project 来应付老板、开会
   和监理,让他们大概了解项目的计划和进度。而采用敏捷编程的计划风格,灵活的向团员
   分配具体任务。

    看 Jolt 的奖项设置,也可以看到这种把 N 种项目管理工具组合归并的趋势,去年
   的“Change and Configuration Management Tools”和“Test-Defect Tracking Tool”,已经合
   并成“Defect Tracking, Change and Configuration Management”

3. 设计建模工具
虽然程序员都不太喜欢代码以外的任何东西,当然也包括 UML 图。但实践证明敏捷编程也不能完全抛弃设
计,如果将 UML 图用于纯粹的交流工具而不是 MDA 一类宏伟愿望的话还是挺有用的,比如静态 Class 图和顺序
图是我最经常画的东西。
   有很多明星级的工具可以画这些图,但我某天发现,一个很小巧的工具
Jude(http://jude.change-vision.com/jude-web/index.html)已经可以把这两种图画得很好。大家都
可以在使用内存怪兽般的设计建模工具时,寻找属于自己的袖珍玲珑版工具。


 另外,如果要画流程图。我喜欢 SmartDraw 多过 Visio。因为 SmartDraw 有很多色彩鲜艳,配
色好看的模板,现成又好看的东西才是第一选择。

4.开发环境
曾几何时,Visaul C++6.0 是我认为最完美的开发环境,而随着 IDEA 和 Eclipse 的不断升级,我
们的个人品味与懒惰程度也在共同提高。同时,Eclipse 也依靠它无敌的 Plugin 编队,将自己的
风格逐一推向 Java、C++、PHP、Python 和 Ruby 等领域,有一统江湖的趋势。

重构(二级)
即使团队用得最多的只是 Rename、Move、Extract Method 等几个基本动作,Java EE 架构里牵一发动全身的事情也
太多了,重构会帮你把所有事情做干净,所以我现在已形成依赖,如果不用重构,随便改一样东西,肯定造成一
堆东西编译不过或者 Web 应用启动失败。IntelliJ IDEA 作为第一个支持重构的工具,已经一路高歌把重构的概念
深入到 JSP、XML、JavaScript 和 CSS 等,实在是相当聪明。

Flying Error 提示和自动修正(二级)
Flying Error 提示在 Java IDE 里已经逐渐成了标准配置,有错了马上提示就地更正,不需要积了一堆错误等到编译
时才慢慢查看 Error Message 排错。又是 IDEA,不但提示错误,还会提出几种可选的修正方案,你点一下就会帮你
自动修正。比如一个函数会抛出必须进行处理的 checked 异常,你如果调用了这个函数,IDEA 就会提示你“是在
调用的地方进行 Try Catch 呢,还是在外层函数声明 Throws 这个 Exception?”你选择之后就会帮你自动完成,感
觉非常贴心。

Smart Complete(二级)
比如现在要输入 myFirstBook.setPublishDate(publishDate)这句代码,上一代的 IDE 在输入 myBook.后,会弹出下拉
菜单显示 Book 类的所有函数让你选择。
而新一代的 IDE,AI 都高得吓人,总能通过变量类型与上下文的名字猜出你想输入的内容,比如“my+热键”就
能生成 myFirstBook,“(+热键”就能生成 publishDate。如此 Smart 的结果,就是我编码的过程中热键不断,成了
彻底的懒人。

Debug Java EE 应用(二级)
Web 开发者一般用 System.out 或者 Log4j 来显示调试信息,但对于曾经桌面编程的程序员来说,直接进入调试模
式,单步跟踪程序执行路径,想看哪个变量就看哪个变量,才是天经地义的事情。慢慢的,这一代的 IDE 也已经
觉醒,通过与 Application Server 的集成,可以在 JSP,甚至第三方类库的源代码如 Spring Framework 的
HibernateDAOTemplate 里设置断点,然后单步执行,察看变量的变化。

如果左看右看,其他语言的 IDE 都很难符合上面的要求,不妨等待 Eclipse 的强大平台,一个个插件的慢慢统一。
5.团队 IM 工具和共享文件夹

   关于交流工具,从前是言必称 Email 的。而随着社会的进步,现在更提倡交流的即时性,因此,“Face to
Face”的交流被作为首选,早上 15 分钟的短会, IM 工具被作为与 Email 同等重要的手段。
   说起 IM 工具,很多公司都会选择严肃的 MSN 而不喜欢 QQ。但我还是喜欢 QQ 的群功能,而且虽然提倡交流
的即时,但避免打扰对于开发者也很重要,QQ 新版的“来消息时只显示消息条数”能起到同样的免干扰作用。
最后是知识库,Wiki 有一个曾经是优点的缺点——Wiki 语法。它的简单只是对于那种用写字板写网页的高手
来说的,大部分人写文档的时候还是喜欢所见即所得的编辑。而且,Wiki 语法与 html 不兼容,造成了知识库与
互联网世界的鸿沟。不过好在 Cofluence 2.0 终于有了所见所得的编辑器,也可以弃用 Wiki 语法而直接使用
html 编辑了。
其他项目工具包括纸,笔,足够大的白板,随时可用的会议室。还缺了什么? 代码自动生成工具中也没有最趁手
的。

注:本文的全文已经发表在《程序员》杂志 2006 年第 5 期,更详细的内容请购买杂志,哈哈--泰稳过午不食
说。

More Related Content

Viewers also liked

管理员必备的20个 Linux系统监控工具
管理员必备的20个 Linux系统监控工具管理员必备的20个 Linux系统监控工具
管理员必备的20个 Linux系统监控工具wensheng wei
 
XMLHTTPRequest的属性和方法简介
XMLHTTPRequest的属性和方法简介XMLHTTPRequest的属性和方法简介
XMLHTTPRequest的属性和方法简介wensheng wei
 
Linux安全配置终极指南
Linux安全配置终极指南Linux安全配置终极指南
Linux安全配置终极指南wensheng wei
 
Ubuntu安装SVN总结
Ubuntu安装SVN总结Ubuntu安装SVN总结
Ubuntu安装SVN总结wensheng wei
 
常用数据库的链接方法
常用数据库的链接方法常用数据库的链接方法
常用数据库的链接方法wensheng wei
 
The Most Important Algorithms
The Most Important AlgorithmsThe Most Important Algorithms
The Most Important Algorithmswensheng wei
 
【转】CVS使用手册
【转】CVS使用手册【转】CVS使用手册
【转】CVS使用手册wensheng wei
 
Tomcat源码学习1
Tomcat源码学习1Tomcat源码学习1
Tomcat源码学习1wensheng wei
 
十张叫做幸福的图片
十张叫做幸福的图片十张叫做幸福的图片
十张叫做幸福的图片wensheng wei
 
部分PHP问题总结[转贴]
部分PHP问题总结[转贴]部分PHP问题总结[转贴]
部分PHP问题总结[转贴]wensheng wei
 
Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器wensheng wei
 

Viewers also liked (11)

管理员必备的20个 Linux系统监控工具
管理员必备的20个 Linux系统监控工具管理员必备的20个 Linux系统监控工具
管理员必备的20个 Linux系统监控工具
 
XMLHTTPRequest的属性和方法简介
XMLHTTPRequest的属性和方法简介XMLHTTPRequest的属性和方法简介
XMLHTTPRequest的属性和方法简介
 
Linux安全配置终极指南
Linux安全配置终极指南Linux安全配置终极指南
Linux安全配置终极指南
 
Ubuntu安装SVN总结
Ubuntu安装SVN总结Ubuntu安装SVN总结
Ubuntu安装SVN总结
 
常用数据库的链接方法
常用数据库的链接方法常用数据库的链接方法
常用数据库的链接方法
 
The Most Important Algorithms
The Most Important AlgorithmsThe Most Important Algorithms
The Most Important Algorithms
 
【转】CVS使用手册
【转】CVS使用手册【转】CVS使用手册
【转】CVS使用手册
 
Tomcat源码学习1
Tomcat源码学习1Tomcat源码学习1
Tomcat源码学习1
 
十张叫做幸福的图片
十张叫做幸福的图片十张叫做幸福的图片
十张叫做幸福的图片
 
部分PHP问题总结[转贴]
部分PHP问题总结[转贴]部分PHP问题总结[转贴]
部分PHP问题总结[转贴]
 
Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器
 

Similar to 我的最小项目管理工具集

面向模式的软件体系架构
面向模式的软件体系架构面向模式的软件体系架构
面向模式的软件体系架构Weijun Zhong
 
開源 x 節流:企業導入經驗分享 (一)+(二) [2016/07/21] A+A Space 開源講座
開源 x 節流:企業導入經驗分享 (一)+(二)  [2016/07/21] A+A Space 開源講座開源 x 節流:企業導入經驗分享 (一)+(二)  [2016/07/21] A+A Space 開源講座
開源 x 節流:企業導入經驗分享 (一)+(二) [2016/07/21] A+A Space 開源講座Jason Cheng
 
产品经理实用工具全集(1 8)
产品经理实用工具全集(1 8)产品经理实用工具全集(1 8)
产品经理实用工具全集(1 8)Gauin
 
Scmlife分享2012 2-25-2.24
Scmlife分享2012 2-25-2.24Scmlife分享2012 2-25-2.24
Scmlife分享2012 2-25-2.24Cody Zhang
 
Great architect cn
Great architect cnGreat architect cn
Great architect cndrewz lin
 
Project Management & System Analysis/Design Approach
Project Management & System Analysis/Design ApproachProject Management & System Analysis/Design Approach
Project Management & System Analysis/Design ApproachWang Johnson
 
Virtual Datacenter
Virtual DatacenterVirtual Datacenter
Virtual DatacenterLRYANG
 
專案進度追蹤
專案進度追蹤專案進度追蹤
專案進度追蹤黑狗 大
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressAppzhoujg
 
Matlab Introduction by Jiing
Matlab Introduction by JiingMatlab Introduction by Jiing
Matlab Introduction by Jiingjiing deng
 
Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享Liyao Chen
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用yiditushe
 
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會Rick Hwang
 
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化taobao.com
 
Silverlight 2.0 完全新手學堂,基礎入門 10 大招
Silverlight 2.0 完全新手學堂,基礎入門 10 大招Silverlight 2.0 完全新手學堂,基礎入門 10 大招
Silverlight 2.0 完全新手學堂,基礎入門 10 大招Chui-Wen Chiu
 
软件构造第一章
软件构造第一章软件构造第一章
软件构造第一章guest58ec466
 

Similar to 我的最小项目管理工具集 (20)

Ch1
Ch1Ch1
Ch1
 
软件工程2010
软件工程2010软件工程2010
软件工程2010
 
面向模式的软件体系架构
面向模式的软件体系架构面向模式的软件体系架构
面向模式的软件体系架构
 
OOAD
OOADOOAD
OOAD
 
開源 x 節流:企業導入經驗分享 (一)+(二) [2016/07/21] A+A Space 開源講座
開源 x 節流:企業導入經驗分享 (一)+(二)  [2016/07/21] A+A Space 開源講座開源 x 節流:企業導入經驗分享 (一)+(二)  [2016/07/21] A+A Space 開源講座
開源 x 節流:企業導入經驗分享 (一)+(二) [2016/07/21] A+A Space 開源講座
 
产品经理实用工具全集(1 8)
产品经理实用工具全集(1 8)产品经理实用工具全集(1 8)
产品经理实用工具全集(1 8)
 
Scmlife分享2012 2-25-2.24
Scmlife分享2012 2-25-2.24Scmlife分享2012 2-25-2.24
Scmlife分享2012 2-25-2.24
 
Great architect cn
Great architect cnGreat architect cn
Great architect cn
 
Project Management & System Analysis/Design Approach
Project Management & System Analysis/Design ApproachProject Management & System Analysis/Design Approach
Project Management & System Analysis/Design Approach
 
Virtual Datacenter
Virtual DatacenterVirtual Datacenter
Virtual Datacenter
 
Jobforcompal
JobforcompalJobforcompal
Jobforcompal
 
專案進度追蹤
專案進度追蹤專案進度追蹤
專案進度追蹤
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
 
Matlab Introduction by Jiing
Matlab Introduction by JiingMatlab Introduction by Jiing
Matlab Introduction by Jiing
 
Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享Windows 8 apps dev.整理及分享
Windows 8 apps dev.整理及分享
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用
 
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會2023 08 - SRE 實踐與開發平台指南 - 書友見面會
2023 08 - SRE 實踐與開發平台指南 - 書友見面會
 
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化
 
Silverlight 2.0 完全新手學堂,基礎入門 10 大招
Silverlight 2.0 完全新手學堂,基礎入門 10 大招Silverlight 2.0 完全新手學堂,基礎入門 10 大招
Silverlight 2.0 完全新手學堂,基礎入門 10 大招
 
软件构造第一章
软件构造第一章软件构造第一章
软件构造第一章
 

More from wensheng wei

你会柔软地想起这个校园
你会柔软地想起这个校园你会柔软地想起这个校园
你会柔软地想起这个校园wensheng wei
 
几米语录(1)
几米语录(1)几米语录(1)
几米语录(1)wensheng wei
 
Installation of Subversion on Ubuntu,...
Installation of Subversion on Ubuntu,...Installation of Subversion on Ubuntu,...
Installation of Subversion on Ubuntu,...wensheng wei
 
高级PHP应用程序漏洞审核技术
高级PHP应用程序漏洞审核技术高级PHP应用程序漏洞审核技术
高级PHP应用程序漏洞审核技术wensheng wei
 
存储过程编写经验和优化措施
存储过程编写经验和优化措施存储过程编写经验和优化措施
存储过程编写经验和优化措施wensheng wei
 
CentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 ZendCentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 Zendwensheng wei
 
Happiness is a Journey
Happiness is a JourneyHappiness is a Journey
Happiness is a Journeywensheng wei
 
Java JNI 编程进阶
Java JNI 编程进阶     Java JNI 编程进阶
Java JNI 编程进阶 wensheng wei
 
Linux Shortcuts and Commands:
Linux Shortcuts and Commands:Linux Shortcuts and Commands:
Linux Shortcuts and Commands:wensheng wei
 
Java正则表达式详解
Java正则表达式详解Java正则表达式详解
Java正则表达式详解wensheng wei
 
Linux Security Quick Reference Guide
Linux Security Quick Reference GuideLinux Security Quick Reference Guide
Linux Security Quick Reference Guidewensheng wei
 
Android模拟器SD Card映像文件使用方法
Android模拟器SD Card映像文件使用方法Android模拟器SD Card映像文件使用方法
Android模拟器SD Card映像文件使用方法wensheng wei
 
如何硬盘安装ubuntu8.10
如何硬盘安装ubuntu8.10如何硬盘安装ubuntu8.10
如何硬盘安装ubuntu8.10wensheng wei
 
数据库设计方法、规范与技巧
数据库设计方法、规范与技巧数据库设计方法、规范与技巧
数据库设计方法、规范与技巧wensheng wei
 
揭秘全球最大网站Facebook背后的那些软件
揭秘全球最大网站Facebook背后的那些软件揭秘全球最大网站Facebook背后的那些软件
揭秘全球最大网站Facebook背后的那些软件wensheng wei
 
mysql的字符串函数
mysql的字符串函数mysql的字符串函数
mysql的字符串函数wensheng wei
 

More from wensheng wei (20)

你会柔软地想起这个校园
你会柔软地想起这个校园你会柔软地想起这个校园
你会柔软地想起这个校园
 
几米语录(1)
几米语录(1)几米语录(1)
几米语录(1)
 
我的简历
我的简历我的简历
我的简历
 
Installation of Subversion on Ubuntu,...
Installation of Subversion on Ubuntu,...Installation of Subversion on Ubuntu,...
Installation of Subversion on Ubuntu,...
 
高级PHP应用程序漏洞审核技术
高级PHP应用程序漏洞审核技术高级PHP应用程序漏洞审核技术
高级PHP应用程序漏洞审核技术
 
存储过程编写经验和优化措施
存储过程编写经验和优化措施存储过程编写经验和优化措施
存储过程编写经验和优化措施
 
CentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 ZendCentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 Zend
 
Happiness is a Journey
Happiness is a JourneyHappiness is a Journey
Happiness is a Journey
 
Java JNI 编程进阶
Java JNI 编程进阶     Java JNI 编程进阶
Java JNI 编程进阶
 
Linux Shortcuts and Commands:
Linux Shortcuts and Commands:Linux Shortcuts and Commands:
Linux Shortcuts and Commands:
 
Java正则表达式详解
Java正则表达式详解Java正则表达式详解
Java正则表达式详解
 
Linux Security Quick Reference Guide
Linux Security Quick Reference GuideLinux Security Quick Reference Guide
Linux Security Quick Reference Guide
 
issue35 zh-CN
issue35 zh-CNissue35 zh-CN
issue35 zh-CN
 
Android模拟器SD Card映像文件使用方法
Android模拟器SD Card映像文件使用方法Android模拟器SD Card映像文件使用方法
Android模拟器SD Card映像文件使用方法
 
Subversion FAQ
Subversion FAQSubversion FAQ
Subversion FAQ
 
如何硬盘安装ubuntu8.10
如何硬盘安装ubuntu8.10如何硬盘安装ubuntu8.10
如何硬盘安装ubuntu8.10
 
ubunturef
ubunturefubunturef
ubunturef
 
数据库设计方法、规范与技巧
数据库设计方法、规范与技巧数据库设计方法、规范与技巧
数据库设计方法、规范与技巧
 
揭秘全球最大网站Facebook背后的那些软件
揭秘全球最大网站Facebook背后的那些软件揭秘全球最大网站Facebook背后的那些软件
揭秘全球最大网站Facebook背后的那些软件
 
mysql的字符串函数
mysql的字符串函数mysql的字符串函数
mysql的字符串函数
 

我的最小项目管理工具集

  • 1. 我的最小项目管理工具集 作者:江南白衣 2006 年 JOLT 大奖(http://www.sdmagazine.com)的得奖名单: 企业项目管理:WelcomRisk 2.6(Welcom) 缺陷跟踪、变更与配置管理:Perforce SCM 2005(Perforce) 设计与建模:Lattix LDM 2.0(Lattix) 项目质量管理:Rally 5.6(Rally Software Development) 测试工具: VMTN Subscription 2005(VMware) 不知道他们长什么样子吗?没所谓了,工具从来就乱花迷眼,但花哨的工具未必适合自己的团队。总要洗净铅华 的总结出一些最必要的,能提供最大辅力加持的工具。 参见《死亡中旅》2nd 第 x 章--最小工具集. 1.版本管理工具 有没有版本管理,可以作为项目到底有没有推行软件工程管理的一条华丽的分隔线。 因为现在是 2006 年了,我们选的是 Subversion。 客户端工具:小海龟(http://tortoisesvn.tigris.org/)。这个 CVS 版的姊妹工具以前就号称 WinCVS 杀手了,与 Window Explorer 右键的整合,摒弃了必须专门跑一个 Client 的传统。 文本比较与合并工具:小海龟里集成的 TortoiseMerge。除了 Update 和 Commit 外,查看历史版本差异,合并版 本冲突是大家最常做的事情了,所以工具也一定要用适合的。 Web 浏览代码:Trac(http://www.edgewall.com/trac/),完全合乎让人 Pleasure 标准的 Web 版代码展示工具。能 够方便的查看,Search 代码,观察仓库的提交日志。 如果团队里依然用 CVS 的话,相对应的推荐套件就是: l 客户端:小海龟(www.tortoisecvs.org) l 差异比较工具:WinMerge l Web 代码浏览工具:Fisheye l 帐号管理工具:CVSTrac 2.项目计划,任务分配,需求变更管理,Bug 管理工具 偶然的,我发现自己把这些都交给了 JIRA 完成。 项目计划,任务分配,进度跟踪,需求变更管理,Bug 管理几乎就是 PM 的全部工作了。 以前总有很多软件分开来管理这些问题,同一问题经常要 Copy Paste 好几个软件。 但如果你的团队的项目计划是 XP plan 风格 而不是 MS Project。 那恭喜了,一个 JIRA 就可以完成所有任务。 但 MS Project 实在深得各位老板厚爱,所以我们会做一个粒度很粗的 Project 来应付老板、开会 和监理,让他们大概了解项目的计划和进度。而采用敏捷编程的计划风格,灵活的向团员 分配具体任务。 看 Jolt 的奖项设置,也可以看到这种把 N 种项目管理工具组合归并的趋势,去年 的“Change and Configuration Management Tools”和“Test-Defect Tracking Tool”,已经合 并成“Defect Tracking, Change and Configuration Management” 3. 设计建模工具
  • 2. 虽然程序员都不太喜欢代码以外的任何东西,当然也包括 UML 图。但实践证明敏捷编程也不能完全抛弃设 计,如果将 UML 图用于纯粹的交流工具而不是 MDA 一类宏伟愿望的话还是挺有用的,比如静态 Class 图和顺序 图是我最经常画的东西。 有很多明星级的工具可以画这些图,但我某天发现,一个很小巧的工具 Jude(http://jude.change-vision.com/jude-web/index.html)已经可以把这两种图画得很好。大家都 可以在使用内存怪兽般的设计建模工具时,寻找属于自己的袖珍玲珑版工具。 另外,如果要画流程图。我喜欢 SmartDraw 多过 Visio。因为 SmartDraw 有很多色彩鲜艳,配 色好看的模板,现成又好看的东西才是第一选择。 4.开发环境 曾几何时,Visaul C++6.0 是我认为最完美的开发环境,而随着 IDEA 和 Eclipse 的不断升级,我 们的个人品味与懒惰程度也在共同提高。同时,Eclipse 也依靠它无敌的 Plugin 编队,将自己的 风格逐一推向 Java、C++、PHP、Python 和 Ruby 等领域,有一统江湖的趋势。 重构(二级) 即使团队用得最多的只是 Rename、Move、Extract Method 等几个基本动作,Java EE 架构里牵一发动全身的事情也 太多了,重构会帮你把所有事情做干净,所以我现在已形成依赖,如果不用重构,随便改一样东西,肯定造成一 堆东西编译不过或者 Web 应用启动失败。IntelliJ IDEA 作为第一个支持重构的工具,已经一路高歌把重构的概念 深入到 JSP、XML、JavaScript 和 CSS 等,实在是相当聪明。 Flying Error 提示和自动修正(二级) Flying Error 提示在 Java IDE 里已经逐渐成了标准配置,有错了马上提示就地更正,不需要积了一堆错误等到编译 时才慢慢查看 Error Message 排错。又是 IDEA,不但提示错误,还会提出几种可选的修正方案,你点一下就会帮你 自动修正。比如一个函数会抛出必须进行处理的 checked 异常,你如果调用了这个函数,IDEA 就会提示你“是在 调用的地方进行 Try Catch 呢,还是在外层函数声明 Throws 这个 Exception?”你选择之后就会帮你自动完成,感 觉非常贴心。 Smart Complete(二级) 比如现在要输入 myFirstBook.setPublishDate(publishDate)这句代码,上一代的 IDE 在输入 myBook.后,会弹出下拉 菜单显示 Book 类的所有函数让你选择。 而新一代的 IDE,AI 都高得吓人,总能通过变量类型与上下文的名字猜出你想输入的内容,比如“my+热键”就 能生成 myFirstBook,“(+热键”就能生成 publishDate。如此 Smart 的结果,就是我编码的过程中热键不断,成了 彻底的懒人。 Debug Java EE 应用(二级) Web 开发者一般用 System.out 或者 Log4j 来显示调试信息,但对于曾经桌面编程的程序员来说,直接进入调试模 式,单步跟踪程序执行路径,想看哪个变量就看哪个变量,才是天经地义的事情。慢慢的,这一代的 IDE 也已经 觉醒,通过与 Application Server 的集成,可以在 JSP,甚至第三方类库的源代码如 Spring Framework 的 HibernateDAOTemplate 里设置断点,然后单步执行,察看变量的变化。 如果左看右看,其他语言的 IDE 都很难符合上面的要求,不妨等待 Eclipse 的强大平台,一个个插件的慢慢统一。 5.团队 IM 工具和共享文件夹 关于交流工具,从前是言必称 Email 的。而随着社会的进步,现在更提倡交流的即时性,因此,“Face to Face”的交流被作为首选,早上 15 分钟的短会, IM 工具被作为与 Email 同等重要的手段。 说起 IM 工具,很多公司都会选择严肃的 MSN 而不喜欢 QQ。但我还是喜欢 QQ 的群功能,而且虽然提倡交流 的即时,但避免打扰对于开发者也很重要,QQ 新版的“来消息时只显示消息条数”能起到同样的免干扰作用。
  • 3. 最后是知识库,Wiki 有一个曾经是优点的缺点——Wiki 语法。它的简单只是对于那种用写字板写网页的高手 来说的,大部分人写文档的时候还是喜欢所见即所得的编辑。而且,Wiki 语法与 html 不兼容,造成了知识库与 互联网世界的鸿沟。不过好在 Cofluence 2.0 终于有了所见所得的编辑器,也可以弃用 Wiki 语法而直接使用 html 编辑了。 其他项目工具包括纸,笔,足够大的白板,随时可用的会议室。还缺了什么? 代码自动生成工具中也没有最趁手 的。 注:本文的全文已经发表在《程序员》杂志 2006 年第 5 期,更详细的内容请购买杂志,哈哈--泰稳过午不食 说。