Пых – 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
Пых pinned «Как стать программистом Мне часто в последнее время задают этот вопрос. Вот мой алгоритм: 1. Задай простой вопрос: "Зачем мне это?" Это основополагающий пункт. Приветствуются ответы вида "очень интересно", "хочу автоматизировать", "хочу написать игру", "хочу…»
Пыхап #2. Приём заявок на доклады

Друзья, программный комитет начал готовить второй Пыхап! Мы ориентируемся на конец января, но точная дата будет зависеть от результатов поиска новой площадки.

Теперь к программе. У нас есть два свободных слота: новичковый и хардкорный, оба офлайн. Новичковый мы добавили для тех, кто ещё не выступал, но очень хочет начать. Можно взять средней сложности тему (фреймворки/паттерны/SOLID/CQRS/любой другой баззворд) и качественно её проработать вместе с программным комитетом Пыхапа.

А вот ориентировочный список тем для профи:
▸ статический анализ и типизация (написание плагинов/продвинутое использование),
▸ асинхронный PHP (внутрянка/опыт применения),
▸ CI/CD пайплайны для PHP,
▸ немейнстримные БД в проектах на PHP (CockroachDB, Cassandra, YDB, YTsaurus, Clickhouse),
▸ messaging (Kafka, RabbitMQ, NATS, паттерны интеграции),
▸ решение задач с использованием FFI,
▸ нетипичное программирование на PHP (функциональное, кодогенерация),
▸ альтернативные рантаймы (RoadRunner, FrankenPHP, ngx-php),
▸ телеметрия и мониторинг (OpenTelemetry),
▸ организация кода (Vertical Slice Architecture, coupling/cohesion),
▸ любая другая интересная тема, прямо или косвенно связанная с PHP, напишите в комментариях, о чём вы хотели бы рассказать или послушать.

Форма для подачи заявки: https://forms.gle/BtMk4cengNkjeMVh6
🔥32👍1410
Пых
PHP-линч #27.1. Как бы я спроектировал Yii3 Data Залетайте на любую площадку: YouTube, Telegram, VK Видео. Репозиторий: https://github.com/phpyh/yii3-data. Комментировать можно прямо под этим постом! Стрим завершён, всем спасибо за вопросы и донаты. Записи…
PHP-линч #27.2. Финализирую своё видение Yii3 Data

Судя по комментариям, вам очень зашёл предыдущий стрим про Yii3 Data, поэтому не буду тянуть с продолжением! В этот раз исправим ошибки, упростим код, добавим фильтры-спецификации и пагинаторы.

Начало завтра в 19 в Telegram, YouTube и VK Видео.
🔥25👍141
Live stream scheduled for
Пагинация

Перед стримом решил освежить свои познания пагинации, вдруг что-то новое придумали. Но нет, по-прежнему есть два варианта: offset и keyset (иногда её ещё называют "курсорная"). Offset пагинация в немилости, потому что неэффективна на дальних страницах: при обработке запроса вида limit :page_size offset :offset база вынуждена извлечь все offset + limit строк. Keyset пагинация решает эту проблему, используя формулу where id > :previous_id limit :page_size, но зато не позволяет прыгать по страницам. Ещё она не страдает от неожиданных смещений при добавлении или удалении строк в таблице.

Когда на Stack Overflow кто-то спрашивает: "А как же мне построить классическую пагинацию с циферками, используя keyset метод?", ему обычно отвечают: "А зачем? Ты можешь себе представить пользователя, который прыгает на сотую страницу? Сделай бесконечный скролл..."

И тут я подумал: если пользователь редко ходит дальше условной третьей страницы, то и offset навигация будет неплохо справляться! На четвёртой странице можно ничего не выводить, а просить уточнить выборку с помощью фильтров и сортировки. Кстати, Google так и делает. В поисковике самая обыкновенная offset навигация: https://google.com/search?q=pagination&num=20&start=100, при этом из 129 млн. результатов он показывает чуть больше 200 (у меня вывел 24 страницы по 10). А вот Gmail не может себе позволить не показывать все письма, поэтому в нём реализована keyset навигация, только не с бесконечно прокруткой, а с кнопками ◀️▶️.

