在应用程序中跨所有语言命名大小写约定

时间:2017-03-28 20:37:45

标签: javascript c# sql-server json naming-conventions

我使用Javascript(在浏览器上),C#和Sql Server构建Web应用程序。在所有三种语言中建立一致的命名约定是一个好主意吗? 对于Javscript,似乎最好的做法是使用camelCase,但在C#和Sql Server中使用它的TitleCase。
问题是,当Javascript消耗并向C#/ Sql服务器发送数据时,命名约定不一致。所以我必须编写代码来映射它们。

例如

  

在Sql中,我有一个名为' Foo'使用列'名称','电子邮件地址'

     

在C#中我有一个名为' Foo'的POCO对象。用这个映射到这个表   属性'姓名',' EmailAddress'并公开api端点到GET这是   JSON   例如{"姓名":" Joe Bloggs"," EmailAddres":" joe@test.org"}

     

我的Javascripts对GET这个JSON进行ajax调用并将其映射到自己的JSON   JSON对象,例如{" name":data.Name," emailAddress":data.EmailAddress}

列/属性命名约定之间的这种映射对我来说似乎很愚蠢,如果所有语言都只是就套管约定达成一致,则不需要。有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

在我看来,您应该继续使用每种语言的标准惯例。

优点:

  • 每个软件的一致性。
  • 您的同事更容易,因为他们不需要学习自制的命名惯例。
  • 在SO等地方,或者如果您决定实施在SO上找到的解决方案,将代码传递给世界其他地方会更容易。

不要为了使语言保持一致而添加额外的约定。您的语言最终将会出现无关紧要的无关紧要的规则,并且对将来处理您的代码的任何人都会感到困惑。

为了扮演魔鬼的辩护律师,这里的意见不同意我在here被盗的情况:

  

在这里您可以找到基于编码标准的重大问题   风格 - 如果你的团队没有编写整个代码库,那么你就是这样   会发现你与其他代码的标准不匹配。

     

所以,我的建议不是为了汗流。背。只要您的代码清晰,就可以了   你是否使用骆驼案,帕斯卡案,或者说无关紧要   强调风格。更重要的是代码是可读的。

     

你永远不应该改变第三方的风格   与新版本比较不可能,所以你必须坚持下去   他们。如果你有2个不同风格的库,你别无选择   遵循忽略代码风格的标准。它不是那么糟糕,如果   你是一个优秀的程序员,你可以阅读任何代码风格。如果你不是,那就是   孤独的风格根本不会帮助你。

我加入它是因为我认为他们提出了一个很好的观点,并且因为您在团队环境之外开发了自己的代码。但是,在侧面项目中练习良好的习惯(或者更确切地说,避免坏习惯)总是很好的,因为它们可能会传递到您为其他人编写的代码,因此学习如何处理这些代码将是有益的。如果您认为将来在团队中遇到该问题,请在大型代码库上命名约定。

答案 1 :(得分:2)

将此添加到应用程序启动时,它应自动将GET的返回对象转换为camelCase。

不需要任何映射或偏离每个环境的惯例。

var formatters = GlobalConfiguration.Configuration.Formatters;
var jsonFormatter = formatters.JsonFormatter;
var settings = jsonFormatter.SerializerSettings;
settings.Formatting = Formatting.Indented;
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();

有关详情,请参阅此处:http://odetocode.com/blogs/scott/archive/2013/03/25/asp-net-webapi-tip-3-camelcasing-json.aspx