Методы борьбы с legacy-кодом на примере GitLab Frontend
12 лет в мире JS во всех его проявлениях: от рендеринга видео на лету в облаке до микроконтроллеров. Как и все программисты, любит слушать про производительность, новые технологии и прочее, пока исправляет очередной стандартный донельзя компонент
Знакомьтесь: GitLab. Превосходная система для организации полного DevOps-цикла и настоящий кошмар для frontend-программиста. В 2019 году у нас есть:
- AJAX-запросы, которые в ответ присылают jquery-код, который надо eval'ить;
- адский микс из JQuery, Vue, VueX, Apollo, SPA- и не-SPA-подходов;
- Karma, Jest, RSpec + Capybara;
- CSS, SCSS, собственная дизайн-система на этапе разработки
и многое-многое другое.
Причина? Проекту 7 лет и frontend долгое время разрабатывался по "остаточному" принципу, без уделения нужного внимания best practices, правильным подходам и т.д.
Мы поговорим о структуре и инструментах для итеративного улучшения таких "backend-first"-проектов. Мы поговорим о линтерах и их месте в CI, тестах, их надежности и мутационном тестировании, о пользе снапшотов, чтобы "быстро двигаться вперед", организации CSS и прочих болях