Как писать тесты, трейты vs ООП, разговоры про DevOps, KPHP и Go — превью большого PHP-митапа +24


AliExpress RU&CIS

Привет! 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. Запись митапа будет доступна здесь.




Комментарии (0):