Привет! 15 мая мы проведем митап в смешанном формате: ты сможешь подключиться к ютуб-трансляции и задать вопрос текстом или голосом, а если ты в Казани или рядом — приходи в “Штаб”. Ребята из Skyeng расскажут, как и зачем допиливать Codeception, чтобы больше радоваться. Ребята из VK — как превратить PHP-скрипты в статические бинарники. Ребята из iSpring — как внедряли DevOps без Docker и Kubernetes. Ребята из FindMyKids — как переписали нагруженный сервис. Ну а автор Laravel Idea Адель Файзрахманов поднимет холиварную тему про трейты.
Мы попросили докладчиков оценить темы друг друга и чуть больше рассказать о своем опыте.
Иван Филатов, старший разработчик в команде экспериментальных продуктов Skyeng

Расскажи самую памятную историю про свою тему — тесты.
Наверное, когда впервые сделал несколько тестов, настроил на поднятом своими руками Gitlab себе CI с автопрогоном — и оно всё заработало.
Как относишься к трейтам?
Нормальный способ переиспользования кода. Можно выносить небольшие утилитарные вещи.
Как у тебя в проекте с DevOps?
Отлично, есть большой отдел, люди работают, разработку слышат, взаимодействие приятное. Сам активно помогал, делал PR и участвовал в обсуждениях.
Что думаешь о KPHP?
Не думаю, что он может взлететь вне ВКонтакте, если не будет поддерживать всё, что есть в актуальном PHP.
Что думаешь о переписывании сервисов с PHP на Go?
Хорошее дело, если надо сделать микросервис, когда RPS такой, что PHP живётся сложно.
Сергей Шамбир, ведущий инженер-программист в iSpring

Расскажи самую памятную историю про тесты.
Нашёл я однажды среди тестов целых 10 файлов, где всё закомментировано 2 года назад. Оказалось, автор закомментировал тесты временно и забыл раскомментировать перед коммитом.
Как относишься к трейтам?
Использовал трейт как временное решение для переименования колонки в БД.
Как у тебя в проекте с DevOps?
В любом проекте внедряю DevOps-практики. Причем начинал делать это ещё когда не знал слова DevOps. Видимо, что-то бессознательное тянет меня в эту сторону.
Что думаешь о KPHP?
KPHP вряд ли выйдет за рамки внутреннего проекта VK. HHVM пытался выйти, и зашёл обратно в виде языка hack. Кажется, ни Facebook, ни VK не готовы терпеливо развивать сам язык и его инструментарий, поэтому они всегда будут где-то в стороне.
Что думаешь о переписывании сервисов с PHP на Go?
Не всегда целесообразно переходить на Go. Чаще всего Go подходит для закрытия того, что PHP делает плохо, для новых компонентов продукта и для внутренней автоматизации, если она сложная. Если хочется переписать на Go существующее — стоит прочитать статью «Скрытые расходы при переходе на микросервисы».
Искандер Шарипов, ведущий разработчик ВКонтакте, работает над KPHP

Расскажи самую памятную историю про тесты.
Поменял пару строк в коде, сфейлились тесты на несколько десятков тысяч кода в тестах (тестовые данные были завязаны на всяких внутренностях). У меня руки устали всё править даже в полуавтоматическом режиме.
Как относишься к трейтам?
Древнее зло… оно непобедимо.
Как у тебя в проекте с DevOps?
Dev что?
Что думаешь о KPHP?
Лучший язык программирования.
Что думаешь о переписывании сервисов с PHP на Go?
Это отличная идея! Потом ещё можно на KPHP переписать.
Адель Файзрахманов, разработчик Laravel Idea и автор книги “Архитектура сложных веб-приложений”

Расскажи самую памятную историю про тесты.
Делал огромный рефакторинг. Перелопатил под сотню файлов и тысячи строк. Очень сильно упростил внутреннюю структуру авто-дополнений Laravel Idea. Всё стало проще, красивее, быстрее. Появилась возможность реализовывать кастомные авто-дополнения. В общем, одни плюсы. Но я запустил после всего этого тесты, один из них упал. Я быстро нашёл мелкий баг (там банально не ту переменную заюзал).
Если бы этого теста не было — оно ушло бы в релиз и его заметили бы пользователи. То, что работало раньше и перестало после рефакторинга, называется регрессионным багом. Основная польза тестов именно в этом! Они позволяют находить баги регрессии на очень ранней стадии, позволяя смело делать даже крупные рефакторинги. Если вам понравилась эта история, подписывайтесь на мой канал, история взята оттуда 😉
Как относишься к трейтам?
Трейты — отличная вещь, чтобы попытаться заткнуть пробелы в архитектуре. Но это всегда будут страшно некрасивые заплатки. Подробнее — в моём докладе на митапе.
Как у тебя в проекте с DevOps?
Мой текущий проект это плагин для PhpStorm, поэтому весь DevOps — это собрать его, обфусцировать и залить в репозиторий JetBrains. Трудностей добавляет то, что надо это делать для 5 разных версий шторма. Со всем этим справляется мой доморощенный CI. Осталось только научить его заливать в репозиторий, но это несложно.
Что думаешь о KPHP?
Отличная вещь, особенно когда проект обслуживают много серверов и любой рост производительности даёт большую экономию. Плюс какая-то своя асинхронность… Но куча ограничений… надо посмотреть и пощупать, чтобы что-то дельное говорить.
Что думаешь о переписывании сервисов с PHP на Go?
Если это экономически оправдано, а не развлечения ради, то почему нет? Обычно это оправдано для каких-нибудь числодробилок или чисто инфраструктурных вещей. Сам я в подобных развлечениях не участвовал.
Егор Пересада, техлид в команде платформы FindMyKids

Расскажи самую памятную историю про тесты.
Однажды спросил у парня на собеседовании, пишет ли он тесты. Он ответил нет — и мы его не взяли. А потом вспомнили, что и сами не пишем…
Как относишься к трейтам?
Трейты — это хороший инструмент, но как часто бывает с хорошими инструментами, ими мало кто умеет пользоваться. Лично мне кажется, что трейтами должны пользоваться авторы фреймворков, а не рядовые программисты.
Как у тебя в проекте с DevOps?
Большая часть автоматизирована, как минимум есть build-test-deploy, но не хватает более приватной работы с конфигами для приложений. Сейчас у нас все на bare-metal, но постепенно мы переезжает в Kubernetes.
Что думаешь о KPHP?
Кажется, что если бы ВКонтакте не занимался кодогенерацией из PHP в Си, то PHP бы развивался значительно быстрее и уровень специалистов был бы выше. Но если отбросить сантименты, то технология интересная и в рамках бизнеса — безусловно интересное решение.
Что думаешь о переписывании сервисов с PHP на Go?
Положительно, если это обусловлено объективными причинами.
P.S. Присоединяйся к митапу 15 мая в онлайн или офлайн режиме. Мы начнем в 11 по Москве.
P.P.S. Запись митапа будет доступна здесь.
ссылка на оригинал статьи https://habr.com/ru/company/skyeng/blog/554706/
Добавить комментарий