跨语言编码标准?

时间:2009-09-15 16:21:48

标签: c# javascript actionscript coding-style

我正在寻找有关编码惯例的建议。我按照频率顺序使用的主要语言是C#,JavaScript和ActionScript。它们都是基于ECMA的语言,因此在大多数情况下,语法是可以互换的。我想做的是标准化我编写代码的方式。

我四处寻找有关编码标准的文件,并找到了一些,包括微软,Adobe,Doug Crockford以及我拥有的各种书籍的作者。许多个别标准都是相同的。例如,不要使用大写来区分对象标识符。好的,听起来不错。

但是,它们在某些方面有所不同,最明显的是在命名约定中。例如,在命名私有属性时使用下划线,或者在方法名称中使用驼峰大小写和Pascal大小写。

C#建议之间的差异往往比ActionScript和JavaScript之间的差异更大,这使我更难,因为它是更多的语言与更多的代码编写。在IDE中还存在自动格式化的问题(例如,在JavaScript与C#中的函数中放置开括号)。

有关您如何解决此问题的任何建议?我没有看到任何重大陷阱?我意识到自己可能很迂腐,而且我很幸运能够在一个我不必遵守别人标准的环境中工作。我希望能够提高生产力和更易读的代码。感谢。

5 个答案:

答案 0 :(得分:7)

在C#中有意义的习语在Javascript中并不一定有意义(反之亦然),尽管它们都使用尖括号和分号。

我们使用不同的编码样式 - 大多数情况下,C#的标准Microsoft样式,以及大多数情况下,Javascript的标准jQuery样式。它可能有点奇怪(Pascal与骆驼案例的脱节意味着你有一些C#对象具有“不正确”的外壳,因为它们几乎只是作为JSON容器),但我不会尝试鞋拔什么是单个语法中的两种离散语言。

答案 1 :(得分:6)

我会坚持社区或语言创作者提出的标准,而不是试图创建一个跨越边界的标准。否则往往会扭曲那些对语言社区充满热情并积极参与的开发人员。

我们试图在我的雇主之一用Delphi和C#做到这一点,没有人高兴。

答案 2 :(得分:1)

我们使用这份文件。我知道很多人都使用它。它是一种行业标准:http://www.idesign.net/idesign/download/IDesign%20CSharp%20Coding%20Standard.zip

适用于多种语言,但它是专门为C#编写的。

答案 3 :(得分:0)

  

我很幸运能够在一个我不必遵守他人标准的环境中工作

就我个人而言,我没有遵循C#的Microsoft标准:相反,我的所有方法名称和属性名称都使用camelCase(尽管我的类型仍然使用UpperCase)。并且,我装饰了我的成员数据(因此不能与局部变量,属性和/或参数混淆)。

我不明白为什么有必要遵循微软的命名惯例; IMO甚至偶尔也是一件好事:当我将Microsoft类型子类化时,案例(例如'add')将我的方法与底层基类中的Microsoft方法(例如'Add')区分开来。

另外,当我编写C ++时,我没有遵循与标准库作者相同的命名约定(对于他们的类型使用lower_case而我使用UpperCase)。

然而,其他开发者可能/不喜欢它;例如,有人评论了我在SO上的一些答案中发布的一些示例C#代码,批评它不是因为它的内容,而是因为它的命名惯例。

答案 4 :(得分:0)

这是一个偏好的问题,因为这正是编码标准:标准。这里没有明显的对与错,强制执行每种语言的社区标准都有很大的用处,直到你经常使用5种不同的语言,这些语言都有细微的差别。您将无法跟上并开始遵循这两个标准。

我之前所做的是在相同的球场(PHP,Java,Ruby)中使用相同的语言标准,然后使用相同的标准,如果使用同一组标准绝对不切实际,并且代码看起来不同足以让你的大脑也进行切换(例如BASH脚本)。

但实际上,这是你(和你的团队的其他成员)同意的。您无法通过一组特定的编码标准获得生产力,您可以通过与您合作的人员达到相同的标准来获得生产力。如果你想要完整的匈牙利骆驼表壳顶部有一个下划线:对你来说更有力量,只要确保整个团队都能做到这一点;)