重构是一种生活

今天大家都在谈奥运,俺昨晚睡得香,没看。今天周六,早上也没有《第一时间》可看,所以啥也不知道,木有发言权。

谈技术,谈技术哈。^O^

《重构》已经快要看完了。前几天在我的一篇POST《适可而止》中,RL留言说:

>重构看了几篇就不能再看了,再看消化不了。:〉

我倒不同意这个看法。正如译者之一的熊节所说

《重构》是一本这样的书:也许你读完一遍之后将不会再读第二遍,但却会时时刻刻想起它,因为它已经潜移默化了你的习惯。

我现在就有这样的体会。

这两天在改一个老程序,要加一点功能。当我看到其中部分代码在其它地方出现过,我就很自然地Extract Class了。而新增的功能比原来的用法还多了一些东东,于是我又做了一个Extract Subclass。

如果换到以前,我也许还是会Copy&Paste一下,因为重复的代码很少,我不太习惯写一些很小的Class。但是《重构》改变了我的习惯。

当我看完《重构》的时候,大概它就会成为我编程生活的一部分了。

比较汗的是:俺现在还是没怎么用TDD的做法。-_-|||

一看到这一大堆老代码,真不知道要从哪里开始写测试代码。

BTW:准备下午K歌去喽。HOHO^O^

政治.net

这是今天第三博了*^_^*

今天的一条新闻是关于我们福建的:《反腐书记黄金高受采访失声痛哭 坦言压力很大》,他的那封公开信我昨天刚看过。

他在人民网发表这样一封公开信,直指福州(他是连江县委书记,而连江县是隶属于福州的所谓“五区八县”中的一个县)–或者说是中国政坛–的“潜规则”。

说到这个“潜规则”,我又想到娱乐圈的“潜规则”,数月前,张国立的儿子张默殴打女友童谣一事被弄上网,踢爆了所谓的娱乐圈的“潜规则”。这次的政治“潜规则”被踢爆,同样也是网络干的好事。

回顾一下因为网络被踢爆的事情吧:孙志刚、非典、小汤山……

作为人民的一部分,网民在其中扮演了重要的角色。政治,从由士大夫主导的时代走向平民化的时代,政治开始升级到了“政治.net”。

不透明,是官僚和腐败的滋生的最主要土壤。而网络即将或正在改变着,很多事都在慢慢变得越来越透明。什么时候老胡也有BLOG时,那就好玩了。^O^

这对于人民来说,无疑是一件好事。但对于国家和政府来说,则是一个新的挑战,如中央党校专家所说的:《党执政能力面对三方面严峻挑战》,其中就谈到脱离群众的问题。

不过所有的事物都是有利有弊的。网络也不例外。

比如某些缺乏理智的狂热、伪科学的谣传、以及其它的非法行为也很容易在网络上散播开去。

BTW:台风“云娜”造成数十人死亡,京珠高速公路发生重要交通事故造成十余人死亡,美军在伊与反美武装激战造成数百人死亡……

BTW2:今天是百年奥运开幕的日子……

BTW3:……

BTW之RP与写书

就事论事是最高原则,人参公鸡是一定不要的。

不过:RPWT的人写不出好书。这句话则多少有一点人参公鸡的意思,虽然这是一句实话。

最近RL批了两本书:老梁的《编程高手箴言》和刘艺的《DELPHI模式编程》。

前一本是跟ARI争论,这次又跟小错争论。

好像两次我都是比较站在RL一边的,汗,要保持距离的说。-_-|||

不过总来的说,我还是希望自己能就事论事一点。每人个的技术都不可能是面面俱到,写出来的书总是难免会多少有点问题,但他们毕竟比我们强,他们还是写了,我们只有空谈。

但就这两本书来说,我觉得老梁和刘艺都犯了一个共同的错误,就是GIGIX所说的:对不熟悉的事物乱置喙。

这应该列为写书的一大忌,应该引以为鉴。

BTW:俺还要承认,俺对老梁是有点成见的。

俺用他的超级解霸(俺买DVD光驱时配的正版),做了N多MP3,在电脑上听一直没觉得不妥。直到后来用MP3Player播放不出来时才发现问题。因为生成的文件扩展名是MP3,老版本的WINAMP里也没有细分,直到我用了FOOBAR才发现:原来解霸生成的所谓MP3很多居然是MP2(我也不知道为什么不是全部)。但我那只破MP3Player就是因为这个原因而放不出来的。

