我今天遇到了一个错误,让我想知道检查源代码一致性的工具。首先,错误:
我的jQuery选择器期待.attached_reports
,但HTML模板正在创建一个包含类attached-reports
的div。发生了什么事情,我们热心的themer决定标准化所有类名使用连字符而不是下划线,结果我们的代码破坏了。
问题:
是否有工具或方法可以解析源代码,并将每个attached-reports
出现在一起。然后,如果其中一个符号被更改(例如,在版本控制提交时),它可以提醒团队更改?
答案 0 :(得分:2)
您需要的是跨语言一致性检查程序,可以静态检查运行时可能发生的错误。
要做到这一点,你需要一个可以处理所有相关语言的工具(你有两个:Javascript?[对于Jquery],特别引用HTML模板,以及HTML模板langauges(不完全是HTML)。该工具必须知道JavaScript代码将使用名称引用模板(可能这只是一个字符串;你怎么知道模板名称不是由一些神秘的进程计算的?),并且将引用HTML模板条目(如果有一个未引用的模板槽,是吗?)
世界上充满了有趣的小语言和他们之间的有趣约束(随着人们发明更多的DSL和集成规则,它变得越来越糟)。您不太可能为每种组合找到现成的工具。
我们的DMS Software Reengineering Toolkit旨在轻松接受新的语言描述或方言变体(因此您可以定义HTML模板变体)和自定义分析器(以便您可以检测到违规行为)。 [DMS已经具有常规和非常规Language Front Ends的稳定性,包括JavaScript的一个。 DMS在几个方面具有可扩展性;一个是它可以同时处理的语言数量......比如你的情况下的“两个”。
DMS使人们可以编写自定义分析器或变换器的代码。当然,无论实施什么分析都受到可计算性限制;如果您的模板名称是由神秘的JavaScript代码计算的,则该工具无法确定该计算名称是否与模板中的内容匹配。