RSS 2.0 Feed
2004-02 Entries
摘要:这两天公司在美国那边的一个OnSite来上海和我们讨论上一阶段工作中存在的问题,以便下一阶段改进。这位老兄是个印度人,看样子果然是见过市面的,巨能侃,再加上我们对印度那边的过程管理本就有点崇拜心理,搞得大家对这老兄佩服的不行。 讨论中,我们说上一阶段需求改得太厉害,OnSite显然有责任。这位老兄说,那些需求都是客户公司的老板拍脑袋想出来,We developped for him,因此这个他们OnSite也控制不了。他说,知道美国人为什么说The customer is king,而不说The customer is God吗?大家蒙了,这怎么会知道呢?于是他解释道,因为God forgives,而永远不要指望King forgives。看来我们中国人错了,顾客是国王! 不过不得不承认,印度的过程控制是比我们这边强。讨论时,他觉得我们现在使用的方法不好,我们说我们是按照XP的指导原则实践的,甚至有同事向他引用XP书上话来说明问题。没想到他说了一句话,让我感触颇深,他说,这说明XP用在这里不对,XP不适合我们的项目。然后他仔细解说了XP的要求和我们项目的实际情况的差距。试想我们这边的程序员,大家一听XP,立即就会一种近乎膜拜的心理,谁还敢提出质疑?还不是书上怎么说,我们就怎么做吗?这种质疑与挑战的精神恐怕才是我们真正缺少的。...[阅读全文]

posted @ | Feedback (3) | Filed Under [ 工作 ]

摘要:在CSDN上看到一篇新闻,帮你组织思维的可视化软件,讲的是一种用来记录和组织思维活动的软件,MindManager。其实Visio 2003中也有类似的功能,就是灵感触发图(brainstorming diagrams)。下面这幅就是Visio中灵感触发图的图例: 用这种图来组织和管理一时得来的灵感或者关于某件事情的思维还是很有效的。我曾经见过一张很大的用Visio画出来的灵感触发图,根据这张图产生了一个软件项目...[阅读全文]

posted @ | Feedback (10) | Filed Under [ 学习 ]

摘要:一直以来,我对软件开发方法学方面的知识都非常感兴趣,也一直在看一些这方面的书籍。最近主要在看的有两本书,《应用MDA》和《测试驱动开发》。   大致读来,我个人的感觉是,这是两本书各自所关注的开发方法似乎截然相反。《测试驱动开发》众所周知,是一本讲述XP的基础原则之一,测试优先,的书籍。它关注的是XP的方法学,即抛开纸上谈兵的设计,而回归代码本身,因为代码就是最好的设计。而《应用MDA》则强调模型驱动的方法学,认为我们应当关注于模型的设计,而将代码的生成留给代码生成器去完成。虽然《应用MDA》的作者说,MDA和XP之间没有矛盾,因为MDA中的模型已经不止是设计工件了,同时它也成为了开发工件。但我仍认为,至少在未来相当长的一段时间内,MDA和XP仍会是两种对立的开发方法,除非有非常出色的MDA工具出现。   《应用MDA》为我们描述了一个非常美好的未来:使用形式化(我不大理解形式化这个词的确切含义,不知道对应的英文是什么?)的建模语言建立精确的设计模型,然后由代码生成器来生成具体的程序代码。这种由精确的设计模型产生的代码甚至不需要我们做任何的手工修改。想象一下这该多么美好呀,我们只需要产生一个设计模型,然后,如果我们需要.NET平台的代码,我们就使用为.NET平台定制的代码生成器,如果需要Java代码,就用Java代码生成器,以此类推,从此再也没有了移植的烦恼,我们的设计就真正的与平台无关了。   但是这个美好的未来真的就只属于未来,我们需要等待。首先需要等待一个能够建立足够精确的模型的形式化建模语言的出现,现在看来UML2.0还是不够,我们得等3.0甚至4.0。其次我们需要等待代码生成器的产生。目前有的一些代码生成器,在设计和代码的同步上存在较多的问题,未来的代码生成器,理想上是生成完全无须手工改动的代码,即使不能实现这一理想,也应当解决现有的问题。所有的这些等待可能会很漫长吧?   而《测试驱动开发》用活生生的例子为我们描述了一个立即就能使用的开发方法,XP。从这本书的例子我们就能够看出一个典型的XP过程的大致轮廓来,拿到需求不做任何的分析和建模就开始写测试代码,为了使测试通过,开始写程序代码,测试通过之后重构得到干净的代码,然后迭代上面的步骤,最终一个模块完成时,确实得到了一个非常好的设计。   我一直比较推崇XP方法,并且在项目中实际使用这个方法开发。我想对于国内大部分的软件公司,XP方法都是适合的,因为国内公司通常遇到的项目总是时间紧、人手少的。但是在实际的使用中我也遇到了一些问题,最主要的是对于比较大的项目,由于没有一个总体上的设计,使得新加入的开发人员很难从整体上对整个项目有一个清晰的认识,这样他们往往容易过分地陷入到细节之中,从而需要花费更多的培训成本。我们现在的作法是,在大项目的phase之间,根据系统现有的体系结构补充一些设计文档。我喜欢Martin Fowler在《UML Distilled》中说的一句话:Teams should grow their own processes, using published processes as advice rather than as standards to follow.   如果说XP是属于现代的开发方法,那么MDA可能就像董方卓是属于未来的球员一样,是属于未来的开发方法。我们也应当一颗红心,两手准备,既要抓住现在,又要盯住未来(不要说我贪心呀J)。...[阅读全文]

