Forwarded from Пых (Валентин Удальцов)
Сегодня наконец-то PHP-линч #29!
Я открываю новый сезон знаменитой рубрики PHP-линч! Сам по ней невероятно соскучился.
Хотелось бы сразу посмотреть на Yii3, но лучше мы в этот раз разогреемся чем-то поменьше, а, например, в следующую среду весь стрим посвятим Yii.
Залетайте в 19:00 на📹 YouTube и 📹 VK Видео.
#php_линч
Я открываю новый сезон знаменитой рубрики PHP-линч! Сам по ней невероятно соскучился.
Хотелось бы сразу посмотреть на Yii3, но лучше мы в этот раз разогреемся чем-то поменьше, а, например, в следующую среду весь стрим посвятим Yii.
Залетайте в 19:00 на
#php_линч
Please open Telegram to view this post
VIEW IN TELEGRAM
VK Видео
PHP-линч #29: symfony/object-mapper
Как устроен PHP-линч: 1. Во время стрима вы скидываете в чат трансляции ссылки на репозитории и в трёх словах описываете, что там. Это может быть ваш пет-проект или библиотека, а может быть компонент (не)известного фреймворка. 2. Я выбираю проект. 3. Клонирую…
❤9🤮4👍1🔥1
Forwarded from Пых (Валентин Удальцов)
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
PHP-линч #31: Yii3
Мои впечатления от Yii3: https://youtu.be/8XZxnl2RZWI
Как устроен PHP-линч:
1. Во время стрима вы скидываете в чат трансляции ссылки на репозитории и в трёх словах описываете, что там. Это может быть ваш пет-проект или библиотека, а может быть компонент…
Как устроен PHP-линч:
1. Во время стрима вы скидываете в чат трансляции ссылки на репозитории и в трёх словах описываете, что там. Это может быть ваш пет-проект или библиотека, а может быть компонент…
🔥7❤1👍1👀1
Оказывается в апреле 2026 заканчивается поддержка MySQL 8.0
Хорошие новости: перейти на следующую LTS версию MySQL 8.4 должно быть достаточно просто, несовместимых изменений очень мало: https://dev.mysql.com/doc/refman/8.4/en/upgrading-from-previous-series.html
Ставь лайк, если используешь MySQL.
Ставь дизлайк, если на PostgreSQL.
Fight❗️
Хорошие новости: перейти на следующую LTS версию MySQL 8.4 должно быть достаточно просто, несовместимых изменений очень мало: https://dev.mysql.com/doc/refman/8.4/en/upgrading-from-previous-series.html
Ставь лайк, если используешь MySQL.
Ставь дизлайк, если на PostgreSQL.
Fight❗️
👍74👎73😁9💩7🤡6
Laracon EU 2-3 марта 2026.
Сейчас Live на YouTube панельная дискуссия о направлении развития Laravel и экосистемы: https://www.youtube.com/live/YJmuKPk3d9M?feature=shared
Сейчас Live на YouTube панельная дискуссия о направлении развития Laravel и экосистемы: https://www.youtube.com/live/YJmuKPk3d9M?feature=shared
YouTube
Laracon EU Amsterdam 2026 Day 2
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
👎3👍2👀1
В начале марта открыто голосование по RFC ValueError Conversions для PHP 8.6, которое предлагает заменить множество предупреждений (E_WARNING) на ValueError, когда функции получают некорректные значения.
Пример:
https://discourse.thephp.foundation/t/php-dev-rfc-vote-valueerror-conversions-for-php-8-6/5206
Голосование открыли, но сразу нашли нарушения правил и закрыли!
• нет обязательной опции Abstain (воздержаться)
• не было “Intent to Vote” объявления
• RFC обсуждали меньше минимального cooldown-периода (14 дней)
• markdown-разметка голосования в wiki была сломана, из-за неправильных отступов варианты голосования не отображались
Пример:
<?php
// Current behavior (may hang on some systems, e.g. macOS)
var_dump(copy("source.txt", "")); // bool(false)
// After (proposed behavior)
try {
copy("source.txt", "");
} catch (ValueError $e) {
echo $e->getMessage();
// copy(): Argument #2 ($to) must be a non-empty valid path
}
// PHP ≤ 8.5: return false
// PHP 8.6 (proposed): ValueError exception
?>
https://discourse.thephp.foundation/t/php-dev-rfc-vote-valueerror-conversions-for-php-8-6/5206
Голосование открыли, но сразу нашли нарушения правил и закрыли!
• нет обязательной опции Abstain (воздержаться)
• не было “Intent to Vote” объявления
• RFC обсуждали меньше минимального cooldown-периода (14 дней)
• markdown-разметка голосования в wiki была сломана, из-за неправильных отступов варианты голосования не отображались
PHP Foundation Discourse
[PHP-DEV] [RFC] [VOTE]ValueError Conversions for PHP 8.6
Hi everyone, This is to announce the opening of the vote for the ValueError Conversions RFC. RFC: https://wiki.php.net/rfc/php86_valueerror_conversions Discussion thread: https://externals.io/message/130090 The vote will be open for 2 weeks (and a few…
👍8😁3😢2
🔥 4 RFC в истории PHP, которые провалились буквально из-за пары голосов
В языке PHP многие фичи, которые сегодня кажутся очевидными, сначала не проходили голосование RFC. Иногда не хватало буквально нескольких голосов.
Вот несколько показательных примеров.
---
1️⃣ Typed Properties (2016)
Сегодня это нормальная часть языка:
Но первая версия RFC провалилась.
Результат голосования:
На первый взгляд — победа.
Но для этого RFC требовалось 2/3 голосов.
Через несколько лет предложение переработали — и Typed Properties появились в PHP 7.4.
Сегодня это одна из самых используемых возможностей языка.
---
2️⃣ Scalar Type Hints
До PHP 7 нельзя было писать:
Можно было типизировать только:
* array
* callable
* классы
Первая версия RFC по scalar types провалилась буквально на грани.
Типичный результат одного из голосований:
До порога 2/3 голосов опять немного не дотянули.
В итоге появился компромисс:
И scalar types всё-таки попали в PHP 7.0.
---
3️⃣ Generics
Одна из самых ожидаемых фич PHP до сих пор.
Идея:
Generics дают:
• сильную типизацию
• безопасные коллекции
• лучшее автодополнение IDE
Главная проблема — сложность реализации.
Generics требуют серьёзных изменений:
• type system
• runtime
• reflection
• opcache
Поэтому обсуждение этой фичи продолжается уже много лет.
---
4️⃣ Named Arguments
Сегодня можно писать так:
Но первая версия RFC была отклонена.
Разработчики опасались:
• ломать старые API
• сложности в call stack
• несовместимости с variadic функциями
После переработки RFC всё-таки приняли, и Named Arguments появились в PHP 8.0.
---
💡 Интересный факт
В internals есть шутка:
> RFC не умирает — он просто уходит на переписывание.
Большинство крупных фич PHP проходят примерно такой путь:
1️⃣ первая версия RFC проваливается
2️⃣ идею перерабатывают
3️⃣ через несколько лет она всё-таки попадает в язык
В языке PHP многие фичи, которые сегодня кажутся очевидными, сначала не проходили голосование RFC. Иногда не хватало буквально нескольких голосов.
Вот несколько показательных примеров.
---
1️⃣ Typed Properties (2016)
Сегодня это нормальная часть языка:
class User {
public int $id;
}
Но первая версия RFC провалилась.
Результат голосования:
Yes: 24
No: 17
На первый взгляд — победа.
Но для этого RFC требовалось 2/3 голосов.
Через несколько лет предложение переработали — и Typed Properties появились в PHP 7.4.
Сегодня это одна из самых используемых возможностей языка.
---
2️⃣ Scalar Type Hints
До PHP 7 нельзя было писать:
function sum(int $a, int $b)
Можно было типизировать только:
* array
* callable
* классы
Первая версия RFC по scalar types провалилась буквально на грани.
Типичный результат одного из голосований:
Yes: 31
No: 25
До порога 2/3 голосов опять немного не дотянули.
В итоге появился компромисс:
declare(strict_types=1);
И scalar types всё-таки попали в PHP 7.0.
---
3️⃣ Generics
Одна из самых ожидаемых фич PHP до сих пор.
Идея:
class Collection<T> {
public function add(T $item) {}
}
Generics дают:
• сильную типизацию
• безопасные коллекции
• лучшее автодополнение IDE
Главная проблема — сложность реализации.
Generics требуют серьёзных изменений:
• type system
• runtime
• reflection
• opcache
Поэтому обсуждение этой фичи продолжается уже много лет.
---
4️⃣ Named Arguments
Сегодня можно писать так:
setcookie(
name: "test",
expires: time() + 3600
);
Но первая версия RFC была отклонена.
Разработчики опасались:
• ломать старые API
• сложности в call stack
• несовместимости с variadic функциями
После переработки RFC всё-таки приняли, и Named Arguments появились в PHP 8.0.
---
💡 Интересный факт
В internals есть шутка:
> RFC не умирает — он просто уходит на переписывание.
Большинство крупных фич PHP проходят примерно такой путь:
1️⃣ первая версия RFC проваливается
2️⃣ идею перерабатывают
3️⃣ через несколько лет она всё-таки попадает в язык
🔥28👍11❤3😁2
Слушал подкаст про DDD.
Ведущий рассказал пример неудачного проектирования, когда в таблице "Заказы" оказалось 150+ полей (очень много).
На этом моменте мне захотелось сказать Hold my beer...
Открываю инспектор БД и смотрю таблицу shipment в своём проекте: 482 колонки, 46 foreign keys!
В одной таблице все виды перевозок:
• авто
• авиа
• море
• Ж/Д
• мультимодальные (несколько видов транспорта)
• и даже таможенное оформление как отдельный вид перевозки!
От такого "DDD" даже у нейросети контекст отвис 😂
Ведущий рассказал пример неудачного проектирования, когда в таблице "Заказы" оказалось 150+ полей (очень много).
На этом моменте мне захотелось сказать Hold my beer...
Открываю инспектор БД и смотрю таблицу shipment в своём проекте: 482 колонки, 46 foreign keys!
В одной таблице все виды перевозок:
• авто
• авиа
• море
• Ж/Д
• мультимодальные (несколько видов транспорта)
• и даже таможенное оформление как отдельный вид перевозки!
От такого "DDD" даже у нейросети контекст отвис 😂
🤣45🤯4🤮3🥰1😁1😨1
Forwarded from Организованное программирование | Кирилл Мокевнин (Кирилл Мокевнин (Бот))
Долгожданный выпуск про DDD. Местами даже получились дебаты :) Смотрим, слушаем, наслаждаемся!
https://www.youtube.com/watch?v=03FnrgYLkV8
Альтернативные ссылки: Аудио | vk
https://www.youtube.com/watch?v=03FnrgYLkV8
Альтернативные ссылки: Аудио | vk
YouTube
DDD: как подружить бизнес и код | Кирилл Ветчинкин | Организованное программирование #55
Когда архитектура перестаёт быть просто техническим решением и становится инструментом понимания бизнеса, в игру вступает DDD. В этом видео — как выстраивать границы контекстов, выявлять субдомены, находить общий язык между разработкой и бизнесом, использовать…
🔥7👎1
Forwarded from AI for Devs
Anthropic удвоили лимиты вайбкодерам РФ и СНГ 😁
С 13 по 27 марта лимиты Claude удваиваются в непиковые часы. Для Штатов это ночь и утро, а для нас — почти весь рабочий день и вечер.
По Москве двойной лимит работает с 22:00 до 16:00 следующего дня. То есть можно спокойно вайбкодить с утра до 16:00, потом шестичасовой перерыв, и с 22:00 снова двойная порция токенов.
Распространяется на все планы, кроме Enterprise. Включается автоматически, ничего дополнительно делать не нужно.
@ai_for_devs
С 13 по 27 марта лимиты Claude удваиваются в непиковые часы. Для Штатов это ночь и утро, а для нас — почти весь рабочий день и вечер.
По Москве двойной лимит работает с 22:00 до 16:00 следующего дня. То есть можно спокойно вайбкодить с утра до 16:00, потом шестичасовой перерыв, и с 22:00 снова двойная порция токенов.
Распространяется на все планы, кроме Enterprise. Включается автоматически, ничего дополнительно делать не нужно.
@ai_for_devs
🔥17😱4❤2
Forwarded from Стартап дня. Александр Горный.
Продакты не нужны
6. Чем больше техническая команда уделяет внимания чистоте кода и архитектуре, чтобы новые фичи выезжали быстрее, тем медленнее выезжают новые фичи.
Весь мой опыт управления разработкой в одной фразе.
👎36💯21😁7💩4🤔2🤡2
К хорошему быстро привыкаешь.
Пример из жизни: в 2021 году вышел iPhone 13 с частотой обновления экрана 120 Гц. До этого iPhone имели частоту обновления 60 Гц. Казалось, и 60 Гц хватит всем, зачем 120?
📲 Сначала я визуально не почувствовал перехода 60 Гц -> 120 Гц.
Но спустя какое-то время включил режим энергосбережения, iPhone включил частоту 60 Гц и разница стала заметна: жутко неприятные анимации, особенно скролл. До сих пор не люблю режим энергосбережения из-за этого.
Вчера случилась похожая история с эмулятором терминала.
Знаете, есть модные терминалы которые подчёркивают свою скорость рендеринга благодаря отрисовке на GPU:
• Warp – написан на Rust, заявляют 144+ FPS на 4K мониторах
• WezTerm – написан на Rust, позиционируется как «GPU‑accelerated terminal»
• Ghostty – написан на Zig, заявляет использование нативного UI и GPU‑ускорения рендеринга
• Alacritty - написан на Rust, «GPU accelerated terminal emulator» с упором на простоту и производительность
• Kitty – написан на Cи (sic!) и тоже «GPU‑based terminal», отдельно выделяют ускоренный рендеринг и свой графический протокол
Опять же, казалось бы, зачем вообще нужна какая-либо оптимизация рендеринга в терминале? Это же не компьютерные игры, тут просто текстовый вывод работы каких-то программ и команд.
Я давно пользуюсь Warp, но вечера попробовал cmux.
🔥 В cmux инетрфейс заточен на работу с ИИ-агентами, удобное деление на проекты и вкладки - интересный заход!
https://cmux.com
🐌 Но вот беда: ужасный дёрганый тормозящий скролл! Порой мне кажется, даже буквы при печати появляются на экране недостаточно быстро (или я уже придираюсь?). В общем, ощущения от визуальной составляющей отвратительные. Я привык к 144+ FPS в терминале.
А по основным фичам интерфейса cmux с делением на проекты и вкладки внутри проектов всё очень нравится! В cmux действительно удобнее работать с ИИ-агентами, чем в терминале с обычными табами.
Пример из жизни: в 2021 году вышел iPhone 13 с частотой обновления экрана 120 Гц. До этого iPhone имели частоту обновления 60 Гц. Казалось, и 60 Гц хватит всем, зачем 120?
📲 Сначала я визуально не почувствовал перехода 60 Гц -> 120 Гц.
Но спустя какое-то время включил режим энергосбережения, iPhone включил частоту 60 Гц и разница стала заметна: жутко неприятные анимации, особенно скролл. До сих пор не люблю режим энергосбережения из-за этого.
Вчера случилась похожая история с эмулятором терминала.
Знаете, есть модные терминалы которые подчёркивают свою скорость рендеринга благодаря отрисовке на GPU:
• Warp – написан на Rust, заявляют 144+ FPS на 4K мониторах
• WezTerm – написан на Rust, позиционируется как «GPU‑accelerated terminal»
• Ghostty – написан на Zig, заявляет использование нативного UI и GPU‑ускорения рендеринга
• Alacritty - написан на Rust, «GPU accelerated terminal emulator» с упором на простоту и производительность
• Kitty – написан на Cи (sic!) и тоже «GPU‑based terminal», отдельно выделяют ускоренный рендеринг и свой графический протокол
Опять же, казалось бы, зачем вообще нужна какая-либо оптимизация рендеринга в терминале? Это же не компьютерные игры, тут просто текстовый вывод работы каких-то программ и команд.
Я давно пользуюсь Warp, но вечера попробовал cmux.
🔥 В cmux инетрфейс заточен на работу с ИИ-агентами, удобное деление на проекты и вкладки - интересный заход!
https://cmux.com
🐌 Но вот беда: ужасный дёрганый тормозящий скролл! Порой мне кажется, даже буквы при печати появляются на экране недостаточно быстро (или я уже придираюсь?). В общем, ощущения от визуальной составляющей отвратительные. Я привык к 144+ FPS в терминале.
А по основным фичам интерфейса cmux с делением на проекты и вкладки внутри проектов всё очень нравится! В cmux действительно удобнее работать с ИИ-агентами, чем в терминале с обычными табами.
cmux
cmux — The terminal built for multitasking
Native macOS terminal for AI coding agents. Works with Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, and any CLI tool.
🤡20😁8👍4❤1🔥1🎉1🤨1
Вышел Laravel 13 🎉
Обновился без проблем c Laravel 11 на Laravel 13 за один промпт в codex.
Чтобы было повеселее, после обновления Laravel ещё заменил spatie/ignition (пакет для красивого отображения ошибок) на yiisoft/error-handler 😊
Вопрос: если с каждым обновлением Laravel менять по одному пакету в проекте на пакет из набора Yii3, то на какой версии Laravel я полностью перейду на Yii3? 🧐
Обновился без проблем c Laravel 11 на Laravel 13 за один промпт в codex.
Чтобы было повеселее, после обновления Laravel ещё заменил spatie/ignition (пакет для красивого отображения ошибок) на yiisoft/error-handler 😊
Вопрос: если с каждым обновлением Laravel менять по одному пакету в проекте на пакет из набора Yii3, то на какой версии Laravel я полностью перейду на Yii3? 🧐
😁49🤡19👍5❤2🔥2