Monthly Archives: October 2005

凌波微步:程序员的床头读物

天有些凉了。早晨起来,在百草园的长椅上看完了最后几页“凌波微步”。这是一本内容颇杂的文章集,从代码风格到系统设计,从版本控制到测试都有涉及,不是专著,而是心得集。   也许不是科班出身的缘故,在写程序的时候总有欠缺了什么东西的感觉,有的时候觉得分析系统无从下手;有的时候觉得数据流动无法标示,表示出来后如何跟其他图结合起来使用;有的时候对自己写的代码没有信心,不知道它的强度如何。现在大概知道,这些大概跟软件工程,OOA(面向对象分析),UML数据流图,测试理论有关。   王咏刚(凌波微步的作者)是个精力充沛和幽默的人,所学甚杂,写的书很吸引人,适合作为床头读物。

Posted in Uncategorized | Leave a comment

浮动

图片取自InterPhoto(ISSUE 4)

Posted in Uncategorized | Leave a comment

别人

别处有别人,生活着。 如此不同。   图片取自InterPhoto(ISSUE 4),作者Tessar,摄于新疆

Posted in Uncategorized | Leave a comment

endless

大学的时候到食堂抢饭,研究生的时候到教室抢座,上班了,开始抢会议室。

Posted in Uncategorized | 2 Comments

自娱自乐

作了两个招贴画,作为消遣,也证明,还有闲暇。

Posted in 计算机与 Internet | 2 Comments

TIME

早起了半个小时,就觉得时间很多。实际,只是片刻,看几个广告的时间而已。所以有的时候,起得早些,工作做得少些。

Posted in Uncategorized | Leave a comment

Crash(2005)

被有人评价为今年最好的电影,虽然未必这样,所差也不甚远。   导演的意图简单而明显,1. 种族隔阂。2. 好人会做坏事,坏人会做好事。简单并不是缺点,明显有点不好,显得刻意。这也可以说是这个片子唯一的问题。   导演的手法很好,平淡而感人,该高潮的地方也高得起来。   是否我说得太冷静,实际上真是不错。

Posted in 娱乐 | Leave a comment

编写软件是一个从粗略到细致的过程

因为容量的限制,人能够同时思考的事件是有限的。必须引入层次化的思维,先考虑整体,再考虑细节。尽量把细节拖后实现。 做一个类比:将一道问答题分解,变成一道简答题;将一道简答题分解,变成一道填空题。将一道填空题转化为一道选择题。后面的体越来越细节,也越来越简单。 问答题即是原始需求,化分模块、确定接口后变成简答题。对于每个接口,将接口里的函数用伪代码实现,或者用文字实现,变成填空题。填空题选择熟知的算法实现,是为选择题。

Posted in 计算机与 Internet | Leave a comment

心中有他人:设计符合正常人习惯的模块接口

在设计模块(程序的一部分,一个lib库,一个DLL,一个COM,一个…)的时候,暴露出来的接口尽量符合一般人的使用习惯。什么样的接口是符合使用习惯的,我想,贴近STL的,或者贴近已有类库接口的,是符合习惯的。需要注意一些C函数的风格因为过于复杂晦涩而不推荐模仿。   比如一个访问文本的模块,比起 bool GetLine(string container, int Idx) 不如 string GetLine(void) // what to do when get line failure. 读取哪个行由 bool First(void),bool Next(void)函数控制。   一个实际的例子是这样的。 CFileReader* pFileReader = new CFileReader; if (NULL == pFileReader) {     //… do some log;     … Continue reading

Posted in 计算机与 Internet | Leave a comment

苦口婆心:Head First Design Patterns

讲解GOF设计模式的一本书,不过也阐述了很多OO的原则,比如如何设计类之类的内容。 书中的例子使用Java语言。 第15届Jolt奖的获奖作品。 风格独特,可以用苦口婆心,仁至义尽来形容。作者在书中设计了各种各样的花样来调动读者的思维,语言也很幽默。讲解有条有理,明明白白,若看过之后仍然不懂设计模式,将会是一件很让人费解的事情。 暂时只有扫描版可以下载。不过这本书图片颇多,还有很多手写体的文字,排版很复杂,对于0Day来说真是一个挑战。 给出一个评论文章的链接:评 Head First Design Pattern 另外关于语言学习的问题,暂时想到下面一些层次:语法、相关类库、代码风格、设计模式(OO原则)。 比如对于C++来讲,类库方面可能会稍微简单一点,因为没有Java/C#那样庞大的类库,但是代码风格方面要啰嗦一点,因为C++有STL、模版这类的东西,解决一个问题既可以用C一样的风格,也可以用现代风格。 关于什么是现代风格的C++,我心里还没有数,猜想是尽量少用C的东西,尽量多用STL+模版。

Posted in Uncategorized | Leave a comment