Ориентируясь на эти два примера, выбирайте, какой подход лучше подойдёт вам в каждом конкретном случае, а мы сегодня в 19 красиво зарешаем оба варианта!
👍90🔥315
Пых
PHP-линч #27.2. Финализирую своё видение Yii3 Data Судя по комментариям, вам очень зашёл предыдущий стрим про Yii3 Data, поэтому не буду тянуть с продолжением! В этот раз исправим ошибки, упростим код, добавим фильтры-спецификации и пагинаторы. Начало завтра…
PHP-линч #27.2. Финализирую своё видение Yii3 Data

Залетайте на любую площадку: YouTube, Telegram и VK Видео.
Репозиторий: https://github.com/phpyh/yii3-data.

Комментировать можно прямо под этим постом!

Стрим отлично прошёл, всем спасибо за участие и комментарии. Записи доступны в YouTube и VK Видео. Буду признателен за донаты, только сейчас сервис снова заработал.
👍9🔥41
Финал викторины по PHP в стиле "Своя Игра": Несмеянов vs Гагарин vs Бучнев

Друзья, я вчера не специально провёл стрим одновременно со "Своей Игрой" от CutCode. Ребята объявили о ней заранее, так что я приношу свои извинения, постараюсь внимательнее следить за анонсами нашего сообщества. Вы тоже не стесняйтесь писать в комментариях, если я с кем-то пересекаюсь.

Благо, всё есть в записи, приглашаю вас посмотреть игру на YouTube и в Telegram.

💙
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍23🤮74😁3🔥1
Итоги 2024 года канала Пых в цифрах

Спасибо вам, всех люблю! 💙️️️️️️
Please open Telegram to view this post
VIEW IN TELEGRAM
100🔥9325🎉15👍8❤‍🔥1
PHP Point теперь Пых!

Когда мы с Ромой Пронским запускали канал на YouTube в июле 2020, мы планировали, что контент для него будут делать сразу несколько людей, и поэтому назвали его "PHP Point" — точка встречи лидеров мнения PHP сообщества. Я нарисовал логотип, Рома заказал у подруги дизайн обложек. Мы начали с публичного собеседования (кстати, это до сих пор самый популярный ролик на канале), затем вместе с Алексеем и Алисами из SkyEng организовали кучу крутых стримов: про рефакторинг валидатора, про трейты, про PHP 8. Параллельно Рома выпускал PHP Digest Live.

Потом был большой перерыв, и с 2022 я продолжил делать ролики один. В итоге смысл названия "PHP Point" утратился, и сегодня я переименовал канал в "Пых", чтобы в новом году развивать весь свой контент под одним брендом. Спасибо Роме, что дал мне на это добро!

https://youtube.com/@phpyh
👍74🔥2817👎1😱1
Друг привёз подарок из Нидерландов и вручил перед началом спектакля. Адель, привет тебе!
🔥75👍1514😁2🥴1
Дорогие пыхари, с Новым Годом!

От планов на 2025 у меня захватывает дух. Нас ждёт куча нового: стримы и посты, проекты и библиотеки, митапы и доклады, мерч от Пыха и PHP 8.5!

Кстати, наша первая очная встреча в новом году не за горами. Программный комитет уже собрал мощную тройку спикеров, и я рад объявить, что второй Пыхап пройдёт 8 февраля! Ну а в онлайне мы пересечёмся, конечно, значительно раньше.

Всех обнимаю и поздравляю от всей души! 💙️️️️️️
Please open Telegram to view this post
VIEW IN TELEGRAM
51🔥119🎄48🎉407🍾7👍3💯2
👨‍🏫 Хардкорный курс PHP, 5-й поток!

