Пых – Telegram
Пых
8.28K subscribers
260 photos
14 videos
6 files
566 links
Блог Валентина Удальцова о разработке на PHP.

Хобот @phpyhobot
https://youtube.com/@phpyh
https://vkvideo.ru/@phpyh
https://news.1rj.ru/str/isPHPdying

Статистика: https://news.1rj.ru/str/INOTAROBOT?start=st1219340804

Для связи используйте личные сообщения канала.
Download Telegram
Media is too big
VIEW IN TELEGRAM
С новым годом, дорогие пыхари! 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉178👍18🍾765🎄4🖕3❤‍🔥1👏1🤮1
Самописные инфраструктурные компоненты vs компоненты фреймворка. Когда усилия стоят того?

Мы с Петром Мязиным врываемся в 2023 c анонсом нового эпизода подкаста Пятиминутка PHP про самописные инфраструктурные компоненты. Завтра запишем, через неделю Пётр выложит!

А пока в комментариях напишите вопросы по этой теме и кейсы, которые вы бы хотели, чтобы мы разобрали.
🔥40👍20
Docker for PHP developer: tips and tricks

Очень крутой доклад про то, как правильно готовить Docker-образы. Будет полезен далеко не только пыхарям. Узнал уйму всего, что ещё буду переваривать и пробовать. В частности про то, как обойтись без wait-for-it, про --target, --link, hadolint и много чего ещё. Большое спасибо @alexndrnovikov за эту работу.

https://youtu.be/6ZwLi3vKbcw
👍74🔥27
Symphony

Больше всего меня бесит, когда в вакансии пишут Symphony. Нужна очень веская причина, чтобы я её не закрыл в ту же секунду. Запомните раз и навсегда: фреймворк называется Symfony, даже в логотипе у него буквы sf. Да, это не хрестоматийное написание слова "симфония" на английском, но в том-то и соль!

Уверен, на канале есть HR-ы. Пожалуйста, исправьте свою вакансию и скиньте её в комментарии, я проверю. 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👍46😁35🤣18💯11💩5👎3😱2😐2
Ищу в Happy Inc. тимлидов и senior разработчиков на Symfony 6!

Happy Inc. исследует вовлечённость, лояльность и удовлетворённость персонала. Мы проводим анонимные опросы, строим сложные отчёты и доставляем их руководителям и HR-ам компаний.

В этом году техотдел расширяется для запуска новых продуктов. Мы ищем опытных тимлидов и разработчиков для формирования дополнительных команд.

У нас модульный монолит без легаси. Стек: PHP 8.1, Symfony 6.2, PostgreSQL 14, RabbitMQ, CQRS, Messaging, Psalm, Rector и всё, о чём я рассказываю на канале Пых. 😜

Full-time, можно удалённо, но приоритетно в офис, ЗП по результатам собеседования. После испытательного срока ДМС и фитнес. Happy Inc. входит в реестр аккредитованных IT-компаний.

Скидывай резюме @vudaltsov!
👍27🤮13🔥6💩3
Forwarded from PHP умирает?!
Media is too big
VIEW IN TELEGRAM
😁75👍14🤡7👏1
🎙Новый митап от SkyNet в Санкт-Петербурге!

Ребята из отдела разработки питерского провайдера SkyNet очень расстроились, что на стриме к выходу PHP 8.2 никто не отчитался о ситуации в их городе, и решили организовать свой митап. Ну а я рад помочь с распространением информации о такой замечательной инициативе!

Итак, первый митап состоится вечером 16-го февраля в офисе SkyNet на Репишева, 20.

Предусмотрено два доклада:
• PHP-схема взаимодействия с frontend-ом с типами и валидацией (Дмитрий Юдин, SkyNet).
• Твоё выступление, пыхарь! Предлагай тему в личку Павлу @lukazavr.

https://skynet-meetups.timepad.ru/event/2315901/
👍15🔥8
🧑‍🎓 Первая лекция от Пыха: Что такое контракт и как его тестировать?

