好的。
搞软件开发的时候,代码注释那可是绝对不能少的一部分,它能把代码的意图、逻辑以及潜在的复杂情况给解释清楚。要是代码得在跨国团队或者开源社区里被人理解,那注释的翻译就成了一个实实在在的问题。本文会从好多不同的角度去讨论代码注释翻译的价值、方法以及里面藏着的陷阱。
为什么要翻译代码注释
最直接的因由是推动知识的共享,有一位来自中国的开发者所奉献出的出色算法,要是其注释呈现为中文样式,就有可能对全球范围内其他诸多开发者的理解以及采用行为形成阻碍,而将其转译为在技术领域作为通用语言的英语,能够极为显著地削减协作所存在的门槛,进而使得代码的价值实现最大化 。
还要说到更深层因由来深入讲就要提及是为了便于长期的维护。项目成员存在着可能出现流动这种情况,一旦接手者对原注释语言并不熟悉,那么理解成本便会急剧地向上攀升。将关键注释翻译成项目主导团队通用的那种语言,此乃对未来的一种有意义投资,这能够确保在开发者产生变更这个条件下依旧使核心逻辑清晰地能够追寻得到。
代码注释翻译有哪些常见方法
最为常见的办法是人工翻译,是由那些熟悉技术以及双语的开发者来开展的。这样做能够保证技术术语的精确性,并且能够结合代码的上下文去处理简写或者特定的表述。比如说,把中文的“此处处理边界条件”精确地翻译为“Handling edge cases here”,而不是进行字面的直接翻译。
有别样的办法是依靠机器翻译工具来开展初译,接着由人工去进行复核以及润色。这样的办法效率比较高,特别适合用于大量注释的初步处理。然而一定要警惕机器翻译在技术术语以及语境方面存在的错误,绝对不可以直接去使用没有经过校对的机器译文,不然的话有可能会产生误导。
如何保证翻译后的注释质量
核心在于质量的是 “信” 与 “达”。 最初要保证技术的准确性, 每一个专业术语、函数名、变量名的指代都得正确毫无差错。 比如,注释里引用的 “API” 或者 “Singleton模式” 这类专有名词不该被意译, 务必原样保留或者采用业界通用的译法。
其次,务必要保证清晰且简洁。翻译而成的注释应当维持甚至改进原注释的可阅读性,规避冗长以及歧义。翻译完成之后,需要把注释放回到代码上下文当中进行通读,核查其描述的逻辑是否仍然顺畅,是否与代码行本身严格地对应,防止出现“图文不符”这种状况。
代码注释翻译存在哪些陷阱
存在着一种情况,即最大的陷阱是那所谓的“过度翻译”或者“失真” 。存在一类东西,就是有些注释里面有着文化特定的隐喻或者团队内部的黑话 。存在一种无奈,即把这类注释直接进行翻译会让人难以理解 。举个特定示例,就如有中文注释“绕过了坑” 。存在一种翻译差异,就是将此直接译成“bypass the pit”可能比不上“work around the known issue”那般清晰 。在这种时候,就需要对其本质含义进行意译 。
也存在这般难以察觉的陷阱,那便是对注释时效性的忽视,代码是会不断迭代更新的,注释随时间推移就极有可能变得过时,在着手进行翻译这个行为的时候,要是察觉到原本的注释已然跟当下代码的逻辑不再契合了,那么正确的做法应当是先去把原本注释所涵盖的内容予以更新,之后才开展翻译这项工作,若去翻译一个已然错误的注释,只会使得错误的程度进一步扩大并且将其固定下来,这样做实在是得不偿失呀。
哪些注释不值得翻译
不是所有的注释都具备值得去翻译的特性。那些对显而易见的代码行为进行描述的“废话注释”,是不值得被翻译的。比如说,像“i++ // 将i加1”这样的注释,在任何一种语言当中都是没有价值的,去翻译它纯粹是在浪费精力。翻译资源应当集中在对解释“为什么”(Why)而非“是什么”(What)的注释上面。
即便是那种过于琐碎或者临时性质的注释,一般来讲通常也是不需要去进行翻译的。就好比说,举例而言,在开发调试这个过程当中临时添加进去的“TODO: 此处是需要进行优化的”这样的注释,倘若相关任务一直都还没有完成的话,那么它自身就很有可能在短时间之内就会遭到修改甚至是被直接删除掉。要把精力都集中起来去翻译那些能够阐述核心算法、展现复杂业务逻辑以及体现重要设计决策的具有永久性特点的注释。
如何管理多语言注释的代码库
对于有着长期多语言注释状况的项目而言,构建规范这件事是极其关键的。能够于文件头部借助标签来标明主导注释语言,就像是“// Primary Comment Language: English”这样。针对重要的并非主导语言的注释来说,能够思索运用“// [ZH] 中文注释 …”这种格式来进行并存,不过要小心谨慎,防止文件呈现出杂乱的情形。
至为理想的情形是,团队针对项目级的主注释语言达成统一意见,且导入开发规范之中。一切新注释皆运用该语言予以书写,随后按计划把历史关键注释逐步进行翻译、转移过来。这必然需要一个进程,然而能够一劳永逸地化解混合注释所引发的认知负荷难题。
在你看来,于团队协作这个情境当中,究竟是去统一规定采用一种注释语言(像是英语这种)好些呢,还是准许母语注释同时存在、只是在有需要的时候才去进行翻译会更合适呢?欢迎来到评论区去分享你自身的实践经验以及观点,要是觉得此文具备参考价值,同样也请点赞予以支持。
原创文章,作者:有道翻译,如若转载,请注明出处:https://fanyi-youdao.net/archives/947