DBGCOOL

debugging seems to be cool, doesn't it?

Browsing Posts in Books

The Economic Naturalist

Details

Name: The Economic Naturalist: In Search of Explanations for Everyday Enigmas
Publisher: Basic Books
Release Date: May 21, 2007
Author: Robert H. Frank

书名:牛奶可乐经济学——最妙趣横生的经济学课堂
出版社:中国人民大学出版社
出版日期:2008年3月(晚1年)
译者:闾佳

Review

我对经济学并没有什么研究,也一直没有对经济学产生浓厚兴趣。但是这本书简直是太好了!妙趣横生以生活中的小事为例,介绍了很多经济学的知识,让我大开眼界。这本书可算是深深的吸引了我,看完后我最大的收获就是,要多注意生活得细节,细节决定成败!

生活中好多东西大家都已经习以为常了,例如装牛奶的大多都是方形纸盒,而可乐却放在圆形塑料瓶里,有人想过为什么吗?24小时便利店后半夜明明不赚钱,为何还要通宵营业呢?这些看似简单的问题,背后却隐藏着经济学的知识。这本书中文名字起的非常好,叫牛奶可乐经济学,很符合这本书的特色。相比较而言,英文名字则显得不那么浅显了。

这本书我买了有一年多了,中间由于各种原因一直没看。今天终于看完啦,上网一搜,发现这本书已经出到第三卷了。强烈推荐大家!

Refactoring

Details

Name: Refactoring: Improving the Design of Existing Code
Publisher: Addison-Wesley Professional
Release Date: July 8, 1999
Author: Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts

书名:重构——改善既有代码的设计
出版社:中国电力出版社
出版日期:2003年8月(晚4年)
译者:熊节

Review

早在2005年,刚工作不久,就见同事抱着这本书在看。当时我看的书大多还是Windows或者C++相关的,所以觉得重构是比较深奥的事情。直到后来看完了设计模式,才自然而然的看重构。看完重构后也证实了我看书的流程是正确的,好多重构的方法最终都是以模式为目标的。

遗憾的是,对于C++来说,没有太好的支持重构的工具,只能手动重构。Visual Studio 2010支持对C#的重构,Eclipse支持对Java的重构,虽然Eclipse也支持C++的重构,但貌似支持的也不太好。

看完重构这本书,你并不会成为重构大师,只能说是入了门了,因为重构这本书提到的60来个重构方法都是比较简单的,而且往往都是正反成对出现的,例如:

  • Extrace Method <-> Inline Method
  • Extract Class <-> Inline Class
  • Hide Delegate <-> Remove Middle Man
  • Change Value to Reference <-> Change Reference to Value
  • Change Unidirectional Association to Bidirectional
  • Change Bidirectional Association to Unidirectional
  • Add Parameter <-> Remove Parameter
  • Parameterize Method <-> Replace Parameter with Explicit Methods
  • Pull Up Field <-> Push Down Field
  • Pull Up Method <-> Push Down Method
  • Replace Inheritance with Delegation <-> Replace Delegation with Inheritance

在工作当中,具体如何处理还要具体问题具体分析了。跟设计模式一样,看完了只会入门。要想熟练应用,还是要经过长期的磨练和经验积累的。

C++ Network Programming, Volume I: Mastering Complexity with ACE and Patterns

Details

Name: C++ Network Programming, Volume I: Mastering Complexity with ACE and Patterns
Publisher: Addison-Wesley Professional
Release Date: December 20, 2001
Author: Douglas C. Schmidt, Stephen D. Huston

书名:C++网络编程 卷1:运用ACE和模式消除复杂性
出版社:华中科技大学出版社
出版日期:2003年12月(晚2年)
译者:於春景

Review

在没看这本书之前,就听说过ACE的大名,一直觉得是个挺神奇的框架。看了这本书之后,终于明白了ACE到底是什么了。ACE相对于我们传统的socket编程,就好比是MFC相对于传动的Win32 API。ACE是用C++重新封装了底层的API,不仅仅包括socket,也包括多线程、多进程。而且,还实现了自己的任务、消息机制,非常适合网络程序开发。

ACE可以适用于很多不同的系统,包括最常见的Windows和Linux系统。ACE里面运用了很多模式,而且这些模式是Design Patterns一书不曾介绍的,因为这些模式都是网络程序所特有的。

很奇怪的是,这本书中文版貌似只翻译了卷一,没有人翻译卷二。Google Trends了一下,发现ACE本身也不是很热的词汇。所以要问的是,大家在编写跨平台的网络程序时,使用的是什么框架呢?还是说,很少有人用C++编写跨平台的网络应用?

