冲突类的JavaScript命名约定 TL;博士
我们如何命名具有扩展JavaScript默认类功能的特性的类(例如,冲突类的JavaScript命名约定 TL;博士,javascript,naming-conventions,naming,Javascript,Naming Conventions,Naming,我们如何命名具有扩展JavaScript默认类功能的特性的类(例如,Array) 解释 我是一个小型库的作者,该库为数据结构、算法和处理提供类。这个库有用于数组,对象,数学,颜色和其他很酷的东西的助手模块 我该怎么称呼他们?现在我正在使用以下约定: math ArrayH ObjectH 其中H表示助手类。现在看起来有点难看 名字间距? 是的,我可以像AlgoFlux.array.unique()那样封装所有这些。但是我想说得简短一点,如果JS支持使用语句,比如在C#中使用,那将是一个好主
Array
)
解释
我是一个小型库的作者,该库为数据结构、算法和处理提供类。这个库有用于数组
,对象
,数学
,颜色
和其他很酷的东西的助手模块
我该怎么称呼他们?现在我正在使用以下约定:
math
ArrayH
ObjectH
H
表示助手类。现在看起来有点难看
名字间距?
是的,我可以像AlgoFlux.array.unique()
那样封装所有这些。但是我想说得简短一点,如果JS支持使用语句,比如在C#中使用,那将是一个好主意
原型设计?
扩展内置类是个坏主意。为此制作单独的模块是一个很好的设计决策
任何关于这个问题的帮助都将不胜感激。谢谢。这个问题可能有点基于观点,但您有一些选择: 目前:名称空间和/或AMD。最终: 名称空间: 是的,我可以像
AlgoFlux.array.unique()
那样封装所有这些。但我想保持简短
嗯,您不需要复数形式(例如,AlgoFlux.Array.unique
)。让您的用户担心短消息。例如,如果我愿意,那么在我的代码中,在包含您的库之后,我可以这样做:
var A = AlgoFlux;
然后我使用A.Array.unique()
,它只比ArrayH.unique()长一个字符
…如果JS支持使用语句(如C#中的语句),这将是一个好主意
上面的var
语句很接近;ES6模块一路实现
AMD:
如果您支持AMD,那么与上面的名称空间一样,您的用户可以根据自己的代码做出以下决定:
var A = require("AlgoFlux");
……甚至:
var ArrayH = require("AlgoFlux.Array");
…如果他们愿意的话。:-)
ES6模块:
当您可以开始在野外使用它们时(因为它们是全新的,还没有广泛的支持),它将是:
import A from 'AlgoFlux';
或
我会用下划线,这样你就可以
your_namespace.method(someArray)
或
AlgoFlux
对于名称空间来说有点太长(在javascript中,lowerCamelCase更为常见),因此我会选择类似
afx.array.getRandomValues(...)
是这样一个多级名称空间的完美示例。您的问题与主题无关。对于特定的编程问题也是如此。对于命名约定
,也有2729个问题。我想这个问题也可以。
your_namespace(someArray).method1().method2() etc
afx.array.getRandomValues(...)