多程序语言项目的命名约定

时间:2012-01-20 16:45:44

标签: interop naming-conventions multilingual

我目前正在开发一个项目,该项目包含几种不同的“编程”语言,每种语言都有自己的命名方式。是否应该使用相同的命名约定,或者每种语言的名称是否应该不同以具有本机外观(即不与框架的其余部分冲突)?

例如,该项目使用MongoDB(BSON),C#,JSON和Javascript。现在我用每个图层的约定命名每个图层中的内容,然后在每个图层之间进行转换,比如从BSON到C#模型。另一方面,如果命名约定相同,MongoDb会自动执行此操作。

2 个答案:

答案 0 :(得分:6)

二十多年前,当我刚刚开始我的职业生涯时,我可能会同意保罗并说“寻求通用的命名惯例!”。 :)

今天我的回答是不同的。即使在处理一种编程语言时,提出体面的命名约定也是一项具有挑战性的任务。拥有多种语言/框架的通用约定是一个崇高的目标和优秀的脑筋急转弯,但总的来说,我认为这不可行。不同语言/框架的句法和词汇规则过于多样化,无法实现“一刀切”。此外,所使用的语言/框架集可以随时改变,适当调整“普遍惯例”可能会变得过于昂贵或过于不合时宜。

因此,我建议主要关注每种语言/框架(或者每组语言/框架,如C和C ++)的可靠和不错的约定。这种方法的一个好结果是,只涉及一种语言的项目必须遵守一组看起来不像“外国”的约定。

说了这么多,我相信一些惯例对于所有涉及的语言/框架都是通用的,而不会变得太“外国”。而且,词汇这样的东西应该对整个项目来说都是常见的。当然,这主要是关于语义和词汇规则;但即使是一些句法规则也可以是普遍的。例如:

  • 实体名称的词法规则(例如“总是使用单数名词”)。

  • 首字母缩略词的词汇规则(例如“只使用广为人知的首字母缩略词”)。

  • 复合名称的句法规则(例如“始终使用通用然后特定的序列”)。

当然,上面的例子过于简单了。但我希望这个想法很明确:任何惯例都应该是常见的,但它总是只是你需要的所有约定的一部分。

答案 1 :(得分:1)