Школа
Веб-разработка

Как устроен сайт бюро изнутри

Вопрос Василию Половнёву.

Здравствуйте. В одном из советов про редизайн Михаил вскользь упомянул, что раскладка работает без админки. А на чём всё держится? Как устроен сайт бюро изнутри, расскажите, пожалуйста.

(Вторая часть)

Александр Сушко
15 июня 2017
👁 4386  
Веб-разработка

Как устроен сайт бюро изнутри

Вопрос Василию Половнёву.

Здравствуйте. В одном из советов про редизайн Михаил вскользь упомянул, что раскладка работает без админки. А на чём всё держится? Как устроен сайт бюро изнутри, расскажите, пожалуйста.

(Вторая часть)

Александр Сушко
15 июня 2017
👁 4386  
Василий Половнёв
Технический директор бюро
Полезно
 1
1
Непонятно
  
Войдите в Бюросферу, чтобы голосовать

В прошлом совете я рассказал, как автоматическая раскладка работ в портфолио работает без админки. В этом — как устроен сайт бюро изнутри и на чём работает.

Олд‑щит и единороги

Техноконтуром мы называем команду разработки в бюро

Мы условно делим сайт бюро на «олд‑щит» и «единорогов». Олд‑щит — старые подсистемы сайта, созданные разными ребятами на самописных фреймворках. Единороги — новые подсистемы, разрабатываемые техноконтуром по технологическим стандартам бюро.

Техноконтуром мы называем команду разработки в бюро

Олд‑щит написан на ПХП и MySQL: где‑то на самописном фреймворке с ORM, где‑то без фреймворка, где‑то на ПХП‑подобном шаблонизаторе и чистом SQL. Развивать и поддерживать такое наследие дорого: с каждой подсистемой приходится разбираться отдельно, а изменения долго проверять вручную.

В олд‑щит входят: наблюдения, курсы, Школа cтажёров и Коворкафе. Но самое больное — советы. В шаблоне совета 1400 строк на ПХП и самописном шаблонизаторе, парсинг ХТМЛ на регулярных выражениях и три варианта вёрстки текста совета на таблицах.

Единороги написаны на стабильных, готовых фреймворках, которые лучше всего подходят к задаче. Например, бэкенд издательства и Бюрокасса работают на Руби‑на‑Рельсах и PostgreSQL, сервис, генерирующий превьюшки сертификатов и дипломов, — на Express и PhantomJS, рассылка советов — на Руби, Postgresql и MailChimp.

Единороги используют Ansible для управления конфигурацией, Capistrano, Shipit и pm2 для деплоя, Rollbar для отслеживания ошибок, Semaphore как сервис непрерывной интеграции.

Новый сайт

Новый сайт — особенный единорог, тонкий бэкенд (middle‑end?) на Ноде и Express. У него одна задача — рендер Pug‑страниц в ХТМЛ. За редактирование, публикацию и авторизацию отвечает бэкенд на Рельсах.

Новый сайт работает со старыми подсистемами. Например, чтобы показать главную страницу, нужно получить информацию о последних советах, наблюдениях и открытых курсах из старого сайта бюро. За этими данными новый сайт обращается не напрямую в БД, а по ХТТП к JSON АПИ. Так мы привязываемся к интерфейсу, а не к старой БД и её структуре. Когда старые советы заменит единорог, в новом сайте ничего не придется менять: интерфейс останется тем же.

Такой же подход мы используем и для аутентификации в единорогах: все они используют один и тот же JSON АПИ. Когда Бюросферу заменит единорог, систему авторизации в существующих подсистемах менять не придется.

Будущее

Со временем единорогов станет больше: часть заменит проблемные подсистемы старого сайта, часть — добавит что‑то новое. Олд‑щита станет меньше, и его поддержка не будет отнимать времени.

P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.

Веб‑разработкаЗолотой фонд
Полезно
 1
1
Непонятно
  
Войдите в Бюросферу, чтобы голосовать
Отправить
Поделиться
Поделиться
Запинить
Твитнуть

Комментариев пока нет

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

Рекомендуем другие советы