Я только что закончил писать тысячи строк кода робототехники, который имеет логические операторы на логические операторы на логические операторы, просто чтобы узнать из моего компилятора, что я где-то пропустил фигурную скобку.
Есть ли инструмент, который может автоматически искать код и исправлять его?
брекеты?
Каждый лучший текстовый редактор выделит непревзойденные скобки. Однако автоматически фиксирующиеся брекеты? Нет, потому что это потребовало бы магического гадания. Возьмите это выражение для примера
x = (3 + y * 5 - 4 * 7
Где бы вы положили скобу? Это
x = (3 + y) * 5 - 4 * 7
либо это
x = (3 + y * 5 - 4) * 7
Эти два очень разные выражения.
А если серьезно, вы написали тысячи строк кода без промежуточного тестирования? Правильный подход к любому проекту — разбить его на небольшие, независимо написанные и тестируемые блоки. Я не просто говорю о разделении кода в функциях. Я также говорю о разделении кода на несколько независимых модулей компиляции (исходные файлы).
Как правило, ваш типичный исходный файл должен содержать не более 2000 строк кода. Если это дольше, вы сделали что-то не так. Подобные одиночные функции не должны быть длиннее одного маленького экрана (около 50 строк).
Вы пишете схему одного такого блока и тестируете его. Как вы это тестируете? Написав некоторый набор тестов, который использует модуль самым простым способом. Протестируйте каждый блок независимо. Вы тестируете юниты … отсюда это называется модульные тесты. Обратите внимание, что модульные тесты не проверяют код, они только показывают, что код придерживается ожидаемого поведения для выбранных условий тестирования.
После того, как ваш модульный тестовый каркас для набросков, вы можете конкретизировать его. Для каждой новой функции, которую вы добавляете в модуль, вы добавляете дополнительный тестовый пример в модульный тест.
Других решений пока нет …