2

我与一些大学发生了争执,我是否应该在每次代码修改后将语法检查作为一个单独的步骤,或者我最好依靠单元测试来捕捉可能的语法破坏......(当然单元测试会这样做)。

这不是是否对您的代码进行测试的问题(当然可以,但请参见下文)

我的用例非常简单,我是 Python 的新手,并尝试通过修改模型文件来玩一些 Web 应用程序(MVC)。更改非常简单,实际上一次几行左右,但是由于我对 Python 语法非常不熟悉,一些愚蠢的错误(如错误的缩进等)很容易出现。

真正的障碍是我通过谷歌云平台(作为应用引擎)部署了一个应用程序,所以应用程序需要一段时间才能推出新版本,我可以点击一个端点并最终查看它的错误日志以了解发生了什么。所以我想得到一种更短更简单的方法——至少对于这些类型的错误——只是在部署之前运行语法检查。

争议的核心部分是我没有被建议明确地进行语法检查,而是更好地依赖于更高级别的测试(例如单元测试),我所说的是:

1)并且还没有单元测试(即使我有它们,我也会将它们视为测试链中的下一步)。

2)我只编辑一个特定的文件(一个且只有一个),修改最少,而且我所遇到的错误类型(正如我在 Python 中的新手所说)是语法错误,而不是逻辑或语义错误,所以因为我认为我可以安全地进行语法检查,然后进行部署。即使我后来遇到了我的代码的语义/逻辑问题(甚至语法检查通过),这对于高级测试(单元/验收等)来说无疑是一个问题 -但现在我只是在玩用编写的代码一种我不太熟悉的语言。

3)我不会在外面提交我的更改,也不会给任何人带来麻烦。

4)最后一个参数是有争议的,因为它有点范围,但是我想把它留在这里 - 在某些情况下,如果你只需要在单个文件中进行语法检查,即使是轻量级单元测试也可能是矫枉过正的. 考虑这个例子。一个人只是在适当的位置编辑代码,部署在服务器上试图解决即时问题,因此不存在单元或其他测试,并且您希望确保您的修改不会在语法上破坏代码。

4

3 回答 3

3

如果语法问题导致您出现问题,并且发现这些问题的成本和延迟足够烦人,请先检查语法。这不仅仅是语法检查。任何导致足够烦人的问题的事情都应该得到某种缓解。计算机对于无聊、重复的任务非常方便。我不会这样做,因为一些语言社区认为解决问题是愚蠢或奇怪的(尽管每个社区似乎都有一些版本,除了 Smalltalkers ;)

其他人可能认为这是不好的做法,因为他们明确地这样做的成本并不能抵消以后发现的成本。我很少明确地进行语法检查,但我会进行单元测试并经常运行这些测试。

也许您的解决方案是自动化您的部署并在那里进行语法检查。如果失败,部署将停止。您没有额外的步骤,因为它已经融入您现在正在执行的步骤中。

于 2017-11-21T19:54:22.023 回答
0

就个人而言,如果您深入了解 PEP8,大多数情况下语法都会自然而然地出现,例如触摸打字。然而,你们中的大多数人都知道多种语言,所以我可以想象很难记住所有语言:)

于 2017-11-14T22:57:58.157 回答
-1

默认情况下,Python 会对代码中的函数进行语法检查。此外,此语法检查将查找任何开括号或未完成的代码行,以确保代码能够正常工作。但是,语法检查器并不总是直接突出问题。要解决这个问题,您只需要自己查看代码。

如果您需要拼写检查变量名称或字符串等内容,我建议您将代码复制到 Microsoft Word 或 Grammarly 等拼写检查程序中。

我希望这有帮助。

于 2017-11-13T10:57:59.803 回答