【发布时间】:2013-08-13 08:27:58
【问题描述】:
我们正在为 Gremlin/Cypher 开发审查工具,因为我们在项目中主要使用 Neo4j 图形数据库,以减少人工审查工作并提供高质量的代码。
是否有任何 Gremlin 和 Cypher 脚本的编码标准(格式/性能提示等)列表,可用作检查这些脚本的清单?
【问题讨论】:
我们正在为 Gremlin/Cypher 开发审查工具,因为我们在项目中主要使用 Neo4j 图形数据库,以减少人工审查工作并提供高质量的代码。
是否有任何 Gremlin 和 Cypher 脚本的编码标准(格式/性能提示等)列表,可用作检查这些脚本的清单?
【问题讨论】:
我认为您不会找到一个具体的答案,因为讨论编码标准可能会导致非常主观(且充满争论)的答案。也就是说:我会更客观:
第一步是决定 Gremlin 和 Cypher,因为它们既不是同一种东西,也不是同一种风格。在做出这个决定时(也许那个决定是同时使用),你应该仔细看看 Neo4j 2.0 的开发(目前是里程碑 4),因为 Cypher 正在迅速成熟,还有很多工作要做无论是从表现力的角度还是性能的角度,都投入其中。
假设您使用 Cypher,我建议您查看 Neo Technology 发布的示例,尤其是 Cypher learning module。我不知道任何已发布的指南,但我认为大多数指南与您已经拥有的任何脚本指南相似(例如命名约定、间距等)。更进一步,您可能会通过代码和控制台使用 Cypher。因此,您将希望继续使用传统的编程风格指南,并指定您将使用的特定于语言的库。
【讨论】:
我只能给你一个与 Gremlin 相关的答案。首先,需要注意的是,Gremlin wiki、GremlinDocs、gremlin-users 邮件列表等中的几乎所有示例都适用于 REPL。来自这些源的示例遍历往往是冗长的单行代码,以这种方式编写以便通过复制/粘贴轻松传输到命令行以执行。在 REPL 中以单行方式获得答案有点令人满意,但对于需要随时间维护的生产代码,请考虑避免这样做的诱惑,除非有特定原因要求。
其次,从样式/格式的角度来看,Gremlin 是基于 Groovy 构建的 DSL。无论您喜欢 Groovy 的哪种风格,通常都适用于 Gremlin。从 Groovy recommendations 开始,然后根据您的需要/喜好调整它们。我希望像 CodeNarc 这样的工具可以帮助进行一般样式检查和识别常见的 Groovy 编码问题。
【讨论】: