关于《编程高手箴言》一书

      今天在图书馆看见这本书,被它的第一章《程序点滴》所吸引了,便拿过来读了一个下午。郑渊洁说过这样一句话“一本书不管从哪页看起,5分钟后还不能吸引你,请毫不犹豫地扔掉它。”我的确被第一章所吸引了。

      书的作者是梁肇新,他是豪杰公司的董事长兼首席程序员。既能坐的管理层第一把交椅,又能坐的技术员第一把交椅,必然有一番实力。

      只是书中有一处,第252页中写道:

      “接下来需要关闭所有的垃圾信息,………,在(Visual C++6.0,笔者注)C/C++页中,在Category项中选取"Precompiled Headers",在出现的页面中选取"Not using precompiled headers"。这样就不会在编译时生成一个几MB大的.pch的垃圾文件了,并且也能提高编译的速度。”

      继续往下看:

      “.pch是一个大垃圾文件,有害无益。它可能是微软为了促进大硬盘好卖而故意搞的,可能这是为了证明垄断的好处,促进硬盘行业的繁荣。”

      读到这里,不禁擦了把汗-_-! ...

      《C++ Primer》的作者Lippman在书中写道:“如果头文件过大,或分散的元素太多,程序员可能会不愿意因为包含它而增加编译时间开销。为降低编译时间开销,有些C++实现提供了预编译头文件支持。如果应用程序有很大的头文件,则使用预编译头文件,而不是普通头文件可以大大降低应用程序的编译时间。”

      侯捷也曾说过:“一个应用程序在发展过程中,常需要不断的编译。Windows程序载入的标准.H文件非常巨大但内容不便,编译器浪费在这上面的时间非常多。Precompiled Header就是将.H文件第一次编译后的结果存储起来,第二次再编译时就可以直接从磁盘中取出来用。这种观念在Borland C/C++早已行之,而Microsoft这边则是一直到Visual C++ 1.0才具备。”

      当然本书还是有不少闪光之处的。很欣赏作者关于“为什么Debug模式下编写的程序在Release模式下不能正常运行”的解释,并给出了一段测试用例。这是我以前所不了解的。

      另外:《代码的规范和风格》一章带有很浓厚的个人习惯在其中。我不知道是不是豪杰公司所有程序都以此为标准了。但是有一点不能认同,即关于变量声明的位置。书中强调一定要在每个程序块开始时声明所有的变量,仍然保持C程序的风格。Scott Meyers在《Effective C++》一书中条款32说明了,尽可能延缓变量定义式的出现。例如:

string encrytPassword(const string& password)
{
 string encrypted;
 if(password.length() < MINIMUN_PASSWORD_LENGTH)
 {
 throw logic_error("Password is too short");
 }
 do_something

 return encrypted;
}

你可能感兴趣的:(关于《编程高手箴言》一书)