如何记录JavaScript / CoffeeScript数据结构

我正在寻找一种描述性的方式来记录我的JavaScript应用程序中使用的数据结构。 由于JavaScript的动态特性,我很难完成这项工作。

例如,有一个很好的方法可以告诉,使用的变量距离是一个长度为i和j的二维数组,存储的数值介于-1MAX_INT之间。 我可以想到这样的事情:

distance[i][j] = -1 <= n <= MAX_INT

一个用作某种数据类型的地图/字典的对象呢,一个数组的第一个元素定义了其他数据,然后是其他数据的二维数组呢?等等。

当然,总是可以在文本中记录这些内容,我只是想,也许有一种众所周知的方法可以用半正式的方式来做到这一点。


尽管它没有被广泛采用(还没有?),但JSON模式还是有一个标准草案。 我只是自己学习它,但你可以为你的二维数组(包装在一个对象内)编写一个模式为:

{
    "description":"Two dimensional array of numbers",
    "type":"object",
    "properties":{
        "two-d-array":{
            "description":"columns",
            "type":"array",
            "items":{
                "description":"rows",
                "type":"array",
                "items": {
                   "description":"values",
                   "type":"number",
                   "minimum":-1,
                   "maximum":Number.MAX_VALUE
                }
            }
        }
    }
}

或者干脆:

{
    "type":"array",
    "items":{
        "type":"array",
        "items": {
            "type":"number",
            "minimum":-1,
            "maximum":Number.MAX_VALUE
        }
    }
}

没有我知道的CoffeeScript实现,但是这里有几个JavaScript验证器的列表。 我正在玩被规范作者所写的(简单地说)json-schema所写的那个,我很喜欢从CoffeeScript中调用它。


当我复制大量数据模型时,我倾向于在JavaScript中执行的操作是写出他们的类定义在评论中的含义。 我不确定这是否是您的问题。

// JavaScript Class jsHomeLocation
// jsHomeLocation{
// string name
// string address
// }

var jsHomeLocation = {};
jsHomeLocation.name = "Travis";
jsHomeLocation.address = "California";

您还可以使用javascript对象来跟踪示例的信息,这是一个二维数组

var distanceData = {};
distanceData.type = "two-dimensional array";
distanceData.length = i * j;
distanceData.min = -1;
distanceData.max = MAX_INT;
链接地址: http://www.djcxy.com/p/57173.html

上一篇: How to document JavaScript/CoffeeScript data structures

下一篇: Ivy: Resolving and Publishing JARs Locally