JavaScript рефакторинг: балласт в проекте и как от него избавиться

JavaScript рефакторинг: избавляемся от балласта

Начав удалять ненужный код, сложно остановиться. В прошлой части были удалены неиспользуемые импорты, в этот раз я найду лишние файлы: пустые readme и дефолтные таблицы стилей. Такие файлы выглядят полезными, но это оптическая иллюзия, которая проходит, если присмотреться.

Рефакторинг подходит для больших проектов: в текущем около 300 файлов историй, и примерно столько же компонентов. PR с лишним кодом унёс с собой 1.4к строк и улучшил время сборки почти на минуту (!).
Для малых проектов лучше сберечь усилия для каких-то более существенных улучшений.

Подробнее →

Рефакторинг. Улучшение существующего кода

Рефакторинг. Улучшение существующего кода

Читал вторую редакцию, примеры в этой версии на JavaScript.

Очень полезное чтиво, особенно техники под конец и последняя глава про ООП. Раздел про наследование и композицию вообще нужно включать в онбординги для новых разработчиков и стайл гайды проекта.

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

Зачем читать

Чтобы писать код лучше, а ревью на него — по делу.

Подробнее →

JavaScript рефакторинг: удаление мёртвого кода

JavaScript рефакторинг: удаление мёртвого кода

Как неиспользуемый код стухает и лежит в проекте заповедными нетронутными пластами: новый функционал обложили тестами и снапшотами и выкатили на прод. Через какое-то время, клиентский код или компонент, который пользовался этим функционалом, удалили — а общие утилиты, константы, моки и конфигурации остались по чьему-то недосмотру. Такой код больше не нужен и не используется, но невидим для линтеров и подсветки IDE: он импортируется в тестах и StoryBook (например), и выглядит полезным и вообще, при деле.

В текущем большом проекте я нашёл и удалил около 5к строк неиспользуемых функций и компонентов, а также ненужных стилей, тестов, историй StoryBook, снапшотов и одну картинку. Что интересно, снапшоты были далеко не большей частью пулл реквеста, зато нашлось множество устаревших компонентов, которые импортировались только в историях SB.
Кроме прочего, это ускорило время сборки проекта примерно на полминуты или 5%: мелочь, а приятно. Подробнее →