这令我非常愤怒,因为这些MP3中很多的原始CD在搬家时丢了,再也找不回来了,而解霸居然用MP2来欺骗我。你当然可以生成MP2,但你要告诉我,你生成的是MP2,不要拿MP3来骗我,这是我所无法忍受的。而且就算你没有能力自己编写MP3生成算法,有免费开源的LAME在那里可以用,为什么要欺骗呢?

发泄一下不满,感觉爽一点了。^O^

BTW2:自己掌嘴了,不但不厚道,还人参公鸡了-_-|||

BTW3:俺在《我们的院士和教授。》中的评论也不大厚道的说,王选曾经还是俺们的偶像之一的说。不过所谓不在其位不谋其政,既然做了管理,就表对技术细节乱置喙。8过偶们搞技术的好像也不应该对管理乱置喙的说。-_-|||

关于写技术书籍

一觉醒来,BORLAND版又热闹了:

先是RL的两篇《开会无聊,冷评《delphi模式编程》》和《我们的院士和教授。》,我昨天看完就下班了,没想今天引出一堆的争论来了,此外还有两篇新的POST:小错的《老虎,棒子,虫子,鸡》和RL的《谈言论自由

至于关于RL的《论“抵制日货”应该缓行。》以及他在CSDN发的贴子,还有剑神和他关于这个的争论我就不掺和了,我的观点以前在《一不小心,我成了亲日的汉奸》中已经说过了,再说就罗嗦了。还是那句话“别人有别人看法,无法强求”,我只表达我自己的看法。

回到刘艺的书上来。就RL说的两个问题,我的看法是这样的:

古人云:文人相轻。其实程序员也是“相轻”的。刘艺即使真有略贬李维之意,也是可以理解的。

至于在书里贴代码,这种事我也干过,就不说了,说了也汗。如我在RL这篇《以往的一些话语。》中的评论所说的,一方面是出版社催稿,再则又有字数要求,也就只能用代码凑数了。

当然,不可否认这是一种很不负责任的做法,但很多时候做事情还真由不得自己,特别是当我们还是一个小人物的时候。李维可能敢说不交稿就不交稿,我们可不敢,出版社可是可以说不出版就不出版的。看着自己的心血落空,估计大多数人受不了,所以只能屈从了。BTW:不过刘艺多少也算半个名家了吧^O^

当然出版社也有他们的难处,目前技术书籍出版的竞争非常的激烈,题材撞车的概率很高,而且一般的技术书籍印数就只有几千册,如果比别人出得晚,销量可能就要少很多,对出版社来说,风险很大。除非是名家之作,还有可能可以靠作者名声保证一定的销量,比如《Inside VCL》应该说出得比较晚了,但是出版社照样敢出,而且情况好像还不错。

当然批评还是要的,就是令狐在《开会无聊,冷评《delphi模式编程》》中的评论所说的,就是我们昨天下午讨论的内容。滥用模式的过度工程已经成为目前模式应用中的一个大问题了。虽然刘艺此书对模式的入门者肯定会有帮助,但同时也可能对模式的入门者造成比较严重的误导作用。关于这方面的问题,我这两天也说过:《软件的永恒之道–模式的运用模式》和《适可而止》。

师者,传道授业解惑者也。刘艺作为一个副教授,这种误人子弟的做法是不合适的。与其空想一些不合适的例子(如令狐所说:为了模式而模式),不过将自己在实践中碰到的实际应用模式的例子说一说,可以不必把GoF的23个模式说全,但一定要把每一个说到的模式都说对,最不济的情况就是照抄GoF嘛,那也比一个不合适的例子好。

GoF四个人才讲了23个模式,平均一个人不到六个,我想他们不至于只知道这么几个模式吧,但这说明了他们的谨慎和负责任的态度,没把握的内容绝对不说。还有其它像Martin.Fowler,D.C.Schmidt等都为模式世界作出过很多贡献。刘艺想在一本书里把这些都讲好,以他的能力,我想不太可能。就算是GoF精通DELPHI,要做到都很难,以Singleton模式为例,在DFW和CSDN我都看到过关于其用DELPHI实现的讨论,与C++和JAVA实现就有比较大的差别。

其实还是令狐的建议比较好:刘艺应该就他做过的实际项目来写。如果他水平够高的话,这个项目的实现应该会有比较好的架构,并且一定会用一些模式(当然不可能是全部,有人说过:如果你在一个项目里用到了GoF的所有模式,那么的设计一定有问题),他只要写一本书把这些用到模式的部分拿出来详细说一下,一定会比现在这本要好。