Обновил страничку курса hardcorephp.ru. Основные изменения:
▸ цена лекции выросла с 3000 до 3500 рублей,
▸ зафиксировано количество лекций: 24,
▸ я теперь ИП, и со мной можно заключить договор в электронной форме.

Набор на пятый поток будет проходить традиционным образом. Завтра (во вторник, 14 января) в 15:00 по Москве на канале Пых появится ссылка на срез знаний. Необходимо его пройти, чтобы попасть на курс. При проверке я сначала отберу анкеты с правильными ответами, а затем отранжирую их по времени. Удачи!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28🔥14🤩10
Пых
👨‍🏫 Срез знаний для 5-го потока Хардкорного курса PHP! https://forms.gle/G7q2S18pcAddNSZQA Удачи! 😉️️️️️️
👨‍🏫 Набор на 5-й поток Хардкорного курса завершён!

Все студенты получили письма с приглашениями на почту.

Немного статистики и наблюдений:
98 ответов на момент написания этого поста — на 10 меньше, чем в прошлый раз.
▸ 20 человек набралось на 35-й анкете (в тот раз на 64-й), она была отправлена через 36 минут после старта.
▸ В комментариях ребята писали, что срез в этот раз получился проще. По раскраске ответов так не скажешь — "зелёных" довольно мало. Думаю, дело в том, что эти вопросы требуют меньше специальных знаний, но больше глубокого понимания привычных вещей. Благодаря этому их было сложнее загуглить.

Сегодня (17 января) в 19:00 приглашаю всех на традиционный разбор среза в прямом эфире!

https://youtu.be/lVxeycIjT3E
https://vkvideo.ru/video-228746873_456239021

P.S.: Форму не буду закрывать в демонстрационных целях. Заполняйте сколько хотите и используйте на собесах или для подготовки к ним.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥35👍86
👀 Бессмысленная истина

Недавно в Пыхтелке кто-то возмутился, что для пустой коллекции Illuminate\Support\Collection::every() возвращает true. Я сходу ответил:

Так и должно быть. В PHP 8.4 аналогично для пустого массива array_all вернёт true, array_any — false.


Согласитесь, ответ неубедительный. Давайте формально докажем, что функция array_all должна возвращать true для пустого массива. В качестве примера возьмём фильтр положительных чисел:


/** @var list<int> */
$ints = [];
$isPositive = static fn (int $x): bool => $x > 0;

assert(array_all($ints, $isPositive));


Чтобы не рассуждать по-дилетантски, попробуем вспомнить классическую логику. Там есть такая операция — импликация (логическое следование). Она описывает связь посылка ⇒ следствие. Таблица истинности:


Пример | a | b | a ⇒ b
-----------------------------------------------------
Верно, что если Солнце куб, то 3 <= 0 | 0 | 0 | 1
Верно, что если Солнце куб, то 3 > 0 | 0 | 1 | 1
Ложно, что если Солнце шар, то 3 <= 0 | 1 | 0 | 0
Верно, что если Солнце шар, то 3 > 0 | 1 | 1 | 1


Выглядит наивно, потому что это так называемая материальная импликация. В ней посылка и следствие не связаны по смыслу, что приводит к парадоксам. Но для нашей задачи она подойдёт.

Что говорит нам эта таблица?
1. из истины (Солнце — шар) следует только истина (3 > 0),
2. из лжи (Солнце — куб) следует всё что угодно (3 > 0, 3 <= 0).

Кстати, второе свойство мы иногда используем в быту: "Когда рак на горе свистнет, тогда можно будет купить запись Хардкорного курса PHP".

Теперь к массиву. Что такое any в PHP и every в Laravel? Это квантор всеобщности ∀, то есть условие, которое выполняется для всех элементов. Выражение array_all($ints, $isPositive) === true на языке формальной логики можно записать так:


∀ $x ∈ int : $x in $ints ⇒ $x > 0
для любого целого числа $x такого, что $x принадлежит массиву $ints, верно, что $x — положительное


