Цей документ містить настанови щодо реалізації аналізатора.
Загальні положення
- Проаналізуймо усі подані файли, окрім файлів tests/invalidator/editor/example/exemplar
- Не прагнімо 100% правильності, якої майже неможливо досягти.
Нічого страшного, якщо аналізатор не знайде всіх проблем чи не зможе визначити деякі теги.
Компіляція
Якщо мова, для якої ми пишемо аналізатор, потребує етапу компіляції, зважмо на такі моменти:
- Компіляція рішення зазвичай дає змогу досягти вищої точності.
Наприклад, остаточний тип будь-якого значення стає відомим лише після компіляції.
Але памʼятаймо про компроміси (наприклад, повільніший запуск і більше споживання памʼяті).
- Розгляньмо компіляцію в памʼяті (якщо це можливо), щоб підвищити продуктивність.
Тестування
- Подбаймо про ґрунтовний набір тестів
- Використовуймо золоті тести, щоб перевірити поведінку аналізатора.
Ці тести мають використовувати образ Docker, який буде розгорнуто для перевірки аналізатора.
- Розгляньмо також тести для кожного підходу.
Ми хочемо, щоб аналізатор добре працював із такими рішеннями, і це допоможе згодом призначати теги підходам.