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.

Как сменить домен сайта, не теряя пользовательских данных? Автотесты «на пальцах» Как следить за качеством кода? Часть вторая: метрики Что такое СВГ и как его использовать в ХТМЛ-вёрстке? 1




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

4 2 Хочу научиться сторителлингу 2 Как найти себе замену 1