2012-06-26 32 views
1

我遇到了来自项目架构师的请求问题。这个人希望我用.NET命名约定的方式来命名我的所有属性。.NET商店中的JavaScript命名约定

我是否应该打起精神来保持JavaScript为JavaScript,或者让.NET命名约定在我们的JS上蔓延,因为我们在.NET商店?

//ALL THE RETURN PROPERTY NAMES SHOULD START WITH A CAPITALIZED LETTER - like  MaxItemsPerPage. 
return { 
    MaxItemsPerPage: _dataModel.pageSize, 
    data: _data, 
    searchTerm: _searchTerm, 
    filterViewModel: _filterModel, 
    dataGridViewModel: _dataModel, 
    sortOptions: _sortOptions, 
    selectedSortOption: _selectedSortOption, 
    selectedSortOrder: _selectedSortOrder, 
    sortOrders: _sortOrders, 
    loading: _loading, 
    update: updateData, 
    searchResults: _searchResults, 
    pageTitle: _pageTitle, 
    showSortOpts: _showSortOpts, 
    enableSortOpts: _enableSortOpts, 
    disableSortOpts: _disableSortOpts, 
    showA: _showAscendingOptions, 
    showD: _showDescendingOptions, 
    selectedSearchTemplate: _selectedSearchTemplate, 
    searchListTemplateOptions: _searchListTemplates 
}; 
+2

这可能会更好程序员.stackexchange.com。我投票结束,因为它不适合这里,因为它不能客观地回答。 –

回答

3

Javascript代码应该遵循Javascript约定,包括命名约定。

如果您尝试像编写C#或VB代码那样编写JavaScript,那么您最终会遇到不好的Javascript。编写好的代码意味着为您使用的每种语言编写好的惯用的代码。

2

就个人而言,我更喜欢纯JavaScript代码中的camel case和pure-C#属性的pascal case。

但是,当您通过JSON将C#类序列化到JavaScript,或者模型绑定发布的值作为JavaScript对象开始时,边界模糊。对于一位建筑师来说,“我们应该始终如一地做某件事”是一个非常合理的担忧。走哪条路取决于很多事情。当物体穿过保险箱并且您必须选择时,问问自己:

外部方是否依赖您发布的合同/ JavaScript对象,还是纯粹是内部的?

JavaScript是用于轻量级jQuery行为还是出于重大商业考虑?你是否测试你的JavaScript?

你在C#中使用了很多序列化类吗?纵观许多业务层面或单元测试?

对于存在于C#/ JS合约两端的对象,C#中的%代码和JS中的%是什么?

+0

+1关于边界模糊的重点 –