0

我对项目架构师的请求有疑问。此人希望我以与 .NET 命名约定相同的方式命名我的所有属性。

我应该努力将 JavaScript 保留为 JavaScript,还是因为我们在 .NET 商店中而让 .NET 命名约定在我们的 JS 上蔓延?

//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
};
4

2 回答 2

3

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

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

于 2012-06-26T18:11:25.357 回答
2

就个人而言,我更喜欢纯 JavaScript 代码中的骆驼大小写和纯 C# 属性的帕斯卡大小写。

但是,当您通过 JSON 将 C# 类序列化为 JavaScript,或模型绑定最初作为 JavaScript 对象的发布值时,界限会变得模糊。建筑师说“我们应该始终如一地做一个或另一个”是一个完全正确的担忧。走哪条路取决于很多事情。当物体越过边界并且你必须选择时,问问自己:

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

JavaScript 是用于轻量级的 jQuery 行为还是用于重要的业务问题?你对你的 JavaScript 进行单元测试吗?

你在 C# 中经常使用序列化的类吗?贯穿许多业务层,还是单元测试?

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

于 2012-06-26T18:20:45.717 回答