Ищу любителей статанализа для воркшопа на Podlodkа PHP Crew
28-ого февраля в 19:00 на второй Подлодке PHP я проведу воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики". Для выступления мне потребуются два добровольца, которые под моим руководством выполнят несколько познавательных заданийи на следующий день смогут перейти на Kotlin или Haskell.
Короче, пыхарь, если ты практикуешь статанализ, готов пообщаться в онлайне и не занят через две недели во вторник вечером, пиши мне в личку @vudaltsov. Чтобы проверить свои знания, реши задачку https://psalm.dev/r/e7e74a61cf.
Ах, да, те, кого я отберу, получат бесплатные билеты на Podlodkа PHP Crew!
————————————
PHP-линч #8 будет в четверг в 18:00.
28-ого февраля в 19:00 на второй Подлодке PHP я проведу воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики". Для выступления мне потребуются два добровольца, которые под моим руководством выполнят несколько познавательных заданий
Короче, пыхарь, если ты практикуешь статанализ, готов пообщаться в онлайне и не занят через две недели во вторник вечером, пиши мне в личку @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.
Правильное решение задачи: https://psalm.dev/r/064023dcb7.
И всех ещё раз приглашаю на Podlodkа PHP Crew, в частности на мой воркшоп "Упарываемся по статанализу: условные типы и вложенные дженерики" 28-ого в 19:00.
podlodka.io
Онлайн-конференция Podlodka PHP Crew, сезон #8
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным вопросам PHP-индустрии, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
👍21
Не игнорьте .idea в репозитории
(Реинкарнация старого доброго поста)
Я считаю, что на проекте не должно быть строгой фиксации на IDE. Каждый может кодить в чём хочет. Главное, чтобы в итоге код был причёсан в согласованном командой стиле. И для этого нужны не git-хуки и не расшаренные конфиги IDE, а CI с проверкой на Code Style. Тогда можно хоть с телефона в браузере левой ногой правки вносить — вмерджить неправильный код в мастер всё равно не получится.
А теперь мысленно доведём ситуацию до абсурда, чтобы выявить проблему. Представим, что каждый из 100 разработчиков проекта решил использовать свою кастомную IDE с уникальными временными файлами и предложил по одному PR в каждый из 100 микросервисов на изменение .gitignore. Поздравляю, у нас 10_000 PR!😮
Вывод: код должен быть IDE-агностик, то есть не зависеть от среды разработки!
И это элементарно достигается настройкой глобального
Добавьте всего лишь две команды в ваш чек-лист для онбоардинга:
—————————
PHP-линч #9 сегодня в 19:00.
(Реинкарнация старого доброго поста)
Я считаю, что на проекте не должно быть строгой фиксации на 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💩21✍4
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.
Все три ролика будут обязательно озвучены и выложены на канале после подведения итогов. С нетерпением ждём ваших идей!
До 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👍4❤1
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.dev. Решение задачи разберём завтра на PHP-линче в 21:00 (проведём после Подлодки).
Как вы уже знаете, ранее я отобрал двух участников воркшопа по статанализу на 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
Пыхари, сегодня мы наконец-то увидим, как я на чём-то ставлю тег, пусть и
Встречаемся через час на уютном PHP Point!
https://youtu.be/5c0WdgAnH_k
Пыхари, сегодня мы наконец-то увидим, как я на чём-то ставлю тег, пусть и
0.1.0!Встречаемся через час на уютном PHP Point!
https://youtu.be/5c0WdgAnH_k
YouTube
PHP Extended Type System v0.1.0
Подписывайтесь на наши каналы в Telegram:
• Пых https://news.1rj.ru/str/phpyh,
• PHP Digest https://news.1rj.ru/str/phpdigest,
• PHP умирает?! https://news.1rj.ru/str/isPHPdying.
Поддержите канал на Boosty: https://boosty.to/phpyh.
• Пых https://news.1rj.ru/str/phpyh,
• PHP Digest https://news.1rj.ru/str/phpdigest,
• PHP умирает?! https://news.1rj.ru/str/isPHPdying.
Поддержите канал на Boosty: https://boosty.to/phpyh.
🔥32👍12🤩2
Пых
PHP Extended Type System v0.1.0 Пыхари, сегодня мы наконец-то увидим, как я на чём-то ставлю тег, пусть и 0.1.0! Встречаемся через час на уютном PHP Point! https://youtu.be/5c0WdgAnH_k
PHP Extended Type System 0.1.0 🚀
https://github.com/php-extended-type-system/type/releases/tag/0.1.0
https://github.com/php-extended-type-system/type-stringifier/releases/tag/0.1.0
https://github.com/php-extended-type-system/type-reflection/releases/tag/0.1.0
УРА!!! Всем спасибо!
https://github.com/php-extended-type-system/type/releases/tag/0.1.0
https://github.com/php-extended-type-system/type-stringifier/releases/tag/0.1.0
https://github.com/php-extended-type-system/type-reflection/releases/tag/0.1.0
УРА!!! Всем спасибо!
GitHub
Release 0.1.0 🚀 · typhoon-php/type
Released during live stream at PHP Point.
Спасибо Пыхарям за поддержку ❤️
Спасибо Пыхарям за поддержку ❤️
🔥29🍾9🎉5👍1
Варианты нейминга конструктора типов для php-extended-type-system/type. Отличается только имя конструктора, всё остальное одинаковое.
💩54🔥6👍4
👨🔬 Новая лекция от Пыха. LRU мемоизация
Что такое мемоизация, как её абстрагировать и отрефакторить по TDD на LRU-алгоритм. 40 минут.
https://boosty.to/phpyh/posts/c4ba0a19-cfa2-41ec-903b-ede36fd5d28a
Что такое мемоизация, как её абстрагировать и отрефакторить по TDD на LRU-алгоритм. 40 минут.
https://boosty.to/phpyh/posts/c4ba0a19-cfa2-41ec-903b-ede36fd5d28a
🔥21👍8🤯2
Эффективность кэширования
Недавно на консультации разработчик показывал HTTP-кэширование главной страницы. Мне сразу бросилось в глаза, что для проверки If-Modified-Since в базу делается целая пачка далеко не лёгких запросов с join-ами, которые выясняют, как давно изменялись сущности, участвующие в рендеринге. Я предложил проверить, действительно ли это быстрее, чем просто отдать страницу.
Пару лет назад в докладе Павла Паршикова я познакомился с формулой целесобразности кэширования:
Получается, что кэширование имеет смысл тогда, когда взаимодействие с ним обходится дёшево, а вероятность хита близка к 1.
Как правило, наибольшее внимание уделяют
Недавно на консультации разработчик показывал 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🤔8❤3
Initial Pelican — Initial
Субботний оффтоп, важный для меня и, надеюсь, приятный для вас.
Мы с группой Initial Pelican (я в ней играю на барабанах) наконец-то выпустили свой первый альбом «Initial». Его можно послушать на всех стриминговых площадках, кроме Apple Music (если кто-то там работает, попинайте коллег, плиз 😆). Также мы дропнули на YouTube уже второй ролик со студии. Переходите по ссылке, надевайте наушники и смакуйте! Буду ждать ваши впечатления в комментариях.
🎧 Spotify
🎧 Яндекс.Музыка
🎧 YouTube
🎧 VK Музыка
🎧 Мультиссылка на все сервисы
👍 Telegram
Субботний оффтоп, важный для меня и, надеюсь, приятный для вас.
Мы с группой Initial Pelican (я в ней играю на барабанах) наконец-то выпустили свой первый альбом «Initial». Его можно послушать на всех стриминговых площадках, кроме Apple Music (если кто-то там работает, попинайте коллег, плиз 😆). Также мы дропнули на YouTube уже второй ролик со студии. Переходите по ссылке, надевайте наушники и смакуйте! Буду ждать ваши впечатления в комментариях.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Initial Pelican — Hearth (Studio Video)
Initial Pelican — Initial. Released February 25th, 2023
Order album: https://rumedia.io/l/6LUsK/
Guitars & Vocals: Sergey Ivanov
Bass: Ivan Loktaev
Drums: Valentin Udaltsov
Mixing & Mastering: Denis Ivanov
Order album: https://rumedia.io/l/6LUsK/
Guitars & Vocals: Sergey Ivanov
Bass: Ivan Loktaev
Drums: Valentin Udaltsov
Mixing & Mastering: Denis Ivanov
👍39🍾21❤6👎6🔥5