Так как массив $ints пустой, то утверждение "$x принадлежит массиву $ints" ложно. Сделаем замену:


∀ $x ∈ int : false ⇒ $x > 0
для любого целого числа $x такого, что ложь, верно, что $x — положительное


А теперь применим то, что мы осознали выше: из лжи следует всё что угодно. Значит, вне зависимости от того, положительное число $x или нет, вся импликация истинна:


∀ $x ∈ int : true
для любого целого числа $x верно


Получается, что array_all($ints, $isPositive) === true всегда выполняется для пустого массива $ints.

Такая истинность называется бессмысленной (vacuous truth), так как она основана на невыполнимой посылке. По аналогии, можно будет с уверенностью сказать, что все присутствующие на Пыхапе хаскелисты боготворят PHP. 🤫
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥54👍25😐10💩6🥱6💯52👎2🤔2
Пыхап #2 / 8 февраля 2025

Друзья, через 2.5 недели пройдёт второй Пыхап! В программе у нас 3 доклада и новая секция:

🤔 Шардирование в RabbitMQ
Антон Растрыгин расскажет, как разбирать очередь параллельно, но последовательно.

🤝 Гибкий проект с фича-флагами Unleash
Рустэм Ахметзянов объяснит, почему «друзья не позволяют друзьям делать самописную систему фича-флагов».

🤹 Реализация нейронной сети на PHP
Алексей Нечаев покажет, как создать нейронку, не написав ни строчки кода на Python!

🎤 Открытый микрофон (только офлайн)
В конце митапа любой участник сможет на 5-10 минут завладеть флипчартом и поделиться насущной проблемой, элегантным решением или историей про то, как уронил прод накануне в пятницу.

Пыхап пройдёт там же — в уютном лофте «Событие» на Таганке. В этот раз решили попробовать субботу, поэтому собираемся пораньше, в 16:30. Регистрация откроется на канале Пых в следующий понедельник в 15:00, не пропустите. Входной билет — 500₽. Ну и конечно же митап будет транслироваться на YouTube и VK Видео с записью. Если позволит интернет площадки, то в 1440p!

Спонсор второго Пыхапа — PremiumBonus. PremiumBonus — эволюция управления клиентским опытом. Весь спектр цифровых маркетинговых инструментов для выстраивания эффективной коммуникации с клиентами. Уникальные продукты на основе самых актуальных современных трендов, таких как предиктивная аналитика и автоматизация маркетинговых акций с помощью ИИ.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥59👍216🤩2
Пых
Пыхап #2 / 8 февраля 2025 Друзья, через 2.5 недели пройдёт второй Пыхап! В программе у нас 3 доклада и новая секция: 🤔 Шардирование в RabbitMQ Антон Растрыгин расскажет, как разбирать очередь параллельно, но последовательно. 🤝 Гибкий проект с фича-флагами…
Регистрация на Пыхап #2 открыта!

Меньше, чем через 2 недели, пройдёт второй Пыхап. В программе 3 доклада, открытый микрофон (только офлайн), пицца и афтерпати.

🗓 8 февраля в 16:30 (суббота)

📍 Событие Лофт на Таганке

💸 500р. за офлайн-билет, участие онлайн бесплатное

https://phpyh.timepad.ru/event/3177943/#register

Спонсор митапа — PremiumBonus.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30🎉84🤝1
Кодим с джуном на PHP #1 / Евгений Alignant

Новый формат на канале Пых! Я приглашаю джуна, даю ему материалы для подготовки, а затем мы встречаемся на стриме, чтобы на базе этих материалов разобрать интересную задачу (джун о ней ничего не знает). В этом выпуске доблестно согласился поучаствовать небезызвестный в Пыхтелке Женя @Alignant. Присоединяйтесь к нам в эту пятницу, чтобы вместе опробовать новый формат!

https://youtu.be/jukC0Vl-K0I
https://vkvideo.ru/video-228746873_456239023
🔥110👍21😱5😁2👌2