posted @ | Feedback (14) | Filed Under [ 学习 ]

摘要:昨天公司里进行domain的migration,中间出了点问题,使得一个下午都不能正常工作。临近下班的时候,网络管理员突然告诉我,我用的两台机器有问题,网络流量特别大,估计是中招了。没办法,只好先拔掉网线,运行诺顿扫描系统,看看是不是真的中了病毒。经过对笔记本的扫描,没有发现有病毒,台式机由于安装的软件和各种数据文件太多,我离开的时候扫描都还没有结束。 现在仔细的想了想,我使用的诺顿企业版是与公司的诺顿服务器连接的,应当可以保证具有最新的病毒定义码(事实上,我机器上的病毒定义码确实是2月18日的最新版本),最近机器中没有发生过病毒警告,中毒的可能性应该不大。那么是什么原因使得我的两台计算机网络流量过大呢?收到管理员警告时,我正在用笔记本通过Remote Desktop连接到台式机上工作,但Remote Desktop应该不会引起如此大的流量吧?那么就最有可能的原因可能就是由于启动了什么服务。 安全起见,我决定装一个个人防火墙。今天早上上网搜了一下,发现费尔个人防火墙是个不错的选择,装了一个,希望能够发现到底是什么在搞鬼。...[阅读全文]

posted @ | Feedback (3) | Filed Under [ 生活 ]

