我使用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}
列/属性命名约定之间的这种映射对我来说似乎很愚蠢,如果所有语言都只是就套管约定达成一致,则不需要。有更好的方法吗?
答案 0 :(得分:3)
在我看来,您应该继续使用每种语言的标准惯例。
优点:
不要为了使语言保持一致而添加额外的约定。您的语言最终将会出现无关紧要的无关紧要的规则,并且对将来处理您的代码的任何人都会感到困惑。
为了扮演魔鬼的辩护律师,这里的意见不同意我在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