就我个人的写书体会来说,对于一个没经验的作者来说,很容易被出版社牵着走,结果出一本自己也不满意的书(比如我自己)。刘艺早年的两本关于DELPHI企业应用开发的书还是不算太差的,虽然对设计等方面介绍得还不够,但至少在开发的具体技术方面说到不少别人没有说过的新东西。但后来写一些关于DELPHI面向对象编程或现在这本DELPHI模式这样的书,我觉得有点超出他的能力范围,因为不管是面向对象,还是模式,都是一个很大的课题。而刘艺毕竟也出过不少书了,还犯这样的错误,我觉得不应该。

事实上,我后来也曾经想过写一本自己理想中的书,一本介绍用DELPHI进行多层应用开发的书(一年多前还曾在CSDN DELPHI版征过书名,后来因出版社方面的问题,最后取消了),但实际动笔以后发现有点头大了。虽然我做过不少这方面的开发,也算有点经验了,但实际的情况是这样的:

我所做过开发、所了解的技术内容就像一条弯弯曲曲的线,甚至可能是断断续续的,它贯穿了我实践过的内容。而我想写的书,其内容却是这条线所覆盖的面,这时我才发现我的了解不但不连贯,而且还缺少很多的分支,汗如雨下,只能一边写一边补习这些内容。

我甚至有点庆幸最后这本书的夭折。据说RL的师傅–小小–也曾经想写一本这方面的书,不过后来好像也流产了,还好。其实我们都还缺乏对这种较大的题材的把握能力。

所以现在我只对技术的局部写一点东西,比如RL说到那段关于TThread的,因为个人认为目前还没看到有一本书能把它讲全的,而这又相对是一个小的课题,我想我还是可以把握的,只是拖到现在还没有写全,汗-_-|||

说别人总是容易的,自己做就难了。批评总是容易的,自我批评却总是难的。

做人,要厚道。

刘艺的书大概还是可以一看的,只是一边看要一边提醒自己:滥用模式的过度工程,比没有模式更糟。

做人要低调

自从把大家的RSS加到SharpReader里并设置了十五分钟刷新以后,一看到SharpReader的提示窗,就忍不住四面出击抢坑。到昨天在restart那里抢到第一百坑后,便自封一个“坑霸”,得意洋洋^O^

不过今天发现这三天基本上没到干什么正经事,过几天老板回来就要准备下岗的说。

为了饭碗考虑,俺决定还是收敛一点吧。

做淫,要低调(-_-)

适可而止

自打聚会以后,就没怎么谈过技术,汗。

《重构》已经看了一大半了。我注意到其中介绍的七十多种重构手法中,有相当一部分是对称手法,比如:Extract Class和Inline Class、Change Value To Reference和Change Reference To Value等。这说明了一个问题:凡事适可而止。

其实上周就打算写这么一篇的了,起因是猎手的一篇《Web Service的执行效率》。虽然在那篇POST里,我们讨论的是关于优化的问题,但这其实是一个普遍的问题,不仅对于优化,其它也是如此。

比如模式的滥用,之前我们也讨论过,其实关于模式的滥用问题,早在两年前,我就在GIGIX的文章中看到过,这种情况甚至有一个名字,叫做“过度工程”。

重构则更加明显。对称的重构手法意味着大多数手法都要根据具体情况适度运用,一但发现有过度的情况(伴随着Bad smells),就需要采用与之相对应的手法反向重构,直至消除Bad smells。

推而广之,设计、测试……等等,都需要时时停下来考虑一下:是不是做得过了?

BTW:前天俺对IT鬼谷(已更名为“^^诺亚之翼^^”,见《新手初到道歉贴!!!(汗,羞愧啊) 》)不太厚道,汗-_-|||

父母心及其它

今天早上临出门看了最后一条新闻:转自《中国青年报》的一篇报道《卖肾事小,整容事大》。说的是一位今年毕业的女大学生为了找工作,让她的父亲去卖肾换钱给她整容,而她父亲居然同意了。

肾,固然是人体中余量最大的器官之一,健康的正常人,摘掉一颗也不会对身体有太大的影响。但是,也必须看到,肾乃先天之本,也是人体中不可自愈的器官之一,它的功能一旦衰减,就不可能再恢复,所有治疗也只能是减慢或停止它的功能衰减,一旦肾功能不能满足人体的代谢需要,除了换肾,就是经常做透析。

换肾是什么概念,目前有多少尿毒症患者在等待换肾,出于人道考虑,即使有肾,也是优先换给年纪小的患者,像这位父亲这样,估计很难等到。

