x
 
Александр Сушко
15 июня 2017
Советы почтой каждую неделю
Пожалуйста, получите наше письмо, чтобы подтвердить свой адрес:
Вы подписаны на «Советы за неделю»:

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

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

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


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

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

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

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

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

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

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

Новый сайт

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

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

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

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

Будущее

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

См. также совет Артёма Горбунова об управлении через интерфейс
P. S. Это был совет о веб-разработке. Хотите знать всё о коде, тестах, фронтенд-разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.
Вёрстка и прототипирование — дисциплина Школы дизайнеров. Набор весной. Оставьте почту, и мы напишем вам, когда откроется следующий набор.
 

Поделиться
Отправить

Цель рубрики — обсуждение вопросов дизайна всех видов, текста в дизайне и взаимоотношений дизайнеров с клиентами.

Мы публикуем комментарии, которые добавляют к уже сказанному новые мысли и хорошие примеры. Мы ожидаем, что такие комментарии составят около 20% от общего числа.

Решение о публикации принимается один раз; мы не имеем возможности комментировать или пересматривать свое решение, хотя оно может быть ошибочно. Уже опубликованные комментарии могут быть удалены через некоторое время, если без них обсуждение не становится менее ценным или интересным.

Вот такой веб 2.0.

Как сменить домен сайта, не теряя пользовательских данных? Как устроена беспарольная аутентификация почтой 7




Недавно всплыло

Как вы верифицируете оценку сроков от сотрудника? 1 3 Как избежать «эффекта Тильды»? 2 1