Активно собеседуя разработчиков на вакансию в Happy Inc., я заметил, что некоторые темы особенно сильно западают у большинства соискателей.

Мне хочется помочь, но консультацию каждому не проведёшь, а судьба курса по PHP пока неизвестна, поэтому я решил записать несколько платных обучающих видео для всех.

Итак, встречайте первую лекцию про контракты и контрактные тесты! 1000 рублей, 15 минут, 0% воды. С нетерпением жду ваших комментариев!

https://boosty.to/phpyh/posts/483bbfbe-0924-4e97-b833-da108935121e
19😢16👍9👎7💩6🔥3🤩1
Пых
🧑‍🎓 Первая лекция от Пыха: Что такое контракт и как его тестировать? Активно собеседуя разработчиков на вакансию в Happy Inc., я заметил, что некоторые темы особенно сильно западают у большинства соискателей. Мне хочется помочь, но консультацию каждому не…
Я прислушался к вашим комментариям и переосмыслил свой Boosty.

Вместо платных постов теперь 3 уровня подписки:
• scalar за 200 руб./мес. — поддержка бесплатного контента на каналах Пых, PHP Point и PHP Умирает?!,
• array за 1000 руб./мес. — доступ ко всем лекциям (планирую закидывать по 2-3 в месяц),
• object за 3500 руб./мес. — доступ к лекциям + часовая персональная консультация с возможностью записи.

Всем, кто вчера храбро оплатил первую лекцию, я выдам бесплатный доступ к array на первый месяц. Пожалуйста, свяжитесь со мной, чтобы я скинул ссылку на "подарок".

Остальных приглашаю на обновлённую страницу: https://boosty.to/phpyh!
👍45💩229🔥9
Размещение кэшей dev-инструментов в самом проекте — хорошо или плохо?

В последнее время мне нравится собирать все артефакты запуска dev-инструментов в загитигноренную папку var в корне проекта. При таком подходе "мусор" не растекается по всей файловой системе и появляется возможность "вынести" его одной командой rm -rf ./var/ (можно оформить как скрипт Composer или Makefile, чтобы не ошибиться). Кроме того, разгружается корень проекта от ненужных файлов.

Вот несколько идей со ссылками на конфиги:
кэш PHP CS Fixer (по умолчанию .php-cs-fixer.cache лежит в корне проекта),
кэш PHPUnit (по умолчанию .phpunit.result.cache лежит в корне проекта),
кэш Psalm (по умолчанию папка весом в несколько мегабайт лежит либо в $XDG_CACHE_HOME, либо в $HOME, либо в sys_get_temp_dir),
кэш PHPStan (аналогично, лежит в sys_get_temp_dir).

Однако в случае Psalm и PHPStan есть и минусы:
• теперь за кэш отвечаете вы сами, операционная система его не почистит,
• если делаете бэкапы, в них попадёт бесполезная информация.

Пишите в комментариях, что думаете по поводу такого подхода.
👍24🔥8🤨3
Пыхарь, тебе был бы интересен транспилируемый в PHP язык с функционалом Psalm/PHPStan и поддержкой IDE?
Anonymous Poll
49%
Да
51%
Нет
🤔45👍6👎4🤡2
👨‍🔬 Лекция от Пыха. Как переиспользовать то, для чего не предусмотрено переиспользование?

Пока готовил новую лекцию для Boosty, придумал ещё одну. Название снова загадочное, но ничего не могу с собой поделать...

https://boosty.to/phpyh/posts/fc068aa4-c4e9-4c97-bc6e-3b4e31259a68
👍23👎10🔥6😁2😱2😭1
🎧 Самописные инфраструктурные компоненты

На подкасте Пятиминутка PHP вышла наша третья (!) встреча с Петром Мязиным. Очень приятно вспомнить, что Пётр — первый человек, который вытащил меня в медийное пространство PHP в мохнатом 2019-ом году (Symfony Hackathon в Брюсселе глазами очевидца). 💙

