深入一门语言去编程,不浮于表面

[广告:最高 ¥2000 红包]阿里云服务器、主机等产品通用,可叠加官网常规优惠使用 | 限时领取

代码大全非扫描版.pdf – 码农电子书!

我的码中人博客的副标题是:“深入编程 Program into Your Language!”,是节取自《代码大全》34.4章节 “深入一门语言去编程,不浮于表面。Program into Your Language,not in it”。

然而这个标题的重点其实是后面那一句,not in it。比较准确的翻译应该是这样的:

以所用的语言编程,但思路不受其约束。

换言之,你应该深入你的语言,但不能受限于语言,困在里面。

该章节内容如下:

不要将编程思路局限到所用语言能自动支持的范围。杰出的程序员会考虑他们要干什么,然后才是怎样用手头的工具去实现他们的目标。

如果某个类的子程序成员与类的抽象不一致,你会为图省事用它,而不用更一致的子程序吗?应以尽量保持类接口抽象的方式写代码。不必因为语言支持全局数据和 goto,就使用它们。要避免用这些有危险的编程特性,而代之以编程规范来弥补语言的弱项。编程要使用所用语言里最显而易见的方式。这等于说是“如果 Freddie从桥上跳下来,难道你也愿意跳吗?”认真考虑你的技术目标,然后确定如何用你的语言最好地实现这些目标。

你的语言不支持断言?那就编写自己的 assert()子程序,也许功能上与内置的 assert()不完全一样,但你仍能实现其大部分用处。你的语言不支持枚举类型或具名常量?不碍事,可以按一定方式用全局变量定义自己的枚举或具名常量,只要有清楚的命名规范。

在一些极端情况下,特别是在新技术环境中,工具也许会原始到你不得不对所期望的编程方法有重大改变。这时,所用语言可能使你难以采用自己期望的方法,这时你可能不得不在愿望与方法之间求得某种折中。但即便是这种情况,仍能受益于编程规范,利用它帮助你理淸环境中的危险特性。更常见的情况是,你想做的事与工具的稳定支持差距不大,你只需对环境做出一些较小让步即可。

码中人 微信公众号