А зачем?

Любой программист всегда считает весь код говном. Кроме того, который он пишет прямо сейчас.

Идею переписать фронтэнд с нуля я вынашивал примерно год. Нет, это не то огульное желание “все переписать”, которое довольно часто посещает любого программиста. Я долго пытался найти варианты постепенного обновления кодовой базы, переписывания по частям и тд…

Чтобы вы понимали — код фронта писался в течение 5 лет десятком разных разработчиков. Начиналось все с jQuery, плагинов, постепенно обрастало какими-то нововведениями, модными трендами. В довершение ко всему, на голову свалился AngularJS, ES6 и вебсокеты…

Первая попытка привести код в порядок была предпринята при редизайне летом прошлого года. Это обновление сайта было названо у нас кодовым словом “резина” — основная цель апдейта была в том, чтобы обеспечить адекватное отображение сайта на разных разрешениях. Под шумок этого обновления я принялся перелапачивать код фронтэнда. Получилось так себе.

Да, с одной стороны, мне удалось избавиться от огромного количества легаси кода. Но с другой — фронтэнд так и остался набором несвязанных js-файлов, написаных в разном стиле. А в некоторых местах проблема даже усугубилась. А все потому, что изначально не было какого-то серьезного проектирования и по мере структуризации кода менялось мое понимание того, куда нужно двигаться. Сначала я хотел было приложить несколько скриншотов, чтобы показать всю глубину проблемы, но решил пожалеть вашу психику.

Стоит так же отметить, что проблема сложности кода — не единственная проблема текущего фронтэнда. К производительности тоже есть серьезные вопросы. Причем местами просадки производительности заметны даже на топовом железе. Стоит ли говорить о всей той боли, что испытывают обладатели более слабых компов?

Добавим в наш список претензий отсутствие адекватной возможности реализовать интернационализацию. Переключалку языка не запилить, если быть проще. Тексты, которые нужно переводить, размазаны буквально повсюду — в php, в html, в javascript. А, еще в svg местами есть. Ага.

Вишенкой на нашем торте будет отсутствие какого-либо автоматизированного тестирования. От слова вообще. Комментарии излишни, ящетаю…