代码大全非扫描版. PDF - 码农电子书!
我的码中人博客的副标题是:"深入编程 Program into Your Language!", 是节取自《代码大全》34.4 章节 "深入一门语言去编程, 不浮于表面. Program into Your Language,not in it".
然而这个标题的重点其实是后面那一句, not in it. 比较准确的翻译应该是这样的:
以所用的语言编程, 但思路不受其约束.
换言之, 你应该深入你的语言, 但不能受限于语言, 困在里面.
该章节内容如下:
不要将编程思路局限到所用语言能自动支持的范围. 杰出的程序员会考虑他们要干什么, 然后才是怎样用手头的工具去实现他们的目标.
如果某个类的子程序成员与类的抽象不一致, 你会为图省事用它, 而不用更致的子程序吗? 应以尽量保持类接口抽象的方式写代码. 不必因为语言支持全局数据和 goto, 就使用它们. 要避免用这些有危险的编程特性, 而代之以编程规范来弥补语言的弱项. 编程要使用所用语言里最显而易见的方式. 这等于说是 "如果 Freddie 从桥上跳下来, 难道你也愿意跳吗?" 认真考虑你的技术目标, 然后确定如何用你的语言最好地实现这些目标.
你的语言不支持断言? 那就编写自己的 assert() 子程序, 也许功能上与内置的 assert() 不完全一样, 但你仍能实现其大部分用处. 你的语言不支持枚举类型或具名常量? 不碍事, 可以按一定方式用全局变量定义自己的枚举或具名常量, 只要有清楚的命名规范.
在一些极端情况下, 特别是在新技术环境中, 工具也许会原始到你不得不对所期望的编程方法有重大改变. 这时, 所用语言可能使你难以采用自己期望的方法, 这时你可能不得不在愿望与方法之间求得某种折中. 但即便是这种情况, 仍能受益于编程规范, 利用它帮助你理淸环境中的危险特性. 更常见的情况是, 你想做的事与工具的稳定支持差距不大, 你只需对环境做出一些较小让步即可.
来源: http://www.mzh.ren/program-into-your-language-not-in-it.html