摘要:刚才整理自己以前的一些学习笔记,发现了这篇关于BCBX的笔记。当时本打算写一篇比较详细的使用感受的,可是中途又忙别的事情去了,因此没能写完。现在也没有时间继续玩BCBX了,就把这一小段文字聊记于此吧。 ------------------------------------------------------------------------------------------------------------------- 前一阵子就拿到了BCBX的试用版,我以前一直没怎么用过Borland的开发工具,又看到介绍说它用的是JBuilder的IDE,因此没有引起我多少兴趣,就随手将它丢在一边了。看了这一期《程序员》上李维的《细说Borland C++ Builder X》之后,忍不住又将它翻了出来,想试试这个据说有希望成为史上最强的C++集成开发环境的软件到底是不是真如传说中那般强。   BCBX的特性有,多编译器自由设定,Mobile开发支持,Modeling/XP支持等。这些李维已经讲的很多了,与我手上的这个试用版印证了一下,发现我的这个试用版中除了没有提供wxWindows这个Framework,所带的Together是Trail版之外,其余的大都差不多。我的感觉是,这个BCBX似乎没有李维说的那么强,要成为史上最强的C++ IDE,具有一定的潜质,但还有相当长的路要走。   比如说BCBX的最大卖点之一——多编译器自由设定。这个特性为我们学习不同编译器的特性提供了很好的辅助环境,但我很怀疑除了学习和跨平台移植之外,有多少C++项目真的需要使用多个不同的编译器来完成。而为了跨平台而放弃原先很有特色的RAD功能是否值得?据李维讲,BCBX中提供了基于wxWindows的RAD功能。我所使用的试用版中没有包含wxWindows,但我认为即便是wxWindows的RAD与以前BCB中的RAD做的同样出色,wxWindows毕竟也是一套全新的Framework,这个学习曲线还将是陡峭的。当然,能够自行设定编译器也是有好处的,当编译器有新版本时,不用连IDE一起升级了J   BCBX的另一大买点是对C++ Mobile开发的支持。我对Mobile的开发没有什么经验,只接触过.NET Compact Framework,对用C++开发Mobile程序不甚了解。看了李维的介绍,才知道C++ Mobile开发的解决方案比较混乱,不同厂商、不同版本的Mobile SDK竟然支持不同的编译器。由此看来,BCBX支持多编译器设置也许是出自形势所迫J。但是面对这种混乱的状况,让我选的话,我宁愿使用.NET Compact Framework或者J2ME。   将Modeling/XP引入C++开发确实应该算是BCBX的一个创举了。C++的建模工具一直比较缺乏,以前VS6的时代,Rational Rose也支持VC6的开发,但是使用Rose和VC建模,速度首先受不了,同步起来非常困难。试用了一下BCBX中的Together,虽然功能不全,但效果还是可以接受的,相信正是版应该会令人满意吧。...[阅读全文]

posted @ | Feedback (2) | Filed Under [ 学习 ]

摘要:周末终于搞定了本本,Acer tm290xvi的升级版,具体配置是:Intel Pentium-M 1.4GHz / 256M DDR / 14.1” / 40G / 8x DVD / 56K V9.2 / 10/100M / 802.11b 本来想买IBM的,可是我比较中意的那款R40-J4C停产了,没货。相比起来觉得这款Acer的性价比比较高,扩了一条Kingstone 256M DDR内存,一共花了12K。机子用起来也比较爽,电池充满电可以连续使用5到6个小时。美中不足的一点是没有刻录功能,并且不是独立显存,还好这台机子不是打算用来做很多图形方面的应用。Acer相同型号的一款带刻录的机子,比这台大约贵900到1000块,不如买一个好一点的外置刻录机划算。 我本本的照片:) ...[阅读全文]

posted @ | Feedback (8) | Filed Under [ 生活 ]

摘要:早已在China-pub上定购了《应用MDA》这本书,可是现在还没拿到,可能就这一两天就会到吧。 书还没看,就先看了孟岩的书评。孟岩的书评很精彩,他将MDA描述为软件领域“专家阶层”的反“恐”武器。虽然我并非“专家阶层”,可这种恐惧感却也时时有之,对这件看上去很强大的武器自然是拭目以待了。 看看Martin Fowler对MDA是怎么说的。...[阅读全文]

posted @ | Feedback (0) | Filed Under [ 读书 ]

摘要:自从来了上海,我就失去了属于自己的电脑。主要是我比较懒,想想以前那台笨重的电脑,要从西安搬到上海来就觉得头晕,想着不如重新买一台算了。 这阵子思来想去,还是决定买一台笔记本电脑,主要是拿起来方便。对笔记本方面我了解的不多,大家有什么好机型给我推荐推荐呀,价位嘛,最好在13k到15k之间啦。...[阅读全文]

posted @ | Feedback (18) | Filed Under [ 生活 ]

摘要:Microsoft Win32 to Microsoft .NET Framework API Map提供了一个比较全面的Win32 Api与.Net Framework Api之间的映射列表。这样,当我们在.Net中要使用P-Invoke来调用Api的时候,可以先查查这个列表,看看有没有对应的.Net Api可以使用。...[阅读全文]

posted @ | Feedback (5) | Filed Under [ 学习 ]