透析呢?如果肾功能未完全丧失,还可以做腹透等,但它的费用是相当高的,每月数千元的药物开支,并对肠道等有相当的损害。一旦不能做腹透,就必须做血透。血透不但需要更加频繁的进行,费用更是高。而在一些不负责任的医院里,因违规的血透操作造成交叉感染而染上肝炎甚至艾滋病的案例也是屡见不鲜。

我不知道这些问题,那对父女是否都有考虑过?

更不用说目前整容的风险了。几乎所有负责任的医院、医生都是对此非常谨慎的,如非不得已,一般是不赞成的。那些把整容吹得天花乱坠的医院和医生却大都眼睛只盯着你的钱包,能否成功只能求老天保佑了。

昨天我刚说过透过现象看本质的问题。出现这种事情,其本质无非是就业的压力。而其根源又在于人口问题。几年前的高校扩招,不过是把这一波生育高峰(计划生育刚开始那几年)的人口就业时间延后了四年。但是想要靠这四年的缓冲时间消化掉数十上百万的就业缺口,一个字:难。

凯恩斯在他的理论中,将就业列为与利息和货币同等重要的三个宏观经济因素之一,可见就业问题在国民经济中的关键地位。这个问题不解决好,将会成为一个严重的社会不安定隐患。

透过现象看本质

今天早上央视二套夏丹MM的调查题目是:对教育部出台禁止在校大学生在外租房的规定(特别是广东还有更严厉的相应地方细则)的看法。

说实话,我没啥看法。

禁有禁的理由:明着是便于管理,如《暑期500名少女堕胎》这样的事件;至于背后的理由,如一些观众的反馈所说,无非是为了学校的垄断利益考虑而已。

反对的理由就不用说了,地球人都知道。

我就觉得可笑,“堵不如疏”的道理谁都知道,谁都会说,但到做起来就是另外一回事。

另一条新闻也有点意思:国家在十年里花了六百亿治理淮河污染问题。十年过去了,现在的污染情况已经基本上恢复到十年前的水平。十年时间,六百亿人民币,原来都是浮云呵。

黄仁宇在他的书中介绍李悝(音“亏”)的时候说过,早在战国李悝相魏时,就开创性地使用了郡县制来管理国家,至商鞅时趋于成熟。这种早熟的政治制度为后来两千年的中国官僚政治种下了种子。直至今日,我们在很多地方还是像李悝一样,在几个简单的数字下,掩盖着成千上万的百姓。

马克思主义教导我们,要透过现象看本质。

问题在于,看到了本质又该如何?

厚厚道道做人,认认真真博客

今天是聚会后的第一个工作日,8过还是有一部分人还没有从聚会的兴奋中走出来吧?俺自首,俺是一个。-_-|||

费乐沃在《8月7日mblogger.cn上海博客聚会的感想》中说到:

大家对blogging这件事情是多么认真。

其实我也很认真的,大多数情况下,我都会在临睡前考虑一下明天BLOG要写什么。结果经常失眠的说。-_-|||

因为聚会一下认识这么多新博客,就把所有参加聚会的朋友们的链接都加上了,发现有点太多,于是把Borland类的都去掉了,反正我一向是通过BORLAND类别去看大家的最新随笔的,放着也占地方,大家表生气。:P

8过今天比较郁闷的是,一上BORLAND头版一看,全被一个叫IT鬼谷的刷了。他的《Debug命令大全》系列不知道是原创还是转载。如果是原创,个人认为这样长篇的东西应该集合起来放到放到个人的文章里;如果是转载,用一篇随笔把这几十篇的原始出处链接记录一下就好了。像这样分成数十篇POST成随笔,是非常影响别人查阅最新随笔的。

我不知道是不是只有BORLAND版有这种现像,现在BORLAND版排名第一的SCYANGYU之前便是这样,还好最近消失了,但现在又来了一个IT鬼谷,莫非是BORLAND版有版PWT?

博客之所以能够成长起来,关键还在于博的人,推荐牛奶同学的《狂爱博士》。^O^

建议给本次博客聚会设立几个奖项

这么多亮点,不记录不行。

比如蓝尘应该拿最佳礼物奖。
restart就拿个最特别礼物奖。
Shari为最佳编剧奖。
OdieRobin为最佳登场奖。
上上签为最佳名言奖。
……
大家继续补充哈。^O^

BTW:偶是不是可以拿个最佳文字报道奖?:P