Всех люблю! ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
В Питере — Пых!*
15 февраля на Live PHP SPb будет мощный лайн-ап:
▸ Кирилл Несмеянов продемонстрируетАнастейше все оттенки асинхронности,
▸ Дмитрий Елисеев принесёт переносное окружение для разработки и тестов,
▸ ну а я расскажу про половой полиморфизм туркестанского термита.
Ждём всех завтра в 19:00 в баре Failover (к сожалению, только тех, кто ранее прошёл регистрацию) и в трансляции.
* Автор заголовка — Дима Елисеев, завтра мы попробуем его обыграть. 😉
15 февраля на Live PHP SPb будет мощный лайн-ап:
▸ Кирилл Несмеянов продемонстрирует
▸ Дмитрий Елисеев принесёт переносное окружение для разработки и тестов,
▸ ну а я расскажу про половой полиморфизм туркестанского термита.
Ждём всех завтра в 19:00 в баре Failover (к сожалению, только тех, кто ранее прошёл регистрацию) и в трансляции.
* Автор заголовка — Дима Елисеев, завтра мы попробуем его обыграть. 😉
Пых
В Питере — Пых!* 15 февраля на Live PHP SPb будет мощный лайн-ап: ▸ Кирилл Несмеянов продемонстрирует Анастейше все оттенки асинхронности, ▸ Дмитрий Елисеев принесёт переносное окружение для разработки и тестов, ▸ ну а я расскажу про половой полиморфизм…
00:00 Все оттенки асинхронности (Кирилл)
55:01 Полиморфизм в современном PHP (Валентин)
2:00:29 Переносимое окружение для разработки и тестов (Дмитрий)
Мои слайды: https://vudaltsov.github.io/polymorphism/
Слайды ребят: https://t.me/live_php/6671
55:01 Полиморфизм в современном PHP (Валентин)
2:00:29 Переносимое окружение для разработки и тестов (Дмитрий)
Мои слайды: https://vudaltsov.github.io/polymorphism/
Слайды ребят: https://t.me/live_php/6671
Пых
Нужен алгоритмист для публичного собеседования! Канал, у нас тут в Пыхтелке назрела идея провести публичный литкод собес по алгоритмам на канале PHP Point. Собеседуемый — отважный Иван Лещёв из Авито. А вот интервьюер сходу не нашёлся. Отпишитесь в комментариях…
Через 2 часа встречаемся на канале PHP Point, чтобы посмотреть схватку двух бессменных админов Пыхтелки: Сергея и Ивана. Второй собес на канале спустя 3 года!
Готовьтесь похоливарить в комментариях про ценность алгоритмических задач при тестировании бэкенд-разработчиков.
https://youtu.be/ZPGjJDIZm4Y
https://gist.github.com/vudaltsov/ed246caaef9e8ef4c46a328075d38e72
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Публичное собеседование по алгоритмам • Сергей Милимко vs Иван Лещёв
Задачи и решения: https://gist.github.com/vudaltsov/ed246caaef9e8ef4c46a328075d38e72
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Тест на циклические ссылки
Как проверить, что объект не содержит циклических ссылок и автоматически высвобождается из памяти?
Оказывается, очень просто: через WeakReference. После зачистки переменной WeakReference будет пустым, если других ссылок на объект не останется. Первый тест на скриншоте из Typhoon Reflection. Он помог мне найти несколько проблем и улучшить архитектуру библиотеки.
Аналогичный тест для PHP Parser, например, не пройдёт. Парсер ссылается сам на себя через анонимные функции, записанные в приватное свойство, и не может быть автоматически утилизирован, см. мой тикет. Тривиально исправить там вроде не получится, нужно менять архитектуру, поэтому PR я пока не делал.
Имеет смысл задумываться о таких вещах, так как выключение GC ускоряет PHP, да и в целом циклические зависимости — антипаттерн.
Update: Никита пофиксил парсер.
Как проверить, что объект не содержит циклических ссылок и автоматически высвобождается из памяти?
Оказывается, очень просто: через WeakReference. После зачистки переменной WeakReference будет пустым, если других ссылок на объект не останется. Первый тест на скриншоте из Typhoon Reflection. Он помог мне найти несколько проблем и улучшить архитектуру библиотеки.
Аналогичный тест для PHP Parser, например, не пройдёт. Парсер ссылается сам на себя через анонимные функции, записанные в приватное свойство, и не может быть автоматически утилизирован, см. мой тикет. Тривиально исправить там вроде не получится, нужно менять архитектуру, поэтому PR я пока не делал.
Имеет смысл задумываться о таких вещах, так как выключение GC ускоряет PHP, да и в целом циклические зависимости — антипаттерн.
Update: Никита пофиксил парсер.
Пых
В прошлый раз решили не растягивать стрим и отложили третью, самую сложную задачу. Поэтому завтра в
12:00
мы снова соберёмся, чтобы завершить собеседование. Присоединяйтесь!https://youtu.be/Wa9hUi8NeTs
https://gist.github.com/vudaltsov/ed246caaef9e8ef4c46a328075d38e72
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Публичное собеседование по алгоритмам • Сергей Милимко vs Иван Лещёв • Часть 2
Первая часть: https://youtu.be/ZPGjJDIZm4Y
Задачи и решения: https://gist.github.com/vudaltsov/ed246caaef9e8ef4c46a328075d38e72
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! http…
Задачи и решения: https://gist.github.com/vudaltsov/ed246caaef9e8ef4c46a328075d38e72
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! http…
Задача для любителей трейтов
На этой неделе я добавил полную поддержку трейтов в Typhoon Reflection 0.3.x. Вдохновившись полученными знаниями, придумал вам задачку:
На этой неделе я добавил полную поддержку трейтов в Typhoon Reflection 0.3.x. Вдохновившись полученными знаниями, придумал вам задачку:
trait T
{
abstract public function x(): void;
}
final class C
{
use T {
x as x1;
x as x2;
}
use T {
x as x3;
}
// Сколько методов тут надо добавить?
}
Пых
Задача для любителей трейтов На этой неделе я добавил полную поддержку трейтов в Typhoon Reflection 0.3.x. Вдохновившись полученными знаниями, придумал вам задачку: trait T { abstract public function x(): void; } final class C { use T { …
Сколько методов нужно имплементировать в классе C, чтобы он стал корректным?
Anonymous Quiz
32%
1
26%
3
13%
4
30%
В классе C уже есть ошибка в use, методами его не спасти
Forwarded from Галера Морева
Прямой эфир с Валентином Удальцовым
Когда-то давно я делал стрим с Валентином, где мы общались про него, его опыт, немного про PHP и планы на будущее.
Будущее наступило — прошло почти 4 года и сегодня Валентин приедет ко мне в гости и мы проведем еще один прямой эфир и пообщаемся на разные темы.
Мне лично интересно обсудить как он решился на запуск своего образовательного проекта после стольких лет стабильной работы фуллтайм и как ему это нравится (или нет).
Правила для зрителей стандартные — задавайте вопросы и автору самого лучшего вопроса положена пицца за мой счет:)
Начнем в 19.00 сегодня!
Стрим будет тут: youtube.com/live/QPdhrhY0UGY
Когда-то давно я делал стрим с Валентином, где мы общались про него, его опыт, немного про PHP и планы на будущее.
Будущее наступило — прошло почти 4 года и сегодня Валентин приедет ко мне в гости и мы проведем еще один прямой эфир и пообщаемся на разные темы.
Мне лично интересно обсудить как он решился на запуск своего образовательного проекта после стольких лет стабильной работы фуллтайм и как ему это нравится (или нет).
Правила для зрителей стандартные — задавайте вопросы и автору самого лучшего вопроса положена пицца за мой счет:)
Начнем в 19.00 сегодня!
Стрим будет тут: youtube.com/live/QPdhrhY0UGY
Новая система типов • Трейты • Атрибуты • Совместимость с родной рефлексией • Монорепо
Жду всех на PHP Point сегодня в
19:00
. Про третий поток тоже расскажу.https://youtu.be/zW0wNb_2i2s
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Typhoon 0.3.0 • Новая система типов • Трейты • Атрибуты • Совместимость с родной рефлексией
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Поддержите канал на Boosty: https://boosty.to/phpyh.
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Поддержите канал на Boosty: https://boosty.to/phpyh.
Пых
Typhoon — бескомпромиссная статическая рефлексия для PHP с поддержкой phpDoc-типов и резолвингом дженериков.
https://github.com/typhoon-php/typhoon/releases/tag/0.3.0
https://youtu.be/zW0wNb_2i2s
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release 0.3.0 New type system, traits, attributes support · typhoon-php/typhoon
New type system.
Traits, attributes, class constants support.
Native reflection compatibility.
Traits, attributes, class constants support.
Native reflection compatibility.
Ну что ж, после релиза Typhoon с чувством выполненного долга возвращаюсь к
Набор на третий поток будет осуществляться так же, как в прошлый раз. Завтра (4 марта) в 15:00 по Москве на канале Пых появится ссылка на срез знаний. При проверке я сначала буду отбирать анкеты с правильными ответами, а потом ранжировать их по времени. Удачи!
https://vudaltsov.notion.site/PHP-d4be63d0b6b7486787861fdbab080d1c
Please open Telegram to view this post
VIEW IN TELEGRAM
Пых
Пробная лекция Хардкорного курса PHP
По вашим просьбам сделал демо-ролик на основе лекции второго потока. Из него вы узнаете две вещи: как устроен мой курс и как конфигурировать схему базы данных в Doctrine без использования ORM, не теряя при этом поддержку миграций.
https://youtu.be/B4e7d3oYEeQ
По вашим просьбам сделал демо-ролик на основе лекции второго потока. Из него вы узнаете две вещи: как устроен мой курс и как конфигурировать схему базы данных в Doctrine без использования ORM, не теряя при этом поддержку миграций.
https://youtu.be/B4e7d3oYEeQ
YouTube
Пробная лекция Хардкорного курса PHP. Конфигурируем Doctrine Schema без ORM (1080p)
Подробнее о курсе: https://hardcorephp.ru
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Пых
Срез знаний для 3-его потока Хардкорного курса PHP!
https://forms.gle/Tr2y4JNnj9qhHytm9
Удачи!😉️️️️️️
https://forms.gle/Tr2y4JNnj9qhHytm9
Удачи!
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Docs
Срез знаний для 3-его потока Хардкорного курса PHP
Привет! При проверке я сначала буду отбирать анкеты с правильными ответами и здравыми рассуждениями, а потом ранжировать их по времени. Если не знаешь ответ, лучше пропустить вопрос или написать хоть что-то, что помнишь, чем вставить ерунду из GPT. Удачи!
Пых
Срез знаний для 3-его потока Хардкорного курса PHP! https://forms.gle/Tr2y4JNnj9qhHytm9 Удачи! 😉️️️️️️
Набор на 3-ий поток Хардкорного курса завершён!
Все принятые студенты получили письма с приглашениями на почту.
Немного статистики и наблюдений:
▸ 123 ответа на момент написания этого поста,
▸ 20 человек набралось уже на 41-ой анкете, которую отправили 4 марта в 15:50:53.
▸ ответы в этот раз более вдумчивые, "зелёные" анкеты идут более плотно.
На скриншоте общая картина. Как видите, не обязательно было отвечать на все вопросы правильно, чтобы попасть на курс. Завтра в 15:00 разберём срез и интересные ответы, приглашаю всех на стрим: https://youtu.be/-BCacGtTUY4.
P.S.: Форму не буду закрывать в демонстрационных целях.
Все принятые студенты получили письма с приглашениями на почту.
Немного статистики и наблюдений:
▸ 123 ответа на момент написания этого поста,
▸ 20 человек набралось уже на 41-ой анкете, которую отправили 4 марта в 15:50:53.
▸ ответы в этот раз более вдумчивые, "зелёные" анкеты идут более плотно.
На скриншоте общая картина. Как видите, не обязательно было отвечать на все вопросы правильно, чтобы попасть на курс. Завтра в 15:00 разберём срез и интересные ответы, приглашаю всех на стрим: https://youtu.be/-BCacGtTUY4.
P.S.: Форму не буду закрывать в демонстрационных целях.
Пых
Набор на 3-ий поток Хардкорного курса завершён! Все принятые студенты получили письма с приглашениями на почту. Немного статистики и наблюдений: ▸ 123 ответа на момент написания этого поста, ▸ 20 человек набралось уже на 41-ой анкете, которую отправили 4…
Пишите в комментариях, насколько удобно смотреть стримы фоном в рабочее время. Это поможет мне понять, стоит проводить PHP-линчи днём.
https://youtu.be/-BCacGtTUY4
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Разбираем срез знаний для 3-его потока Хардкорного курса PHP
Подписывайтесь на наши каналы в Telegram:
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Поддержите канал на Boosty: https://boosty.to/phpyh.
• Пых https://t.me/phpyh,
• PHP Digest https://t.me/phpdigest,
• PHP умирает?! https://t.me/isPHPdying.
Поддержите канал на Boosty: https://boosty.to/phpyh.
Пых
Ilija Tovilio, на текущий момент один из самых активных контрибьюторов в PHP, только что дал мне карму для публикации RFC и пожелал удачи! Буду считать это хорошим знаком! 💪 https://externals.io/message/122052#122053
📝 new MyClass()->method() без скобок
В конце прошлого года я придумал правку для синтаксиса PHP, которая позволит не оборачивать
Только что я наконец-то опубликовал RFC через internals! В течение как минимум двух недель будет проходить обсуждение, потом открою голосование.
RFC: https://wiki.php.net/rfc/new_without_parentheses
Реализация и тесты: https://github.com/php/php-src/pull/13029
Можно следить за обсуждением на сайте, а можно подписаться на рассылку и принять в нём участие.
В конце прошлого года я придумал правку для синтаксиса PHP, которая позволит не оборачивать
new
выражения в cкобки для обращения к ним:
final class MyClass
{
const CONSTANT = 'constant';
public static $staticProperty = 'staticProperty';
public static function staticMethod(): string { return 'staticMethod'; }
public $property = 'property';
public function method(): string { return 'method'; }
public function __invoke(): string { return '__invoke'; }
}
var_dump(
new MyClass()::CONSTANT, // string(8) "constant"
new MyClass()::$staticProperty, // string(14) "staticProperty"
new MyClass()::staticMethod(), // string(12) "staticMethod"
new MyClass()->property, // string(8) "property"
new MyClass()->method(), // string(6) "method"
new MyClass()(), // string(8) "__invoke"
);
Только что я наконец-то опубликовал RFC через internals! В течение как минимум двух недель будет проходить обсуждение, потом открою голосование.
RFC: https://wiki.php.net/rfc/new_without_parentheses
Реализация и тесты: https://github.com/php/php-src/pull/13029
Можно следить за обсуждением на сайте, а можно подписаться на рассылку и принять в нём участие.
В эту пятницу в 15:20 по местному времени я выступаю в Ульяновске на Стачке с докладом про Typhoon (секция Backend). Расскажу, как мы собирали систему типов typhoon/type, вдохновляясь Psalm и PHPStan, как её редуцировали, как искали в ней место для self, parent и static.
Ульяновские пыхари, отзовитесь в комментариях! Можем дополнительно организоваться до или после конфы и где-то посидеть.
https://ul24.nastachku.ru/schedule
Please open Telegram to view this post
VIEW IN TELEGRAM
Пых
Я на месте. Кто тут и хочет поболтать, пишите.
Podlodka PHP Crew
На ближайшей неделе стартует очередная подлодка PHP, в этот раз про БД. Но уже сегодня пройдёт открытая сессия «Зачем переходить на MySQL 8, еслиесть PostgreSQL в 5.х всё устраивает?»
В среду 24 апреля в 19:00 мы встретимся с Кириллом Несмеяновым, чтобы найти ответ на другой вопрос: «Зачем использовать ORM, если есть чистый SQL?»
Ну а так каждый день будет что-то интересное: Redis, Elasticsearch, Doctrine, масштабирование и миграции.
Зашифрованный одноразовый бесплатный билет для пыхаря:
https://podlodka.io/phpcrew
Мем от @markin_igor из PHP Fart Time.
Реклама. ИП Толстая Елена Петровна ИНН:507503278104, erid:2SDnjbrpi81
На ближайшей неделе стартует очередная подлодка PHP, в этот раз про БД. Но уже сегодня пройдёт открытая сессия «Зачем переходить на MySQL 8, если
В среду 24 апреля в 19:00 мы встретимся с Кириллом Несмеяновым, чтобы найти ответ на другой вопрос: «Зачем использовать ORM, если есть чистый SQL?»
Ну а так каждый день будет что-то интересное: Redis, Elasticsearch, Doctrine, масштабирование и миграции.
Зашифрованный одноразовый бесплатный билет для пыхаря:
4655434b-2d4f-854d-ad55-53452d53514c
(уже использован) и многоразовый промокод на 500 рублей: PHPYH
.https://podlodka.io/phpcrew
Мем от @markin_igor из PHP Fart Time.
Реклама. ИП Толстая Елена Петровна ИНН:507503278104, erid:2SDnjbrpi81