编程高手箴言Details

书名:编程高手箴言
出版社: 电子工业出版社
出版日期:2003年10月
作者:梁肇新

Review

我大概是2004-2005年左右看的这本书,此书刚一出我就毫不犹豫的买回来了,这本书绝对值得收藏。也许梁大师看到我说这句话一定会反驳我,说此书已经过时啦,呵呵。“过时”这个词看怎么解释了,也许里面的技术过时了,但是里面反映出来的事却会成为历史,永远不会过时。

这本书之所以值得收藏,是因为它记载了曾经风靡全中国的软件:豪杰超级解霸。从书中可以看出梁大师当年开发豪杰超级解霸的辛酸历程,以及所用到的技术。这个软件影响了70后~80初的一代人。相信这个年龄段使用过电脑的人,没有不知道豪杰超级解霸的。但由于国内的环境所限,盗版猖獗,所以估计梁大师也没赚到大钱。如果梁大师出生在国外,也许会把豪杰做得更大。

在2009中国软件技术英雄会上海站,我遇到了梁大师,可谓是面对面的交谈,虽然可能到现在梁大师也不知道我是谁。当时让我感到非常差异的是,听说梁大师最近两年隐居,研究起风水了。并且在会上,梁大师给我们做了个非常精彩的关于创业过程中“地利”问题的演讲。会间休息的时候,梁大师还给我们演示他的手机中自己写的一个计算风水的软件。

话说远了,继续说这本书。这本书里的技术我就不多说了,都是比较底层的,如CPU、内核优化等。主要说说此书第一章谈到的话题,程序员成长的六个阶段:

第一阶段:熟练地使用某种语言

据我观察,国内60%的程序员都停留在这个阶段吧。能熟练掌握C/C++的就不是很多,精通的就更少了。有几个人敢说自己可以清楚的知道STL的实现内幕的?大多都是只会if else和for,甚至还在用goto…反正是可以将就写程序了。

第二阶段:精通某种平台接口(例如Win32 API)

对于我来说,大学的时候只会用C/C++写console程序,自学过部分Win32 API。也就是从工作之后吧,才开始用MFC。连续用C++/MFC写了2年多的程序,才可以说是熟练运用Win32 API和MFC。又过了2年多,在调试MFC程序的过程中,看了一些MFC内部的实现代码,至此可算是略有精通吧。嘿嘿,至少对梁大师括号中的内容应该算是精通了。

第三阶段:了解某个平台底层

这个具体有多底层书中没说,之说算是有了初级内功。

第四阶段:在某个平台上进行深层次的开发

这个比较遗憾,一直没有机会进行深层次的开发。梁大师说,此时语言只是工具,已经不重要了。对于我,我是在Windows和Linux上都有开发,但没有一个开发的比较深层次。

第五阶段:从全局设计大的系统

只要有时间,连MS WORD都能做出来!这句话貌似很多人都说过,但是我不相信。即使在微软,能设计OFFICE架构的人恐怕也不多。国内的WORD也非金山WPS莫属了,但也不过如此,只能跟着时代跑,而不是领跑者。

第六阶段:无招胜有招

已经不关注某个具体的语言、平台了,C/C++/Java都一样,Windows/Linux都一样。

书中梁大师关于中国软件人才的评价到现在为止仍然是正确的:“而我认为,现在中国绝大多数都是初级的程序员,中级的程序员很少,高级的就更少了。”

这是为什么呢?也许还是环境问题,我们要考虑的问题太多了,毕业之后找工作,找到工作攒钱买房子,有了房子娶老婆,生孩子。而欧美呢,毕竟发达国家,吃穿住基本不用愁,所以可以用更多的时间做自己想做的事。只要自己喜欢写程序,就会写一辈子。而国内呢?工作3年开始搞管理,然后技术也就基本扔了。写程序的,永远是新入职的初级程序员…

杜拉拉升职记

Details

书名:杜拉拉升职记
出版社:陕西师范大学出版社
出版日期:2007年9月
作者:李可

Review

这本书写得很真实,可见作者是在国内外的企业都有过丰富工作经验的,尤其是在外企。从这本书中也可以看出,企业内部勾心斗角,企业员工间关系复杂。你要想升职,要么靠阿谀奉承会来事,要么就埋头苦干等待时机。不会因为你很有实力就可以马上升职,升职的前提是你的领导跳槽不干了,而除了你以外又找不到更合适的人选。

杜拉拉语录倒是对一些问题做了很深刻的总结:

切!要说官僚的特点,我可是有心得——该做决定的时候吧,他思考;遇到困难了呢,他授权。