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

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

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

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

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

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

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

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

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

Новый сайт

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

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

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

Будущее

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

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

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