Новый сайт The Village — почему бэкенд делали «с нуля»

В августе 2020-го The Village запустили новый сайт, над которым работали Evrone вместе с командой Redefine. Мы отвечали за бэкенд, который пришлось полностью переработать. Теперь рассказываем, почему создать что-то новое на проекте бывает полезнее, чем разбираться со старым.

Новый сайт The Village — почему бэкенд делали «с нуля»

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

Redefine искали команду с экспертизой в медиа и Ruby. Вот какие требования были к новой платформе:

  • должна работать на актуальных технологиях;
  • учитывать удачные решения прошлой версии;
  • выполнять внутренние бизнес-задачи.

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

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

Могут возникнуть проблемы с безопасностью

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

Конечно, здесь возникнет сложность с технической поддержкой разных версий. Но гораздо острее будет вопрос безопасности.

Например, мошенники могут зайти в список изменений какой-нибудь популярной библиотеки и посмотреть, какие ошибки были обнаружены пользователями, но ещё не исправлены. Через эти уязвимости они смогут получить доступ к приложению, работающему с этой библиотекой.

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

В будущем будет сложно поддерживать и внедрять новые функции

Такое чаще всего бывает со стартапами. Гипотезы проверили, product-market-fit нашли, деньги заработали. Пришло время превратить MVP в полноценный продукт. Если сразу не подумать о будущем, впереди могут ждать проблемы, которые убьют продукт или сожрут бюджет целиком.

Чтобы убедить себя или руководство в необходимости обновления, можно помоделировать разные ситуации и проверить, справляется ли с ними продукт:

  • пользователей стало в десятки раз больше и нагрузка на сервер увеличилась;
  • обратная связь показала, что нужно срочно внедрить большую и сложную функцию;
  • появилась популярная функция, которую вы не предусматривали с самого начала (как было, например, с бумом тёмных тем или формата «историй»);
  • в продукте меняется ключевая функция.

Представим, что условное финансовое приложение «с рождения» использует монолитную архитектуру. Сервис при этом хочет расти и выходить на рынки других стран. Если оставить всё как есть, то при создании каждой локальной версии придётся залезть и переписать везде по чуть-чуть. Это потребует много разработчиков или много времени.

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

Если сразу не вырасти в продуманный сервис — возникнут две проблемы. Во-первых, стоимость ошибки в будущем станет кратно большей. А во-вторых, времени на переписывание продукта будет критически мало. Настолько мало, что это может убить бизнес.

Если хотите узнать больше об оптимизации затрат в продукте, посмотрите выступление технического директора Evrone Александра Кириллова на бизнес-митапе Meta/Conf:

Соотвествовать трендам будет сложно или даже невозможно

Обычно разбор технического долга или переезд на другую архитектуру откладывается под предлогом «ну ведь сейчас оно работает, давайте решать насущные задачи». И кажется, что всё идёт хорошо, пользователи наслаждаются новыми функциями...

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

Например, пользователи хотят, чтобы сайт загружался быстро, они не готовы ждать загрузки страницы по 10 секунд. В таком случае его можно реализовать в виде популярной сейчас технологии SPA (Single Page Application) — страница перерисовывается в браузере пользователя, а от сервера требуются данные в чистом виде. Страницы загружаются быстро — за 1-2 секунды, а иногда моментально (если все необходимые данные уже загружались).

Если сделать классический мультистраничный сайт, то скорость загрузки большого и насыщенного графикой сайта будет зависеть в том числе и от того, насколько мощное устройство у пользователя. И тогда страницы могут загружаться очень долго, а пользователь может не выдержать и закрыть вкладку.

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

На нашем сайте мы рассказываем о технических деталях и фишках нового бэкенда The Village, который избавлен от описанных выше проблем. Он готов к высоким нагрузкам и новым фичам. А ещё он дружит с любым фронтендом, если внешняя часть потребует изменений.

27
49 комментариев

Автора дизайна этого блока надо выгнать из профессии и до конца жизни заставить каждый его читать пока не ослепнет

13

Комментарий недоступен

Согласен, хотел копипастнуть сюда этот блок, но увидел ваш комментарий.

Очень смешно читать отзывы реальных членов комьюнити о перезапуске. https://www.the-village.ru/talks/ads/ischem-teh-kto-perestal-chitat-the-village-sdavayte-svoih-druzey
Кстати, попробуйте найти возможность написать там комментарий. 

12

Если тут есть их представители - а в чем прикол интересоваться мнением только 26-30 лет? Удивли - 1. Это очень узкая выборка по населению Москвы и Питера т.е. от силы 6-7% населения Москвы 2. Если это нишевость - то что настолько отделяет эту возрастную группу от допустим 24 или 33 летнего? 3. От обратного - что за специфическая подача материала нравится именно в этом возврате или тематика материала?

Зашел на главную - новости:  Полковника полиции из Дагестана задержали, Путин подписал закон о НДФЛ, Открылась первая станция Ховрино. Статьи: что делать если ваги доходу упали, Что делать если вам изменили, Студенты требуюст скидок 

Где в этом материале акцент на 26-30 лет?)))

1

Я пользуюсь только десктопной версией и она была ужасна после запуска обновлённого сайта. До сих пор не могу понять как в один клик читать старые новости, которые ушли с главной страницы. Когда нажимаешь на кнопку новости (внутри открытой новости) почему-то иногда попадаешь на последние новости до переделки сайта (июльские). Обновление вышло в очень сыром виде к сожалению(.

6