2010年6月12日星期六

关于UML的个人见解——答周筠和霍炬两位老师

谢谢周老师和霍总的抬爱,我觉得很惭愧,
因为IT知识体系的大局观,我一直感觉不够。
UML在02-04年的时候,非常爱用。但是在后来到北大青鸟做教师,上了一遍UML课程下来,备课过程中,甚至是在批改学生作业的时候,才深感以前对很多基础的UML组成,根本就理解错了。也就是说那个时候所有的同事、客户都在乱用。我抛弃了UML之后,不但没觉得损失,还觉得写代码就写代码,直接、清晰了很多。在这样一个领悟后,我彻底戒除了IDE和UML。反而感觉工作能力有所提升。
对UML的立场,我也处于一个反复和深入的过程。一方面觉得像以前那样错用UML,真的是有害无益。但是经历很多同行企业,确实就是在这样误用。大家仅仅是处于对工具的生产力迷信,这其实是跟我早年盲目相信用VS或Delphi等RAD工具就一定比手写代码高效一样。特别是IT业涉及的生产领域非常广大,管理方式也越来越丰富。很多场合根本不依赖UML这样的图例工具,文本就足够整个团队进行沟通了。但是另一方面,看到一些企业也确实成功的使用UML进行工作。客观上来说,所有这样的团队都是在假装一种获得满足的状态?似乎不可能。我很困惑。
从自己意识到UML被自己误用的体验来看。我认为UML作为软件工程的一个发展成果,肯定还是有它的意义。特别是大型团队中的内外沟通。有一些软件开发工作,特别是我们通常说的大型企业应用项目。有些工作还很难靠开发人员的才华来突破,而是要靠一个团队去完成客观的工作量。这个时候,如果整个团队有一个大家都能理解的,可以图形化的,比较直观的沟通方式,确实是有积极作用。单纯个图形和线段。我想能完成的作用还是有限。但是围绕UML,是有一套基于文本的,清晰的定义方式和描述标准。只是了解这样一个标准,同样需要学习代价。更糟糕的是往往UML在团队中的使用价值,取决于平均甚至最差的那个使用者,而不是最好的那个。
从我的经验来说,我教过的ACCP的学生,几个班里能正确理解Use Case的不超过10人。能很漂亮的运用Use Case的,不超过3个。从我个人来讲,我用过各种UML工具,没有一个让我觉得很方便的可以帮助我快速画出我的想法。所有的图例工具都让我有一种跟不上思路的感觉。类似类图和代码之间互相转换的功能,更是让我觉得画蛇添足,华而不实。
要发挥UML的作用,我想首先应该推广学习最容易,对工作最有价值的那部分,如用例图,泳道图等。作为工作团队,不应该追求尽可能多的使用UML,相反,只在UML比文本好的时候才用它。尽可能的在纸上、白板上画图,哪怕画完再拍照或扫描。不必推崇完备的UML工具。特别是听过一些讲软件工程的课,老师们总是很推崇从ROSE之类的工具中,用UML生成代码,这种技术的实用价值我持怀疑态度。对于我所经历过的所有的工作场景,会用到的UML知识都只是非常非常小的一个子集。UML的最大价值应该是帮助人理解问题,把文本不易描述的问题直观化,让技术能力不同,知识背景不同的人形成共识。而不是帮助机器去构建。或许在J2EE风格鼎盛的年代这样的能力很好很强大。但是在现代这些动态语言面前,无论使用怎样的开发工具,Java/C#这样的静态、强OO、编译语言与之相差一两个数量级的开发效率,总是很难弥补。
另一点说,有个题外话。我有个朋友,他是个DIY发烧友,从我五岁认识他起,他就热衷各种手工制作。有次他给我看一个欧洲论坛上的文章。一个德国朋友讲如何在自家车库里制作涡轮风扇发动机。燃烧室腔体形状如何,可以从那些日用品中找到替代材料,涡扇要有几片桨叶,要扭多大的角度,为什么这样,数学公式如何,三视图如何。都一清二楚。这位德国老兄并不是克虏伯或奔驰的工程师,更不是什么航空专家。他就是一个普通的老百姓,一个单纯的机械爱好者。做这样的 DIY,不是单靠说我喜欢或者我手巧就可以达成的,它需要一种工程师的思维能力,一种可以把想法实现出来,一步步的变成现实的思维和实践训练。想到欧洲,特别是德国英国这样的老牌工业国家,遍地是这样的普通人。就让我产生一种复杂的感情。我们和他们之间的差距,不是一个问题两个问题的解决方法,而是更大的能力差距。当这种差距从一个人两个人扩大到国民这么大的一个团体,发达国家的竞争优势就体现出来了。
在软件开发的领域,这样的差距同样表现的非常明显。为什么人家的团队可以用的很好的各种开发模式和工具,包括敏捷、UML等,到我们这里来就一塌糊涂。这个并非我们不聪明,但是我们缺少真正的工程师的训练。
这些方面我见识少,说的比较混乱。再不打住,就不知道跑出十万八千里了。简单的说,UML,我承认他有用,但是应该在不增加负担的情况下有限使用。UML 是一个中间过程,不是IT开发团队最终的产物,不应该因为它给团队带来负担。大家能读懂到什么程度,能用到什么程度,就到那个程度为止。因地制宜非常重要。不能削足适履。特别是对于我们身边常见的开发团队,和项目领域,如果不是复杂的,需要长期维护、需要大量的跟客户深度沟通的企业应用项目,UML的意义并不大。

