2008年10月30日星期四

彩色UML建模-白板、马克笔和即时贴



David Anderson曾贴出过用即时贴在白板上进行彩色UML建模的照片,但是我找不着了。

结果什么都不是,重要的是得到结果的过程。这张图是IT人员和业务人员半天讨论的结果。这远不是最终结果,在开发过程中,还会有进一步的改善。

UML的最初意图是方便IT人员与业务人员的沟通,通过彩色UML建模的方法,我觉得大家对沟通的效果是相当满意的。

一般的文具小店很难买齐4种颜色的即时贴,我们就缺了蓝颜色,史泰博上有卖。

以后会议室的装修应该在墙上装彩钢板,可以作为投影屏幕,可以用磁铁在上面吸住一些纸张,也可以用即时贴在上面进行彩色UML建模。开发办公室似乎也应该这样。

2008年10月29日星期三

Terracotta - Java社区的力量

Terracotta 是Java社区力量的一个例子。它的Demo令人印象深刻,Case study也很打动人。

我能想到的是,做一个NAM集群,使用HSQL/H2/Derby这样的内存数据库,传统应用的速度要飞起来了。

或者使用 prevayler 的方式做持久,两台服务器组成一个16G内存的系统,成本也很低。

或者Apache Directory Server + HSQL/prevayler + Terracotta,建立快速的LDAP集群。

谁出钱请我去玩一下?呵呵。

2008年10月27日星期一

控制风险和把握机会

朋友问我为什么“软件如棋”,我的意思是“控制风险和把握机会

项目失败的风险有很多,关键是要意识到,并采取措施防止它变成灾 难。就像下棋,对手危胁你一块棋的死活时,你不能浑然不知。大龙不是一刀被砍死的。大的灾难就像麻绳,由许多细小的纤维组成。要对风险足够敏感,这需要知 识和经验。武士所感受到的杀气,有经验的程序员感受到的坏味道,Yourdon所说的“死亡行进”,都是对风险的感知。控制好风险,就立于不败之地。

如果你不主动进攻风险,风险就主动进攻你。

机会,就是你有可能将一些风险提前消灭掉。你有机会杀死对方的大龙,这盘棋就愉快地结束了。后面的风险都被你成功的提前化解了。例如复用一个成熟的产品,可能帮你消除沟通需求、编码、查错、测试、时间进度、成本等等许多风险。机会稍纵即逝,必需时刻准备着,要赢得漂亮。

先为不可胜,以待敌之可胜。

软件就像下围棋,在大量复用的情况下,每个项目都不一样。

人生也如棋。

有人问我Java到底是哪里好

程序员有一个很朴素的想法,希望自己写的软件被尽量多的人使用,所以Java的承诺是很诱人的,它保证你写的程序能在主流计算平台上运行。这将世界上大量的有想法的程序员聚集在了Java旗下。一个公司里面的牛人再多,也比不上公司以外的牛人多。另一个可以匹敌的社区是c/c++社区,但这个社区被分化成了linux c/c++和windows c/c++。

有了强大的群众基础,才会有天才选手冒出来。今天的Java,百花齐放,异彩纷呈。这可能让初学者感觉眼花缭乱,但这种情形正是高手所喜欢的。你可以有选择。就像Spring,可以选择不同意Sun的推荐J2EE架构,设计另外一套应用程序架构。

Java的社区足够开放,让所有好的想法不会消失。POJO组件的想法、Xdoclet的思路、组件必须容易进行单元测试的观点,集中在一起,让EJB改头换面。O/R mapping催生了Castor,但最后成就了Hibernate的辉煌,进一步又促成了JPA规范。在这些不断出现的创新中,我们看到了一个充满活力的、良好的生态环境。

在这个生态环境中,程序员如鱼游入大海。

在贴近硬件和操作系统的地方,是c/c++的领地。在浏览器中,是js的地盘。