Может ли проверка синтаксиса для вашего кода восприниматься как отдельный шаг?

У меня возник спор с некоторыми колледжами о том, должен ли я проверять синтаксис после каждой модификации кода как отдельный шаг, или мне лучше полагаться на модульные тесты, чтобы отследить возможный сбой синтаксиса... (конечно, модульные тесты делают это).

Это не вопрос, использовать тесты или нет для вашего кода (конечно, да, но смотрите ниже)

Мой пример использования довольно прост, я новичок в Python и пытаюсь поиграть с некоторым веб-приложением (MVC), изменив файл модели. Изменения довольно просты, на самом деле пара или около того строк одновременно, однако, поскольку я довольно незнаком с синтаксисом Python, в него легко проникают некоторые глупые ошибки (например, неправильные отступы и т. Д.).

Реальное препятствие заключается в том, что я развертываю приложение через Google Cloud Platform (в качестве движка приложения), поэтому требуется некоторое время, чтобы приложение появилось в новой версии, и я могу перейти к конечной точке и, наконец, просмотреть журналы ошибок, чтобы понять, что происходит. Поэтому я хотел бы получить более короткий и простой способ - по крайней мере для таких типов ошибок - просто запустить проверку синтаксиса перед развертыванием.

Центральная часть спора состояла в том, что мне не советовали явно проверять синтаксис, но лучше полагаться на более высокие тесты уровня для этого (модульные тесты, например) на то, что я говорю, что:

1) И пока у меня нет модульных тестов (и даже если бы они были у меня, я бы отнесся к ним как к следующему этапу моей цепочки испытаний)

2) Я редактирую только определенный файл (один и только один) с минимальными изменениями, и большинство типов ошибок, которые у меня есть (как я уже говорил, я новичок в Python), это ошибки синтаксиса, а не логические или семантические, поэтому как я полагаю, я могу просто проверить синтаксис и затем развернуть его. И хотя я столкнулся с семантическими / логическими проблемами с моим кодом позже (даже с проверкой синтаксиса), это, несомненно, вопрос для высокоуровневых тестов (юнит / принятие и т. Д.) - но сейчас я просто играю с кодом, написанным на язык, на котором я не чувствую себя как дома.

3) Я не совершаю свои изменения снаружи и никого не беспокою.

4) последний аргумент является спорным, потому что это немного выходит за рамки, однако я бы хотел оставить его здесь - в некоторых случаях даже легковесные модульные тесты могут быть излишними, если ВСЕ, что вам нужно, это получить проверку синтаксиса в одном файле., Рассмотрим этот пример. Один просто редактирует код на месте, развертывая его на сервере, пытаясь исправить неотложные проблемы, чтобы не было никаких модульных или других тестов, и вы хотите быть уверены, что ваша модификация не нарушит синтаксический код.

3 ответа

Если проблемы с синтаксисом вызывают у вас проблемы, а затраты и задержки на их обнаружение достаточно раздражают, сначала проверьте синтаксис. Это не только проверка синтаксиса. Все, что вызывает достаточно раздражающую проблему, заслуживает некоторого смягчения. Компьютеры действительно удобны для скучных, повторяющихся задач. Я бы не стал этого делать, потому что какое-то языковое сообщество считало решение проблем глупым или странным (хотя, похоже, у каждого сообщества есть какая-то версия, кроме Smalltalkers;)

Другие люди могут подумать, что это плохая практика, потому что их стоимость в явном виде не компенсирует стоимость выяснения позже. Я редко делаю проверку синтаксиса в явном виде, но затем я провожу модульные тесты и часто их выполняю.

Возможно, ваше решение состоит в том, чтобы автоматизировать развертывание и включить проверку синтаксиса. Если это не удается, развертывание останавливается. У вас нет дополнительного шага, потому что он уже встроен в тот шаг, который вы делаете сейчас.

Говоря лично, если вы углубитесь в PEP8, то большую часть времени синтаксис придет естественным образом, например, сенсорный ввод. Тем не менее, большинство из вас знает несколько языков, поэтому я могу себе представить, что будет трудно запомнить все:)

По умолчанию Python выполняет проверку синтаксиса для функций в вашем коде. Кроме того, эта проверка синтаксиса будет искать любые открытые скобки или незавершенные строки кода, чтобы убедиться, что код будет работать правильно. Однако средство проверки синтаксиса не всегда выделяет проблему напрямую. Чтобы это исправить, вам просто нужно посмотреть на код самостоятельно.

Если вам нужно проверить орфографию, например, имена переменных или строки, я бы посоветовал скопировать код в программу для проверки орфографии, такую ​​как Microsoft Word или Grammarly.

Надеюсь, это поможет.

Другие вопросы по тегам