2010年6月10日星期四

【搬家旧闻】 如果我们的行业充满这样的人和事

江湖笑话,诸君不必当真:

话说当年3721周鸿祎周总跟百度李彦宏斗得不可开交。两人公堂对薄。周总赢了,出来时喜形于色,冲着李总招呼:怎么样,我赢了,你打我啊,你来打我啊?

李彦宏无语,过去伸手打了他几拳,一脸黑线的跟周围的记者说,你们都看到了吧,是他要我打他的……

这事儿怎么说呢,真要是有这么喜剧的段子发生在一群新闻记者面前,居然一点风声都没走漏出来,我是不信的。何况李彦宏这么相貌堂堂的一位大叔跟男人打粉拳……这场面太难接受了……呃……

然则艺术总是来源于生活,想高于生活却未必能成功。人的想像力有多强大,用想像是永远达不到的。例如就有一位0bug 老师 ,别人帮他指出书里有错误,他就能把人想像成是仇家派来玩儿他的。路过的酱油众发表一下意见,他就能把大家都想像成枪手。当然真正让人绝倒的还是他能想像的出一种称为O(7)的时间复杂度……

现在不要问我出处,0bug老师删帖的本事出神入化的说。我只能就近给各位展示一个喜感的段子。就是Milo Yip撰文(http://www.cnblogs.com/miloyip/archive/2010/05/27 /reply_discrete.html)讨论相关的问题后,肖老师居然能想像出这么伟大的由头:你侵权!(http://blog.csdn.net /tonyxiaohome/archive/2010/05/28/5631256.aspx)。

且不说这是不是讨论问题的态度吧,也不说这Milo Yip说的是不是在理,能想出来这么个“罪名”,这得是什么样的想像力啊……喂同学你的逻辑在哪里啊……尤其在与肖老师亲切交流之后,我已经吐槽无力了:


tonyxiaohome 博客专家 发表于2010年5月28日 23:08:43 IP: 举报 回复 删除
回复 missdeer:举个例子吧,我现在就、能让你闭嘴。

missdeer 博客专家 发表于2010年5月28日 23:13:49 IP: 举报 回复 删除
回复 tonyxiaohome:在说呢,没闭啊

ccat 博客专家 发表于2010年5月28日 23:15:00 IP: 举报 回复 删除
回复 tonyxiaohome:激动,赶紧占个“现在”的座儿

ccat 博客专家 发表于2010年5月28日 23:17:33 IP: 举报 回复 删除
回复 missdeer:被事主儿抢了沙发了……

tonyxiaohome 博客专家 发表于2010年5月28日 23:20:43 IP: 举报 回复 删除
回复 ccat:被闭嘴还能再说,这份脸皮,佩服。嗯,不是枪手的话,一般愤青做不出来。看来,一个人为了钱,什么都干得出来。有个东西叫做廉耻知道不?不知道,回去问问爸爸和妈妈。

ccat 博客专家 发表于2010年5月28日 23:22:16 IP: 举报 回复 删除
回复 tonyxiaohome:您指望对墙角画小人儿就能控制言论了么?出版署情何以堪吖……

唉……太那啥的话我就不想说了,这个对着电脑屏幕幻想能让对方闭嘴的强大头脑,难不成是用啥特殊材料做成的?

忘了这哥们儿啥公司就职来着,但是我越来越看不懂,一个求平均数都不会,时间复杂度能算出O(7),每天对着电脑把不同意见者幻想成各色仇家的人,到底是怎么混到今天的?这年头难道真是只有数盲才能做领导?

其实今天本来没肖老师啥事儿的(呃您真无辜)。我想谈的是另一个问题,就是周鸿祎老大对金山的持续性抹黑。

周总是老江湖,自然不会像肖老师这么没水准。实力在那个摆着,掩耳盗铃每天冲着求伯君先生的头像说“你已经被我卸载”了之类的蠢事想也不会去做。人家老周想到,直接去做就是了。

于是,360就真的把金山的一系列安全产品都当做木马什么的卸了。然后还要假模假式的摆着提示在那里,跟用户说:这个很危险,我是为你好。

事至于此,360已经迈过了安全行业大家都视作底线的地方:全面的,无任何理由的将竞争对手的产品列入黑名单。拆台的事儿我不敢说大家从来都没干过 ——实际上很多互不兼容的糗事儿确实是无意造成的——,但是干的这么明目张胆的,真是平生仅见。当然360过底线的事也不止这一件了,其它我就不多说了,免得跑题……

也不能说以前这事儿从来没出过,3721也曾经跟人在IE的地址栏上打得不亦乐乎。呃,那也是周总大作。

更搞笑的是周鸿祎突然间正义感大作,跑出来在微博上不断揭批金山种种“黑幕”。每天到微博上上班的敬业精神,真是肖舸之流忘尘莫及啊。

周总的高明之处在于,有据可查的谣绝对不造,百分百的假话绝对不说。深得韦小宝真传。例如说金山用DDOS攻击了批评金山产品的国外评测网站,这事儿我们听得这个莫名其妙。哪家网站?莫非AV-C?可是人家总裁刚刚来信说金山的产品很不错啊囧……

然则这种事情你去跟周总对质是不行的,人家又没说是哪个网站被黑了,而且更高明的是绝对不说消息来源是哪里,一口咬定是充满了正义感的内幕人士打电话来爆的料……

说金山踩微点和瑞星也是同样的路数。证据的不要找我,反正我就是知道,我消费我自己的信用还不行么?周总高明……

同样的事情,当年3721也不是没对百度做过。现在3721在哪儿?百度在哪儿?尔曹身与名俱裂,不废江河万古流。

(开复老师:咳咳,这楼主你真会瞎联系……)

境界决定成就,哪怕你只有五十步,至少也可以笑百步……

给人扣帽子的本事,肖老师您真是得学一学。你没听说过Milo Yip这不是你的错,但是你总不会说周总也是我们派来的枪手吧。

周总有逻辑,肖舸没逻辑;周总有目的,肖舸……这个目的的问题,或许有,或许……

境界啊……所以人家叱咤风云,李彦宏何等人物也为之无可奈何(开复老师要内牛了吧……)。肖老师就只好跟我们这种小人物比一比CSDN谁注册早啊什么的……金麟岂是池中物,肖老师您要雄起啊。

其实肖老师今天挺无辜,原本是上来吐槽一下周总,想着说万一写精彩了,周总过来骂两句,兄弟我也就红了不是。可是肖老师这段子真把我逗乐了。就是那个说人侵权的文章,我回了一句:

智拙 评论了博客:请博客园立即停止侵权行为的公开信 4小时前
作人别这么颠倒是非行么?人家指出你的程序有问题,你要是不服可以从技术上正当的回复,居然说人侵权,要不要脸?欢迎删除,今儿我心情好,你删除的话我转手就给你找地方再发出来。

肖老师真是配合,删了这个回复不说还加了句:

tonyxiaohome 博客专家 发表于2010年5月28日 22:10:46 IP: 举报 回复 删除
回复 ccat:我呢,先回你再删,留个印记。我就删了,你咬我?

ccat 博客专家 发表于2010年5月28日 23:03:05 IP: 举报 回复 删除
回复 tonyxiaohome:老肖这么给面子,这坑我不填都不好意思啊,周末开心些哈,等我弄完正事儿慢慢聊,介时一定要捧场哈。

啧啧啧……话说大家都看到了吧……这是他自己要求的……

IT业原本应该是一个相对比较干净的行业。自己能骗,编译器没法骗。一个客户能骗,整个互联网没办法骗。一年两年能骗,历史潮流不能骗。广泛的民众化参与,机械精准刻板的行为,决定了我们对真实和逻辑的天然亲近。然而我却看到的是越来越多的无逻辑,越来越多的敏感词。从江湖大佬到隐士高人。总有那么一群人,想的不是如何走正途做正事。而是如何用谣言、抹黑干掉竞争对手,和反对他的人。如何用欺骗和恶意的技术抢占用户的终端。只要没有对手,没有反对,删帖是可以的,在网页里插代码安装3721也是可以。他们努力把这个行业变成泥潭,好在里面可以打个滚。

当年微点事发的时候,求总多余的话什么也没有说,只在内部讲讲“做自己的事,不看别人笑话”之类的。今天的360事件爆发出来,几位老总也仍然是 “安心做好产品,我们不做恶,公司支持你们”。

你要说我来金山,困难遇到过,不顺利也有过,但是从这个方面,我从来不后悔来这个企业。

不在其位不谋其政。我不是什么官方发言人,死Coder而已。我不代表传说中我背后的枪手大佬Milo Yip(要按肖老师的逻辑Milo可以组个洋枪队了,还搞什么IT啊……),也不代表我东家,谢谢。

[文章搬个家] 关于0bug事件,表个态吧

热心读者指点,“下划线下划线下划线”应为“减号减号减号”,特此更正。

===========================================

最近网络上闹出这个0bug事件,我一直只是个围观的酱油党,最多背地里招呼朋友一起围观一下
。不过这件事现在看来是没完没了了。

其实事情原本不复杂,这位肖舸
先生写了本《0bug – C/C++商用工程之道》,然后一些读了这本书的业界人士来写了一些书评,评论了其中的一些问题。前面的链接指向豆瓣,大家还可以看到那些书评。


这在IT界,本来是再正常不过的事情,一来再好的书或者软件也会有错误;二来有人帮你找出错误,这说明你的书有人读,而且这个读者具有一定的水准,可以帮你和你的其他读者提高。所以侯捷老师就曾经撰文大力推崇为技术书籍勘误。



在事情的开始,确实如我认为的那样,陈硕先生写了一篇书评
,肖舸客客气气的接待了,气氛还算融洽。我当时还在豆瓣上推荐了这篇书评,因为我觉得宾主相和,难得看到这么精彩的讨论。C++语言我虽然已经多年不用了,但是看到有这样的思想碰撞,还是很开心的。



然而接下来的事情发展越来越让我看不懂,这篇评论
,无论内容的水准,还是作者 Milo 先生的态度,都是非常让人感动的。肖舸同学却一跃而起,跳出来污言秽语,大骂不止。原想看到一场更精彩的讨论,却遇到了泼皮耍赖。围观群众当场就惊呆了。其前倨而后恭,判若两人。让人大惑不解。某位同学的评语或许道出了个中秘密:肖舸知道陈硕是谁,却不认识 Milo。



这事情就让人觉得有点搞笑了。连围观的各位都看得出, Milo 无论学识人品,都不知道甩出肖舸几条街。难道肖舸待人,只看听没听说过?江湖之大,用这种态度做事,就算只读过武侠小说的也知道会杯具。



嗯,观众最爱看的就是高手出山,遇上强人剪径,“纳尼?王重阳的干活?不认识!找打!”



而最具戏剧性的是,第二天早上肖舸同学他,他,他……他竟然把自己的回复都删了!



这可就搞笑了,我对此的评价是:“你当你是卓越?说删就删?”(不懂的同学请搜索“卓越 二十五元 二十四史”等关键词)。



于是闷笑后,我也忍不住搞了一个收集贴,不过收集的不全,大家不妨猛击以下链接
。还有减号减号减号老师的精彩表演哦~



是的,肖舸先生已经干脆的把自己的ID改成了---。



卓越也没有这样的事啊!



至于肖老师后面的种种表演,大部分集中在CSDN上他自己的专栏,那里他可以删帖可以关评论,只留下排山倒海的拥护声,尽可以关起门来自慰。我就不多引介了,大家有兴趣可以自行围观。



关于这件事,这个人,我的看法是逐渐在改变的。最初是欣赏,然后是惊讶,再是哑然,然后就开始越来越厌恶了。



在事情发展的中期,曾经有位老师私下问我,我说,自问有人为我的写作挑毛病,我能不能欣然接受?忐忑不安。我们在潜移默化中接受的危机教育,就是不择手段,决不可被人打倒。我不是个心胸开阔的人,不知道能不能做得比肖老师好。



而后我却读到了肖舸的神作
。当时忍不住取笑了一句:“满清大员初见蒸汽船无风自行,以为牛拉”。



时至今日,我只有含笑不语了,朽人粗鄙,但总还是知耻的。再不济你关起门来自省几天还不行么?



倒是 Milo Yip 从始至终,一直在对事不对人,对书不对人。人家肖舸污言秽语对他,他几乎没有过一句回嘴。



桃李不言,下自成蹊。你肖舸搞个闭关自守,不和谐者莫入,固然在你一亩三分地上,Bug的没有,批评的没有,毒奶粉的没有,伟光正的一塌糊涂。天下之大,你还准备封众人之口么?



大清也没有这样的事啊。



鄙人既非名家,亦远离C++多年。原本与此事无干。单纯只是看个热闹。然则你写了这么一本名目吓人的书,却半点错误都不许人指正,无礼无智,徒增人笑耳。