этапах разработки Помогает писать код в едином стиле Линтеры - инструменты для статического анализа ESLint - линтер для JavaScript и TypeScript Что такое статический анализ кода? ТЕОРИЯ
Монолит на Node.js, Express.js и Angular.js Весь JS и TS код хранится в едином репозитории Много легаси Дедлайны горят. Фитчи пилятся. Всё как у людей. ПРЕДЫСТОРИЯ
найденные ошибки с помощью автофикса Если правило рекомендовано и не имеет автофикса Попробовать включить и посмотреть количество ошибок Если ошибок немного или их легко исправить, то оставить правило включённым Исправить найденные проблемы Если правило не рекомендовано Попробовать включить и посмотреть количество ошибок Субъективно оценить на сколько исправление найденных ошибок того стоит REVIEW HELL
Подключили TypeScript ESLint плагин и включили правила В том числе @typescript-eslint/no-floating-promises Нашли и исправили все плавающие промисы FLOATTING PROMISES ✅Правильно ❌Неправильно
импорты Java MODULES Включили два ESLint правила запрещающие переход назад в пути (../) Написали дополнительное правило, чтобы покрыть осавшиеся кейсы Как сделать так, чтобы все использовали только алиасы?
Часто встречаются на больших проектах Создают сложно отлавливаемые ошибки при инициализации Наша команда столкнулась с такими ошибками Сложно решить каким-то одним способом CYCLE DEPENDECIES
no-cycle правило Правило достаточно медленное Рекомендовано запускать только на CI в больших проектах Нас время выполнения устроило и мы оставили его для локальной разработки CYCLE DEPENDECIES
такие импорты не нужны TypeScript позволяет импортировать только тип Правило consistent-type-imports позволяет сделать такие импорты обязательными Убирает ненужные связи между модулями из рантайма Уменьшает вероятность появления циклических зависимостей CYCLE DEPENDECIES
и TS код написан в едином стиле Отловлены и исправлены множество мелких и некоторые крупные баги Предотвращено появление подобных багов в будущем Унифицированы пути в импортах Убраны ненужные зависимости из рантайма Уменьшили количество конфликтов внутри команды ВЫВОДЫ