CC2e 术语:construction 译成“构建”还是“构筑”?

  construction 恐怕是《Code Complete(代码大全) 第二版》这本书里惟一值得讨论的术语。construction 本意是“建筑、建筑物”。在这本书里用来指软件开发过程中最主要的一项活动,软件开发的活动包括:问题定义、架构、需求、设计、construction、系统测试等等。construction 中的主要活动包括:详细设计、编码、调试、集成、开发者测试(单元测试和集成测试)。这也是一项把设计文档转变为代码的活动。相当于建筑行业的“施工”活动:把设计蓝图转变为建筑物。

  选择 construction 的译法的主要考虑是:这本书通篇都是在讲construction,这个词是这本书的关键概念,应该对这个词采用一个足够独特的译法。足以与 create、build、make 等区分。

  从目前的译稿看,construction 有三种候选译法“构建”“构筑”“构造”。

  我认为应该首先排除“构造”,因为它通常用于“构造一个对象”、“构造函数”。剩下“构建”和“构筑”,该选哪一个,我有点拿不定主意。译者们的意见也有分歧。

有译者认为:

“constrcution。这个词是全书的精髓所在,也是非常抽象的一个概念。虽
然作者曾经用"constrcution workers(建筑工人)"来做类比,但在软件行业
中并没有类似的说法,因此生搬硬套大概不会为人所理解和接受。这里我个人
还是建议采用"软件构建"这一译法,原因如下:construction的动作包含编程
工作中的各个细节,从设定到设计,从编码到调试,而"构"字有"结成、作品、
建筑"的意思,而软件中也有"构架"的说法,因此在这里引入"构"字可以解释
得通;但如果译为"构造",又容易和"构造器"相混淆(虽然这个词也不是最好
的译法),如果构造器是创建一个类的必经步骤,不妨把创建一个程序的必经
步骤的总和称为"构建",看上去更宏观一些("建设"、"建筑"、"建成")。
这样,这两个字结合起来可以表达"在相对宏观的层次上构想、构架、创造、
创建整体程序" 的概念。不知是否可以为广大读者所接受?”

  首先,我认为,不同的词(严格说是不同的概念)最好有不同的译法;而且含义越独特的词,译法也应该越独特,这样才不易混淆。举个有点极端例子,entropy 译为“熵”就非常好,绝对不会与其他词混淆。再比如,argument 和 parameter都是函数的“参数”,不过前者是实参,后者是型参。如果原书严格区分这两者(甚至谈它们的相同与不同),那么中译本就不能都译为“参数”,否则读者肯定一头雾水。

  回到这本书,与 construction 含义多少相近的词还有 build、create 等等,这些词都算不上术语,。

  • build 建造,建设;例:建造一个子系统
    (注:build 还可能指“编译+链接”这项操作,例如 VC 的 build 菜单,这种情况单论。)
  • create 创建;例:创建一份文档

  那么 construction 的译法应该与之有所区分,“构建”和“构筑”看来都是不错的选择。(如果我们把 daily build 翻译为“每日构建”,那么 construction 就只能是“构筑”了。如果 construction 翻译成“构建”,那么 daily build 就只好保留原文——还好它只在702页至708页出现,影响不大。)

  “构建”还是“构筑”,我有点拿不定主意,想请您发表看法。

你可能感兴趣的:(编程,软件测试,活动,单元测试,vc++)