В этом выпуске я, по сути, подвожу черту под инфраструктурной частью моей работы в Happy Inc. Рассказываю, как и на кой чёрт мы написали три крупных компонента: Thesis, Hydrator и Message Bus. А ещё в выпуске есть немного про Message Driven Architecture, паттерн Outbox и принятие странных решений.

Всем приятного вечера и прослушивания: https://5minphp.ru/episode99/.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍8
Пыхарь, важнейший вопрос во вселенной! Какой порядок ключевых слов при объявлении класса в PHP 8.2 ты считаешь наиболее логичным?
Anonymous Poll
81%
final readonly class
19%
readonly final class
🤣19👎4🔥3😁1
Пых
Пыхарь, важнейший вопрос во вселенной! Какой порядок ключевых слов при объявлении класса в PHP 8.2 ты считаешь наиболее логичным?
Оказывается, уточнение по этому вопросу дожидается своего релиза в мастере PER coding style. В соответствии с рекомендацией правильный вариант — первый.

Спасибо @samdark.
👍372
Ищу любителей статанализа для воркшопа на Podlodkа PHP Crew

28-ого февраля в 19:00 на второй Подлодке PHP я проведу воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики". Для выступления мне потребуются два добровольца, которые под моим руководством выполнят несколько познавательных заданий и на следующий день смогут перейти на Kotlin или Haskell.

Короче, пыхарь, если ты практикуешь статанализ, готов пообщаться в онлайне и не занят через две недели во вторник вечером, пиши мне в личку @vudaltsov. Чтобы проверить свои знания, реши задачку https://psalm.dev/r/e7e74a61cf.

Ах, да, те, кого я отберу, получат бесплатные билеты на Podlodkа PHP Crew!

————————————
PHP-линч #8 будет в четверг в 18:00.
14👍10🔥10
Пых
Ищу любителей статанализа для воркшопа на Podlodkа PHP Crew 28-ого февраля в 19:00 на второй Подлодке PHP я проведу воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики". Для выступления мне потребуются два добровольца, которые под моим…
Спасибо всем откликнувшимся, мне было очень приятно связаться с каждым! К сожалению, пришлось выбирать, так как по сценарию нужно 2 участника. Но что-то мне подсказывает, что это не последняя движуха такого рода. 😉

Правильное решение задачи: https://psalm.dev/r/064023dcb7.

И всех ещё раз приглашаю на Podlodkа PHP Crew, в частности на мой воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики" 28-ого в 19:00.
👍21
Не игнорьте .idea в репозитории
(Реинкарнация старого доброго поста)

Я считаю, что на проекте не должно быть строгой фиксации на IDE. Каждый может кодить в чём хочет. Главное, чтобы в итоге код был причёсан в согласованном командой стиле. И для этого нужны не git-хуки и не расшаренные конфиги IDE, а CI с проверкой на Code Style. Тогда можно хоть с телефона в браузере левой ногой правки вносить — вмерджить неправильный код в мастер всё равно не получится.

А теперь мысленно доведём ситуацию до абсурда, чтобы выявить проблему. Представим, что каждый из 100 разработчиков проекта решил использовать свою кастомную IDE с уникальными временными файлами и предложил по одному PR в каждый из 100 микросервисов на изменение .gitignore. Поздравляю, у нас 10_000 PR! 😮

Вывод: код должен быть IDE-агностик, то есть не зависеть от среды разработки!

И это элементарно достигается настройкой глобального .gitignore на машине разработчика. Каждый прописывает себе те исключения, которые необходимы для его ОС, IDE и прочих инструментов, а затем спокойно открывает абсолютно любой проект, не боясь закоммитить лишнее.

Добавьте всего лишь две команды в ваш чек-лист для онбоардинга:

git config --global core.excludesfile ~/.gitignore
echo '.idea/' >> ~/.gitignore

—————————
PHP-линч #9 сегодня в 19:00.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍80💩214