Вопросы для интервью с Иоаннисом Лукерисом
Вчера был крутой доклад от грека Иоанниса Лукериса про APCu. Прикол в том, что Иоаннис — единственный зарубежный спикер на весь Highload++. Очень приятно, что привезла его Катя Фирсова из программного комитета PHP Russia.
Я хочу воспользоваться ситуацией и через полчаса взять у него интервью. Напишите вопросы, на которые вы бы хотели получить ответы.
Вчера был крутой доклад от грека Иоанниса Лукериса про APCu. Прикол в том, что Иоаннис — единственный зарубежный спикер на весь Highload++. Очень приятно, что привезла его Катя Фирсова из программного комитета PHP Russia.
Я хочу воспользоваться ситуацией и через полчаса взять у него интервью. Напишите вопросы, на которые вы бы хотели получить ответы.
Пых
Вопросы для интервью с Иоаннисом Лукерисом Вчера был крутой доклад от грека Иоанниса Лукериса про APCu. Прикол в том, что Иоаннис — единственный зарубежный спикер на весь Highload++. Очень приятно, что привезла его Катя Фирсова из программного комитета PHP…
Media is too big
VIEW IN TELEGRAM
Ловите превью.
Пых
Ловите превью.
Иоаннис Лукерис про PHP vs Go, Yii 3 и русских разработчиков
Иоаннис — архитектор в Altenar. На прошедшей PHP Russia он рассказывал, как и в каких случаях использовать APCu. На меня произвели большое впечатление его харизма, выдержка и рассудительность, и я сразу понял, что без интервью этого человека отпускать нельзя.
https://youtu.be/rycC75QpIPY
Спасибо Екатерине Фирсовой за гостя, а вам, пыхари, за крутые вопросы.
Иоаннис — архитектор в Altenar. На прошедшей PHP Russia он рассказывал, как и в каких случаях использовать APCu. На меня произвели большое впечатление его харизма, выдержка и рассудительность, и я сразу понял, что без интервью этого человека отпускать нельзя.
https://youtu.be/rycC75QpIPY
Спасибо Екатерине Фирсовой за гостя, а вам, пыхари, за крутые вопросы.
YouTube
Ioannis Loukeris on PHP vs Go, Yii 3 and Russian developers
Ioannis Loukeris is a software architect at Altenar. I was greatly inspired by hist talk "Using and (slightly) abusing APCu cache in high load concurrent environments" at PHP Russia 2024 and offered him an interview. We talked about the current state of IT…
Open Source Цех #3. Symfony PropertyInfo, Symfony Console, PHPUnit
В эту среду в
https://youtu.be/z19oWnc4WMU
В эту среду в
19:00
посмотрим, как Nicolas Grekas поправил совместимость Symfony PropertyInfo с PHP 8.4, и предложим пару маленьких изменений в Symfony Console и PHPUnit.https://youtu.be/z19oWnc4WMU
YouTube
Open Source Цех #3 • Symfony PropertyInfo, Symfony Console, PHPUnit
В эту среду в 19:00 посмотрим, как Nicolas Grekas поправил совместимость Symfony PropertyInfo с PHP 8.4, и предложим пару маленьких изменений в Symfony Console и PHPUnit.
Подписывайтесь на наши каналы в Telegram:
• Пых https://www.tg-me.com/phpyh,
• PHP умирает?!…
Подписывайтесь на наши каналы в Telegram:
• Пых https://www.tg-me.com/phpyh,
• PHP умирает?!…
Saki Takamachi
Релиз-менеджер PHP 8.4 рассказывает про свой RFC BCMath\Number.
https://youtu.be/ozcgXm1hZBg
Релиз-менеджер PHP 8.4 рассказывает про свой RFC BCMath\Number.
https://youtu.be/ozcgXm1hZBg
YouTube
PHP 8.4 - BCMathの進化
PHP Foundation Core DeveloperのSaki Takamachiです!
PHP 8.4のRelease Managerでもあります。
日本時間の昨日(2024/11/21)、PHP 8.4を無事にリリースできました!
PHP 8.4で大幅に進化したBCMathについて、簡単にご紹介します
[訂正]
7:23 - '10'のscaleが1となっていますが、0の誤りです。
X: https://x.com/sakitakamachi
Mastodon: https://phpc.social/@saki…
PHP 8.4のRelease Managerでもあります。
日本時間の昨日(2024/11/21)、PHP 8.4を無事にリリースできました!
PHP 8.4で大幅に進化したBCMathについて、簡単にご紹介します
[訂正]
7:23 - '10'のscaleが1となっていますが、0の誤りです。
X: https://x.com/sakitakamachi
Mastodon: https://phpc.social/@saki…
Composer bump-after-update
В Composer 2.8 появилась полезная автоматизация для
Или один раз прописываем в
В проекте рекомендую использовать
Кто не в курсе, команда composer bump появилась в Composer 2.4. Она поднимает нижние границы констрейнтов в
В Composer 2.8 появилась полезная автоматизация для
bump
:# раньше
composer update && composer bump
# теперь
composer update --bump-after-update
# раньше
composer update && composer bump --dev-only
# теперь
composer update --bump-after-update=dev
Или один раз прописываем в
composer.json
:{
"config": {
"bump-after-update": true|"dev"|"no-dev"
}
}
В проекте рекомендую использовать
true
(бампим всё), в библиотеке — "dev"
(бампим только dev
зависимости), так как диапазоны основных зависимостей библиотеки определяются осознанно в соответствии со стратегией совместимости.Кто не в курсе, команда composer bump появилась в Composer 2.4. Она поднимает нижние границы констрейнтов в
composer.json
до зафиксированных в composer.lock
, например:{
"require": {
- "typhoon/reflection": "^0.4"
+ "typhoon/reflection": "^0.4.4"
}
}
Пых
Open Source Цех #3. Symfony PropertyInfo, Symfony Console, PHPUnit В эту среду в 19:00 посмотрим, как Nicolas Grekas поправил совместимость Symfony PropertyInfo с PHP 8.4, и предложим пару маленьких изменений в Symfony Console и PHPUnit. https://youtu.be/z19oWnc4WMU
Вчерашний Open Source Цех пошёл на пользу PHP сообществу!
https://youtu.be/z19oWnc4WMU
▸ Sebastian Bergmann закрыл мой тикет про
▸ Robin Chalas из команды Symfony согласился, что команда
▸ По PropertyAccess пока нет обратной связи. Но я уверен, что Nicolas Grekas уже работает над исправлением.
https://youtu.be/z19oWnc4WMU
▸ Sebastian Bergmann закрыл мой тикет про
mixed
ключи в assertArrayHasXXX()
как фикс. Это означает, что изменения будут доступны в патч-апдейтах 10 и 11 версий PHPUnit.▸ Robin Chalas из команды Symfony согласился, что команда
bin/console debug:container <service>
должна по умолчанию выводить информацию об аргументах сервиса. Обсуждаем дальше, будет ли изменение вывода нарушением BC или нет. Законтрибьютим с вами решение на следующем стриме Цеха.▸ По PropertyAccess пока нет обратной связи. Но я уверен, что Nicolas Grekas уже работает над исправлением.
YouTube
Open Source Цех #3 • Symfony PropertyInfo, Symfony Console, PHPUnit
В эту среду в 19:00 посмотрим, как Nicolas Grekas поправил совместимость Symfony PropertyInfo с PHP 8.4, и предложим пару маленьких изменений в Symfony Console и PHPUnit.
Подписывайтесь на наши каналы в Telegram:
• Пых https://www.tg-me.com/phpyh,
• PHP умирает?!…
Подписывайтесь на наши каналы в Telegram:
• Пых https://www.tg-me.com/phpyh,
• PHP умирает?!…
Оверимплоймент
NEWHR проводят исследование оверимплоймента — это когда подрабатываешь или устраиваешься на несколько полноценных работ, чтобы, например, пораньше закрыть ипотеку или просто потому что можешь и нагрузка позволяет.
Расскажу про свой "жопыт". Я обычно на 100% погружаюсь в основной проект — остаюсь вечером, чтобы в тишине додумать сложную задачу, или прихожу в выходные бороться с техдолгом. Если проект меня так не драйвит, я меняю работу. Поэтому мне трудно представить, что я пишу код где-то ещё. Тем не менее, два раза пришлось согласиться. В процессе выяснялось, что код кошмарный, а от меня требуется изобразить подход "хуяк-хуяк, и в продакшн". В итоге я зарёкся вписываться в подработки и стал искать другие способы зарабатывать больше.
Очевидно, что работать на двух фулл-таймах мне даже в голову не приходило. Я с круглыми глазами читаю статьи коллег, которые по приколу залетают на 5 работ джунами или на 2-3 сеньорами. С одной стороны, у них крутая самоорганизация, с другой — я не разделяю такой подход к программированию. Пишите в комментариях, пробовали ли вы так делать и чем это закончилось. Ну и заодно давайте поможем NEWHR с их исследованием. В начале года они по результатам опроса сделают лендинг.
https://survey.alchemer.com/s3/7949610/newhr-overemployment-2024
NEWHR проводят исследование оверимплоймента — это когда подрабатываешь или устраиваешься на несколько полноценных работ, чтобы, например, пораньше закрыть ипотеку или просто потому что можешь и нагрузка позволяет.
Расскажу про свой "жопыт". Я обычно на 100% погружаюсь в основной проект — остаюсь вечером, чтобы в тишине додумать сложную задачу, или прихожу в выходные бороться с техдолгом. Если проект меня так не драйвит, я меняю работу. Поэтому мне трудно представить, что я пишу код где-то ещё. Тем не менее, два раза пришлось согласиться. В процессе выяснялось, что код кошмарный, а от меня требуется изобразить подход "хуяк-хуяк, и в продакшн". В итоге я зарёкся вписываться в подработки и стал искать другие способы зарабатывать больше.
Очевидно, что работать на двух фулл-таймах мне даже в голову не приходило. Я с круглыми глазами читаю статьи коллег, которые по приколу залетают на 5 работ джунами или на 2-3 сеньорами. С одной стороны, у них крутая самоорганизация, с другой — я не разделяю такой подход к программированию. Пишите в комментариях, пробовали ли вы так делать и чем это закончилось. Ну и заодно давайте поможем NEWHR с их исследованием. В начале года они по результатам опроса сделают лендинг.
https://survey.alchemer.com/s3/7949610/newhr-overemployment-2024
Alchemer
Оверимплоймент: подработка и основная работа у русскоязычных айтишников — NEWHR 2024
Оверимплоймент: подработка и основная работа у русскоязычных айтишников — NEWHR 2024.
DateTimeImmutable::createFromTimestamp()
В PHP 8.4 Marc Bennewitz добавил метод:
Для DateTime, конечно, тоже, но я не хочу лишний раз упоминать эту мутабельную дрянь.
Используя
А теперь приятная новость: всё то же самое можно элементарно делать на PHP <8.4! С момента появления
Если часто этим пользуетесь, можете просто добавить себе в проект функцию а-ля PHP 8.4:
В PHP 8.4 Marc Bennewitz добавил метод:
DateTimeImmutable::createFromTimestamp(int|float $timestamp): static
Используя
float
, можно создать объект времени с точностью до микросекунд:
$microtime = microtime(as_float: true);
$time = DateTimeImmutable::createFromTimestamp($microtime);
assert(sprintf('%.6f', $microtime) === $time->format('U.u'));
А теперь приятная новость: всё то же самое можно элементарно делать на PHP <8.4! С момента появления
DateTimeImmutable
в PHP 5.5 его конструктор поддерживает формулу @<timestamp>
, а с PHP 7.1 — @<timestamp>[.<µs>]
(демо всех вариантов на всех версиях PHP):
$microtime = microtime(as_float: true);
$microtimeAsString = sprintf('%.6f', $microtime); // "1734088458.588154"
$dateTime = new DateTimeImmutable('@' . $microtimeAsString);
assert($microtimeAsString === $dateTime->format('U.u'));
Если часто этим пользуетесь, можете просто добавить себе в проект функцию а-ля PHP 8.4:
function createDateTimeFromTimestamp(int|float $timestamp): DateTimeImmutable
{
return new DateTimeImmutable(sprintf('@%.6f', $timestamp));
}
PHP-линч #27. Yii3 Data c Сергеем Предводителевым
Завтра в
Присоединяйтесь, продолжим изучать Yii3!
https://youtu.be/tVzcnenOAoo
Завтра в
19:30
пройдёт первый линч с участием автора! Сергей Предводителев, разработчик фреймворка Yii3 и герой нескольких PHP-линчей, познакомит меня с новым пакетом Yii Data. По традиции я не заглядывал в код, чтобы поделиться с вами первым впечатлением.Присоединяйтесь, продолжим изучать Yii3!
https://youtu.be/tVzcnenOAoo
YouTube
PHP-линч #27 • Yii3 Data c Сергеем Предводителевым
Первый линч с участием автора! Сергей Предводителев, разработчик фреймворка Yii3 и герой нескольких PHP-линчей, познакомит меня с новым пакетом Yii Data. По традиции я не заглядывал в код, чтобы поделиться с вами первым впечатлением.
Присоединяйтесь, продолжим…
Присоединяйтесь, продолжим…
Пых
PHP-линч #27. Yii3 Data c Сергеем Предводителевым Завтра в 19:30 пройдёт первый линч с участием автора! Сергей Предводителев, разработчик фреймворка Yii3 и герой нескольких PHP-линчей, познакомит меня с новым пакетом Yii Data. По традиции я не заглядывал…
Друзья, нужна обратная связь. Как вам PHP-линч с автором? Продолжать так делать или чередовать с традиционным форматом?
И вообще расскажите, какой контент от меня хотите. Может быть, есть конкретные темы, которые я мог бы для вас раскрыть. Сейчас вот пришла в голову идея позвать джуна на Open Source Цех, чтобы он, пошарив экран, с моей помощью законтрибьютил что-то полезное. Вам был бы интересен такой стрим?
Спасибо за первые три доната и попытку сделать четвёртый (там что-то с оплатой не задалось)! Пусть на увлажнитель пока не набрали, всё равно очень приятно.💙
И да, простите за 720p, больше такого не будет.
И вообще расскажите, какой контент от меня хотите. Может быть, есть конкретные темы, которые я мог бы для вас раскрыть. Сейчас вот пришла в голову идея позвать джуна на Open Source Цех, чтобы он, пошарив экран, с моей помощью законтрибьютил что-то полезное. Вам был бы интересен такой стрим?
Спасибо за первые три доната и попытку сделать четвёртый (там что-то с оплатой не задалось)! Пусть на увлажнитель пока не набрали, всё равно очень приятно.
И да, простите за 720p, больше такого не будет.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как стать программистом
Мне часто в последнее время задают этот вопрос. Вот мой алгоритм:
1. Задай простой вопрос: "Зачем мне это?"
Это основополагающий пункт. Приветствуются ответы вида "очень интересно", "хочу автоматизировать", "хочу написать игру", "хочу сделать сайт". Не советую тебе программировать, если ты подумал про деньги. В любом ремесле нужно искреннее желание, чтобы преодолеть первые несколько тысяч часов. Да и на работу будет труднее устроиться: джуну с горящими глазами я давал шанс, даже когда искал мидла, а пустобрёха-золотоискателя разворачивал даже если он отвечал на все вопросы.
2. Начинай кодить
Прямо после чтения этого поста. Абсолютно не важно, Windows у тебя или MacOS, два монитора или ни одного. Даже если ты читаешь этот пост в 3:07 с телефона, переходи на страницу курса "Введение в программирование" и приступай. Тебе не потребуются ни деньги, ни редактор. Нужно просто нажать кнопку "Начать". Это не реклама, Хекслет — одна из немногих школ, где есть честные бесплатные курсы для начинающих, которые можно пройти прямо в браузере. Идеально для тебя.
3. Продолжай кодить
Если ты не закончил курс из второго пункта, значит, тебе это не надо. Не программировать нормально. Так же нормально, как не управлять самолётом или не играть на трамбоне. Я бы даже сказал, что не программировать нормальнее, чем программировать (спроси мою жену). Но если ты прошёл вводный курс на одном дыхании, можешь взять ещё один, ориентационный, например, "Основы PHP", раз уж ты оказался на канале Пых. Подчёркиваю — тебе для этого не надо бросать учёбу или работу. У тебя и так куча времени, чтобы кодить: проезд, перемены, обеды, вечера, ночи, выходные. И самое главное! Тебе не нужно тратить ни копейки до самого трудоустройства. Я твёрдо уверен, что лучший старт в программировании — самостоятельный.
4. Продолжай кодить
Скорее всего, к этому моменту ты уже придумаешь идею для пет-проекта. Если нет, попробуй автоматизировать любой бытовой процесс, заменив парой скриптов приложение на телефоне. Это может быть список дел, вишлист, учёт финансов, календарь дней рождения, личная страничка в интернете. На этом этапе необходимо взять любую задачу и начать её решать самому, чтобы встретить первые сложности. Все ответы ты найдёшь в интернете: гугли, смотри видео, спрашивай в профильных чатах для джунов и, самое главное, — бесконечно пробуй и переделывай, пока не получится. Делай перерывы — часто ответ приходит в туалете (я серьёзно) или на прогулке.
5. Продолжай кодить
В течение месяца у тебя сформируется свой особенный мирок, в котором ты, к несчастью для близких, будешь пропадать всё чаще и чаще. В нём зародится желание написать тот самый идеальный код. Каждый день ты будешь постигать всё новые способы выразить намерение в программе и многократно переписывать одну и ту же функцию. Ты на верном пути: думай, гугли, рефактори, отлаживай, читай чужой код, проси обратную связь и так по кругу. Этот цикл со временем замедлится, но не прекратится никогда.
6. Не переставая кодить, выходи на рынок труда
Если ты учишься и необходимости в работе нет, лучше доучись или перейди на IT факультет. Я сам по образованию не программист, но рад, что не бросил универ — там меня научили думать. Если ты работаешь, не увольняйся, пока не возьмут, так как поиски могут занять месяцы. Не ври на собеседованиях: претендуй на джуна и реалистичную зарплату, но не соглашайся на что попало. Лучше выбрать проект по душе с достойной командой и низкой стартовой зарплатой, чем условную порностудию с высокомерными людьми и большим окладом. Неудачное собеседование — источник новых знаний, проработав задачи, иди на следующее.
7. Устроился — молодец, продолжай кодить!
Потому что это только начало. Тебе предстоит снова всё переосмыслить, а ещё научиться командной работе: ревью, тесты, легаси, оценка сроков и ответственность. Первый год не бойся переработок и инициативы. Чем больше ты дашь команде, тем больше она вернёт тебе в ответ, не наоборот. Они в тебя поверили — докажи, что не зря.
Удачи! Но будет абсолютно нормально, если ты станешь кем-то ещё.
Мне часто в последнее время задают этот вопрос. Вот мой алгоритм:
1. Задай простой вопрос: "Зачем мне это?"
Это основополагающий пункт. Приветствуются ответы вида "очень интересно", "хочу автоматизировать", "хочу написать игру", "хочу сделать сайт". Не советую тебе программировать, если ты подумал про деньги. В любом ремесле нужно искреннее желание, чтобы преодолеть первые несколько тысяч часов. Да и на работу будет труднее устроиться: джуну с горящими глазами я давал шанс, даже когда искал мидла, а пустобрёха-золотоискателя разворачивал даже если он отвечал на все вопросы.
2. Начинай кодить
Прямо после чтения этого поста. Абсолютно не важно, Windows у тебя или MacOS, два монитора или ни одного. Даже если ты читаешь этот пост в 3:07 с телефона, переходи на страницу курса "Введение в программирование" и приступай. Тебе не потребуются ни деньги, ни редактор. Нужно просто нажать кнопку "Начать". Это не реклама, Хекслет — одна из немногих школ, где есть честные бесплатные курсы для начинающих, которые можно пройти прямо в браузере. Идеально для тебя.
3. Продолжай кодить
Если ты не закончил курс из второго пункта, значит, тебе это не надо. Не программировать нормально. Так же нормально, как не управлять самолётом или не играть на трамбоне. Я бы даже сказал, что не программировать нормальнее, чем программировать (спроси мою жену). Но если ты прошёл вводный курс на одном дыхании, можешь взять ещё один, ориентационный, например, "Основы PHP", раз уж ты оказался на канале Пых. Подчёркиваю — тебе для этого не надо бросать учёбу или работу. У тебя и так куча времени, чтобы кодить: проезд, перемены, обеды, вечера, ночи, выходные. И самое главное! Тебе не нужно тратить ни копейки до самого трудоустройства. Я твёрдо уверен, что лучший старт в программировании — самостоятельный.
4. Продолжай кодить
Скорее всего, к этому моменту ты уже придумаешь идею для пет-проекта. Если нет, попробуй автоматизировать любой бытовой процесс, заменив парой скриптов приложение на телефоне. Это может быть список дел, вишлист, учёт финансов, календарь дней рождения, личная страничка в интернете. На этом этапе необходимо взять любую задачу и начать её решать самому, чтобы встретить первые сложности. Все ответы ты найдёшь в интернете: гугли, смотри видео, спрашивай в профильных чатах для джунов и, самое главное, — бесконечно пробуй и переделывай, пока не получится. Делай перерывы — часто ответ приходит в туалете (я серьёзно) или на прогулке.
5. Продолжай кодить
В течение месяца у тебя сформируется свой особенный мирок, в котором ты, к несчастью для близких, будешь пропадать всё чаще и чаще. В нём зародится желание написать тот самый идеальный код. Каждый день ты будешь постигать всё новые способы выразить намерение в программе и многократно переписывать одну и ту же функцию. Ты на верном пути: думай, гугли, рефактори, отлаживай, читай чужой код, проси обратную связь и так по кругу. Этот цикл со временем замедлится, но не прекратится никогда.
6. Не переставая кодить, выходи на рынок труда
Если ты учишься и необходимости в работе нет, лучше доучись или перейди на IT факультет. Я сам по образованию не программист, но рад, что не бросил универ — там меня научили думать. Если ты работаешь, не увольняйся, пока не возьмут, так как поиски могут занять месяцы. Не ври на собеседованиях: претендуй на джуна и реалистичную зарплату, но не соглашайся на что попало. Лучше выбрать проект по душе с достойной командой и низкой стартовой зарплатой, чем условную порностудию с высокомерными людьми и большим окладом. Неудачное собеседование — источник новых знаний, проработав задачи, иди на следующее.
7. Устроился — молодец, продолжай кодить!
Потому что это только начало. Тебе предстоит снова всё переосмыслить, а ещё научиться командной работе: ревью, тесты, легаси, оценка сроков и ответственность. Первый год не бойся переработок и инициативы. Чем больше ты дашь команде, тем больше она вернёт тебе в ответ, не наоборот. Они в тебя поверили — докажи, что не зря.
Удачи! Но будет абсолютно нормально, если ты станешь кем-то ещё.
Пых
PHP-линч #27. Yii3 Data c Сергеем Предводителевым Завтра в 19:30 пройдёт первый линч с участием автора! Сергей Предводителев, разработчик фреймворка Yii3 и герой нескольких PHP-линчей, познакомит меня с новым пакетом Yii Data. По традиции я не заглядывал…
PHP-линч #27.1. Как бы я спроектировал Yii3 Data
Не могу перестать думать про чёртов пакет!
Я не верю в универсальные админки и по-прежнему считаю, что Yii3 Data не особо нужен, но именно поэтому хочу воспользоваться возможностью и попроектировать абстракции такого рода.
Давайте постримимся в эти выходные!Когда вам было бы удобно? А именно в субботу в 18:00.
Не могу перестать думать про чёртов пакет!
Я не верю в универсальные админки и по-прежнему считаю, что Yii3 Data не особо нужен, но именно поэтому хочу воспользоваться возможностью и попроектировать абстракции такого рода.
Давайте постримимся в эти выходные!
Пых
PHP-линч #27.1. Как бы я спроектировал Yii3 Data Не могу перестать думать про чёртов пакет! Я не верю в универсальные админки и по-прежнему считаю, что Yii3 Data не особо нужен, но именно поэтому хочу воспользоваться возможностью и попроектировать абстракции…
PHP-линч #27.1. Как бы я спроектировал Yii3 Data
Ну что ж, встречаемся сегодня вечером в 18:00 по МСК. Кое-что заготовил, но рассуждать и кодить буду с нуля вместе с вами.
Через streamvi.io настроил рестрим и мультичат на три площадки: YouTube, Telegram, VK Видео. Трансляция в1080p 1440p!
Ну что ж, встречаемся сегодня вечером в 18:00 по МСК. Кое-что заготовил, но рассуждать и кодить буду с нуля вместе с вами.
Через streamvi.io настроил рестрим и мультичат на три площадки: YouTube, Telegram, VK Видео. Трансляция в
VK Видео
PHP-линч #27.1 • Как бы я спроектировал Yii3 Data
После линча Yii3 Data с Сергеем Предводителевым (https://www.tg-me.com/phpyh/577) не могу перестать думать про чёртов пакет! Я не верю в универсальные админки и по-прежнему считаю, что Yii3 Data не нужен, но именно поэтому хочу воспользоваться возможностью и попроектировать…
Пых
PHP-линч #27.1. Как бы я спроектировал Yii3 Data Ну что ж, встречаемся сегодня вечером в 18:00 по МСК. Кое-что заготовил, но рассуждать и кодить буду с нуля вместе с вами. Через streamvi.io настроил рестрим и мультичат на три площадки: YouTube, Telegram…
PHP-линч #27.1. Как бы я спроектировал Yii3 Data
Залетайте на любую площадку: YouTube, Telegram, VK Видео.
Репозиторий: https://github.com/phpyh/yii3-data.
Комментировать можно прямо под этим постом!
Стрим завершён, всем спасибо за вопросы и донаты. Записи доступны в VK Видео и на YouTube.
Залетайте на любую площадку: YouTube, Telegram, VK Видео.
Репозиторий: https://github.com/phpyh/yii3-data.
Комментировать можно прямо под этим постом!
Стрим завершён, всем спасибо за вопросы и донаты. Записи доступны в VK Видео и на YouTube.
YouTube
PHP-линч #27.1 • Как бы я спроектировал Yii3 Data
После линча Yii3 Data с Сергеем Предводителевым (https://www.tg-me.com/phpyh/577) не могу перестать думать про чёртов пакет! Я не верю в универсальные админки и по-прежнему считаю, что Yii3 Data не нужен, но именно поэтому хочу воспользоваться возможностью и попроектировать…
Пыхап #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
Друзья, программный комитет начал готовить второй Пыхап! Мы ориентируемся на конец января, но точная дата будет зависеть от результатов поиска новой площадки.
Теперь к программе. У нас есть два свободных слота: новичковый и хардкорный, оба офлайн. Новичковый мы добавили для тех, кто ещё не выступал, но очень хочет начать. Можно взять средней сложности тему (фреймворки/паттерны/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
Google Docs
Хочу выступить на Пыхапе в Москве!
Привет!
Программный комитет Пыхапа приглашает тебя выступить. Наши пожелания:
Доклад должен быть прямо или косвенно связан с PHP.
Идеальный регламент — 35 минут рассказ и 10 минут ответы на вопросы. Лучше ёмко рассказать, а потом бурно обсудить, чем долго…
Программный комитет Пыхапа приглашает тебя выступить. Наши пожелания:
Доклад должен быть прямо или косвенно связан с PHP.
Идеальный регламент — 35 минут рассказ и 10 минут ответы на вопросы. Лучше ёмко рассказать, а потом бурно обсудить, чем долго…
Пых
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 Видео.
Судя по комментариям, вам очень зашёл предыдущий стрим про Yii3 Data, поэтому не буду тянуть с продолжением! В этот раз исправим ошибки, упростим код, добавим фильтры-спецификации и пагинаторы.
Начало завтра в 19 в Telegram, YouTube и VK Видео.
YouTube
PHP-линч #27.2 • Финализирую своё видение Yii3 Data
Судя по комментариям, вам очень зашёл предыдущий стрим про Yii3 Data (https://www.tg-me.com/phpyh/585), поэтому не будем тянуть с продолжением! На стриме исправим ошибки, упростим код, добавим фильтры на базе спецификаций и пагинаторы.
Стрим в YouTube: https://y…
Стрим в YouTube: https://y…
Пагинация
Перед стримом решил освежить свои познания пагинации, вдруг что-то новое придумали. Но нет, по-прежнему есть два варианта: offset и keyset (иногда её ещё называют "курсорная"). Offset пагинация в немилости, потому что неэффективна на дальних страницах: при обработке запроса вида
Когда на Stack Overflow кто-то спрашивает: "А как же мне построить классическую пагинацию с циферками, используя keyset метод?", ему обычно отвечают: "А зачем? Ты можешь себе представить пользователя, который прыгает на сотую страницу? Сделай бесконечный скролл..."
И тут я подумал: если пользователь редко ходит дальше условной третьей страницы, то и offset навигация будет неплохо справляться! На четвёртой странице можно ничего не выводить, а просить уточнить выборку с помощью фильтров и сортировки. Кстати, Google так и делает. В поисковике самая обыкновенная offset навигация: https://google.com/search?q=pagination&num=20&start=100, при этом из 129 млн. результатов он показывает чуть больше 200 (у меня вывел 24 страницы по 10). А вот Gmail не может себе позволить не показывать все письма, поэтому в нём реализована keyset навигация, только не с бесконечно прокруткой, а с кнопками ◀️▶️.
Ориентируясь на эти два примера, выбирайте, какой подход лучше подойдёт вам в каждом конкретном случае, а мы сегодня в 19 красиво зарешаем оба варианта!
Перед стримом решил освежить свои познания пагинации, вдруг что-то новое придумали. Но нет, по-прежнему есть два варианта: 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 красиво зарешаем оба варианта!