Пых – 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
Ищу любителей статанализа для воркшопа на 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
Forwarded from PHP умирает?!
Конкурс от канала PHP умирает?!

До 1-ого марта скинь в личку @vudaltsov идею для озвучки сцены из фильма или сериала.

Условия:
• сцена должна быть короткой (не дольше 30 секунд),
• предлагаемый вариант озвучки должен быть связан с PHP,
• преимущество получат самые смешные варианты, которые не выставляют PHP в плохом свете (по крайней мере, явно).

Примеры:
https://news.1rj.ru/str/isPHPdying/19,
https://news.1rj.ru/str/isPHPdying/26,
https://news.1rj.ru/str/isPHPdying/124,
https://news.1rj.ru/str/isPHPdying/125.

Что присылать:
• фрагмент фильма или сериала или ссылку на него с тайм-кодом,
• текст альтернативной озвучки,
• можно несколько вариантов.

Призы:
🥇 месяц подписки object на Пых Boosted,
🥈 месяц подписки array на Пых Boosted,
🥉 месяц подписки array на Пых Boosted.

Все три ролика будут обязательно озвучены и выложены на канале после подведения итогов. С нетерпением ждём ваших идей!
🔥6👍41
function phpyh(array &$value): void
{
$value = 1;
}

$value = [];
phpyh($value);

var_dump($value);
👍9
🎲 Разыгрываю билет на Podlodka PHP Crew!

Как вы уже знаете, ранее я отобрал двух участников воркшопа по статанализу на Podlodka PHP Crew, и сегодня вечером в 19:00 мы с Алесем и Андреем обмажемся типами по-полной, уж поверьте мне. Но внезапно я вспомнил, что у меня есть дополнительная проходка на конфу, и решил её разыграть!

Билет на Подлодку получит тот, кто первым правильно решит задачку: https://psalm.dev/r/ed78fa67f7. Там нужно поправить все ошибки одним изменением, не прибегая к @psalm-suppress.

Исправленный сниппет присылайте в личку так же ссылкой на psalm.dev. Решение задачи разберём завтра на PHP-линче в 21:00 (проведём после Подлодки).
👍12🔥6🤮3
PHP Extended Type System v0.1.0

Пыхари, сегодня мы наконец-то увидим, как я на чём-то ставлю тег, пусть и 0.1.0!

Встречаемся через час на уютном PHP Point!

https://youtu.be/5c0WdgAnH_k
🔥32👍12🤩2
Варианты нейминга конструктора типов для php-extended-type-system/type. Отличается только имя конструктора, всё остальное одинаковое.
💩54🔥6👍4
Предпраздничная головоломка!

Разберём потом на стриме.
💩48👍7🤔7
👨‍🔬 Новая лекция от Пыха. LRU мемоизация

Что такое мемоизация, как её абстрагировать и отрефакторить по TDD на LRU-алгоритм. 40 минут.

https://boosty.to/phpyh/posts/c4ba0a19-cfa2-41ec-903b-ede36fd5d28a
🔥21👍8🤯2
Эффективность кэширования

Недавно на консультации разработчик показывал HTTP-кэширование главной страницы. Мне сразу бросилось в глаза, что для проверки If-Modified-Since в базу делается целая пачка далеко не лёгких запросов с join-ами, которые выясняют, как давно изменялись сущности, участвующие в рендеринге. Я предложил проверить, действительно ли это быстрее, чем просто отдать страницу.

Пару лет назад в докладе Павла Паршикова я познакомился с формулой целесобразности кэширования:

rp + (r + c + w)(1 - p) < c

c — стоимость выполнения кэшируемой операции,
0 < p < 1 — вероятность попадания в кэш (hit),
r — стоимость чтения и валидации кэша,
w — стоимость записи в кэш.

После упрощения:

r + w(1 - p)
———————————— < c
p

Получается, что кэширование имеет смысл тогда, когда взаимодействие с ним обходится дёшево, а вероятность хита близка к 1.

Как правило, наибольшее внимание уделяют p, подразумевая, что сам кэш достаточно быстрый. Но r не стоит недооценивать. В описанной в начале поста ситуации именно стоимость валидации оказалась слишком высокой, из-за чего кэширование потеряло смысл.
👍73🔥17🤔83
Initial Pelican — Initial

Субботний оффтоп, важный для меня и, надеюсь, приятный для вас.

Мы с группой Initial Pelican (я в ней играю на барабанах) наконец-то выпустили свой первый альбом «Initial». Его можно послушать на всех стриминговых площадках, кроме Apple Music (если кто-то там работает, попинайте коллег, плиз 😆). Также мы дропнули на YouTube уже второй ролик со студии. Переходите по ссылке, надевайте наушники и смакуйте! Буду ждать ваши впечатления в комментариях.

🎧 Spotify
🎧 Яндекс.Музыка
🎧 YouTube
🎧 VK Музыка
🎧 Мультиссылка на все сервисы
👍 Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39🍾216👎6🔥5