Совет по Laravel💡
Уникальные идентификаторы запросов
Вам когда-нибудь требовалось создать код уникального идентификатора для запроса, например, для целей кэширования? Laravel поставляется с методом «fingerprint», который позволяет вам генерировать уникальный идентификатор для ваших запросов 🚀
#laravel
Совет по Laravel💡
Если вы хотите автоматически удалять старые записи, воспользуйтесь трейтом Prunable. Не нужно писать собственные команды.
#Laravel
Для уязвимостей PHP2Shell анонсирован первый эксплоит, обходящий рандомизацию адресов
Исследователи из компании VulnCheck заявили о получении первого эксплоита для уязвимости PHP2Shell (CVE-2026-109618б), обходящего механизм рандомизации адресов (ASLR) на системах x86-64 с типовой конфигурацией PHP. Эксплоит позволяет атаковать системы с PHP 8.4.10-8.4.26 в конфигурации по умолчанию. Ранее трудность определения раскладки памяти в модуле mod_php мешала реализации эксплоита, позволяющего добиться выполнения кода на реальных системах. Для обхода ASLR в эксплоите задействована утечка информации об адресах в коде отображения информации об ошибках.
Полный текст:
https://opennet.ru/66529/
https://opennet.me/66529/
Уязвимость в PHP, потенциально позволяющая скомпрометировать любой PHP-сайт
Разработчики PHP анонсировали публикации сегодня в 17:00 (MSK) экстренных корректирующих выпусков (8.5.12, 8.4.27, 8.3.36 и 8.2.35), в которых будут устранены две критические уязвимости. Всем администраторам серверов с PHP рекомендовано незамедлительно установить исправления на своих системах, сразу после их появления. Официально детали будут раскрыты только после появления исправлений, но судя по появившейся в открытом доступе информации, речь про уязвимости CVE-2026-109618 и CVE-2026-109619, потенциально позволяющие удалённо выполнить свой код на любом сервере, выполняющем PHP-скрипты. Проблема проявляется во всех версиях, начиная с PHP 5.4.
Полный текст:
https://opennet.ru/66516/
https://opennet.me/66516/
💡 Совет для Laravel‑разработчиков
Используйте Crypt facade — он уже есть в Laravel:
- Работает на вашем APP_KEY
- Шифрует данные через AES‑256‑CBC
- Защищает от подделки (MAC) 🔐
Храните API‑токены, пароли и секреты безопасно — прямо из коробки.
🐘 Что нового в PHP 8.6
Релиз запланирован на 19 ноября 2026 года, сейчас версия проходит бета-тестирование.
Из интересного:
* Частичное применение функций — можно заранее передать часть аргументов, оставив остальные на потом:
$makeSlug = str_replace(' ', '-', ?);
echo $makeSlug('Hello World'); // Hello-World
clamp(150, min: 0, max: 100) вернёт 100.
Приглашаем на курс для прокачки навыков архитектора и проектировщика, которые важны для профессионального роста программиста.
🌐 С курсом «Системный дизайн высоконагруженных проектов» вы:
▪️изучите ключевые фундаментальные паттерны и получите навыки проектирования проектов с миллионной аудиторией (балансировка, масштабирование апп/кешей/субд, высокая доступность и кластерные решения, шардинг, CAP/PACELS, консистентность, саги, транзакционные очереди и многое другое)
▪️поупражняетесь в проектировании и получите обратную связь на реальных задачах: магазин/маркетплейс, такси/доставка, обьявления, соцсети, дейтинг, игры, википедия, мессенжер, CDN, хранилище файлов, онлайн-кинотеатр, счетчики, удаленный мониторинг, интеграционные вебхуки, рассылки и тд.
▪️ научитесь планировать нагрузку и связывать
бизнес-показатели с нефункциональными требованиями к системе
▪️ попрактикуемся в проведении и прохождения секций системного дизайна на интервью.
Всё в формате живых онлайн-сессий (лекции, брейнштормы, презентации домашних проектов).
🤩 Кто мы: R&D-центр Devhands.ru. Основатель школы и автор курса Алексей Рыбак, ex-СТО Badoo, с 20-летним опытом высоконагруженных проектов и управления глобальными технологическими организациями.
🗓 phpshka">Старт 7 сентября, изучаем программу, записываемся здесь
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqvimBRf
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: /channel/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: /channel/+S4hinvO3QI43ZjNi
Kubernetes: t.me/kubernetc
GameDev: /channel/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка Frontend: /channel/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: /channel/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Сегодня я покажу вам простой, но мощный способ, как ускорить отладку в Laravel при работе с большим количеством логики в контроллерах и сервисах.
🔍 Ловим баги быстрее с помощью ray() от Spatie
Обычно мы используем dd() или dump() в Laravel, чтобы посмотреть, что творится с переменными. Но как только проект становится крупнее — эти методы начинают мешать, особенно когда нужно отслеживать несколько значений в разных местах.
Спасает Ray — инструмент от Spatie, который интегрируется с Laravel и выводит отладочную информацию в отдельное десктопное приложение.
Пример:
ray($user);
ray($order)->blue();
ray()->showQueries();
composer require spatie/laravel-ray --dev
config/ray.php можно кастомизировать поведение: включать Ray только на dev-среде, логировать только определённые запросы и т.д.ray()-лог, не ломая исполнение и не мешая другим.
Читать полностью…
Сегодня покажу вам простой, но очень удобный приём, который помогает наводить порядок в больших PHP-проектах — использование кастомных коллекций вместо массивов.
Если вы когда-нибудь передавали в методы или возвращали из них массивы с объектами, то наверняка сталкивались с ситуацией, когда непонятно, что в массиве лежит. А потом кто-нибудь передал туда строку или null — и привет, баги.
Я стал использовать свои классы коллекций. Простой пример:
class UserCollection
{
/** @var User[] */
private array $users = [];
public function __construct(array $users = [])
{
foreach ($users as $user) {
$this->add($user);
}
}
public function add(User $user): void
{
$this->users[] = $user;
}
public function all(): array
{
return $this->users;
}
public function filterByActive(): self
{
return new self(array_filter($this->users, fn(User $u) => $u->isActive()));
}
// и так далее
}
User[], я работаю с UserCollection. Это сразу даёт:filterByActive, sortByName, first() и т.д.),
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
В IT прокачивается тот, кто каждый день видит сильные идеи, новые инструменты, реальные задачи, вакансии и разборы.
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/java_library
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: /channel/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка Frontend: /channel/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: @courses
ИТ-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Пока кто-то листает шум, ты будешь видеть инструменты, задачи и идеи, которые помогают расти в профессии.
⚙️ Phiki
Phiki помогает подсветить синтаксис. Написан на PHP. Он использует файлы грамматики TextMate и темы Visual Studio Code для генерации кода с подсветкой синтаксиса для веба.
Название и публичный API Phiki во многом вдохновлены Shiki — пакетом, который делает примерно то же самое в экосистеме JavaScript. Реализация пакета также во многом вдохновлена vscode-textmate — мощным пакетом, лежащим в основе Visual Studio Code, Shiki и других инструментов.
🔗 Github
Совет по Laravel 💡
Знаете ли вы, что... вы можете временно отключить timestamps при сохранении модели?
Один человек написал код, который сегодня работает на 20+ млрд устройств
Даниэль Стенберг начал cURL в 1996 году как маленькую утилиту для скачивания файлов из интернета.
Без большой команды. Без венчурных денег. Без хайпа. Просто писал open-source инструмент в свободное время.
Почти 30 лет спустя cURL стал тихим фундаментом интернета.
Он есть в iPhone, Android, PlayStation, Tesla, серверах, приложениях, сайтах и куче устройств, о которых мы даже не думаем. Его используют Spotify, YouTube, Netflix, Instagram и тысячи других сервисов.
NASA даже использовала cURL на марсианском вертолёте Ingenuity.
То есть код Стенберга буквально летал на другой планете.
Самое безумное - первые 23 года он не зарабатывал на cURL ничего. Триллионные компании строили продукты на его коде, а он продолжал бесплатно поддерживать проект и отвечать на баг-репорты.
В 2017 году король Швеции вручил ему премию Полхема - впервые в истории эту награду получил open-source проект.
В 2019 году Стенберг наконец начал работать над cURL фултайм в wolfSSL. В 2025 году получил золотую медаль IVA от Королевской шведской академии инженерных наук.
Но по сути ничего не изменилось: он всё ещё пишет код из домашнего офиса в Стокгольме и сам отвечает на GitHub issues.
Почти 30 лет человек делал инструмент, который работает в фоне и держит огромную часть интернета.
Без громких презентаций.
Без миллиардных раундов.
Просто хороший код, который пережил почти всё.
✨ Советы по Laravel ✨
Если вы создаете API в своем проекте:
🪐 Применяйте версионирование в самом первом релизе
🪐 Поддерживайте чистоту в routes/api.php, создавая разные файлы маршрутов для каждой версии👇
🧹 Более чистый код, 📈 Лучшие результаты
🔴 Собес на PHP-разработчика с экс-лидом из Bumble в субботу в 15:00
7 ноября (в эту субботу!) в 15:00 мск приходи онлайн на открытое собеседование. Посмотришь, как проходит настоящее интервью на Middle PHP-разработчика
Как это будет:
📂 Глеб Виноградов, Staff Software Engineer в Ad Tyres International, ex-Lead в Bumble, проведёт собес. У Глеба больше 11 лет в разработке. В Bumble он 4 года писал бэкенд для приложений Bumble и Badoo
📂 Глеб задаст реальные вопросы с технических секций и прокомментирует ответы
📂 В конце можно будет задать ему любой вопрос
Ещё одна уязвимость в PHP, в редких конфигурациях позволяющая удалённо выполнить код
Разработчики проекта PHP предупредили о выявлении ещё одной уязвимости (CVE-2026-115560), которая потенциально может использоваться для удалённого выполнения кода на сервере при определённом редком сочетании нестандартных настроек (не в конфигурации по умолчанию) и выполняемого PHP-кода. Подробности о уязвимости намерены опубликовать после готовности очередных корректирующих выпусков PHP.
Полный текст:
https://opennet.ru/66534/
https://opennet.me/66534/
✔️ В PHP устранили критическую уязвимость, найденную ИИ-моделями
ИБ-специалисты в программе Patch the Planet нашли серьёзную брешь в кодовой базе PHP, задевающую все популярные CMS, которая существовала более десяти лет. На момент публикации команда PHP выпустила экстренные обновления безопасности.
На устранение ушло два месяца и пять этапов согласований между мейнтейнерами языка, Calif, Wiz, Cloudflare, CISA и Белым домом, и OpenAI предлагает закрепить эту схему типовым регламентом для раскрытия найденных ИИ проблем безопасности.
Разработчикам и администраторам советуют проверить серверы, для аудита запущенных установок PHP на GitHub выложен диагностический инструмент.
openai.com
✔️ ElevenLabs выпустила сквозную голосовую модель Eleven Realtime
Модель ведёт двусторонний разговор в реальном времени и вышла в версиях Mini для простых сценариев и Max для сложных диалогов с вызовом инструментов.
Заявлена поддержка больше 90 языков и каталог на 17 тысяч голосов. Перебивания, паузы и наложение голосов модель разбирает сама, так что отдельные модели распознавания и синтеза речи не нужны.
В бенчмарке Artificial Analysis старшая Max дала точность рассуждений 98,8% при средней задержке ответа 0,57 секунды, тогда как Qwen Audio 3.0 Realtime Plus набрала близкие 99,2%, но отвечала за 1,54 секунды.
Доступ открыт через ElevenAgents и Realtime API, причём транспортный уровень совместим со спецификацией WebSocket от OpenAI, поэтому готовые клиентские SDK работают без переписывания кода.
elevenlabs.io
✔️ Intel и AMD упростят разработку ИИ на процессорах x86
Компании договорились свести наработки по ускорению PyTorch в открытую библиотеку глубокого обучения oneDNN, которую развивают под эгидой Unified Acceleration Foundation.
Так они рассчитывают убрать разнобой в программной части экосистемы x86, а саму oneDNN признали библиотекой по умолчанию для оптимизации ИИ-задач на процессорах обоих производителей. AMD уже переносит наработки из ZenDNN в кодовую базу oneDNN и входит в управляющий комитет.
Кроме унификации нынешних средств компании проектируют набор инструкций следующего поколения AI Compute Extensions для аппаратного ускорения матричного умножения, его поддержку в PyTorch тоже обещают через oneDNN.
intel.com
✔️ Google и PyTorch открыли код TorchTPU
Набор инструментов для запуска конвейеров PyTorch на тензорных процессорах опубликован в открытом доступе, и это переводит TPU в разряд полноправных ускорителей наравне с процессорами и видеокартами.
Существующий код запускается с минимальными правками, разработчикам доступны режим отладки, компиляция и примитивы распределённых вычислений.
Инициативу поддержали ключевые проекты открытого ИИ - в transformers добавили выгрузку моделей, а движки vLLM и SGLang получили бэкенды для TPU с непрерывной пакетной обработкой и ядрами Pallas.
google.com
✔️ Uber чистит свои репозитории от мёртвого кода агентами
Внутренняя платформа AutoClean непрерывно убирает устаревшие фича-флаги и мёртвый код, с её помощью уже вычищено 16 тысяч флагов и больше миллиона строк.
Агент разбирает контекст и цепочки вызовов, а точечную булеву алгебру и упрощение условий отдаёт движку PolyglotPiranha через протокол MCP, упавшие в CI тесты правят агенты без прав на продуктовый код.
Готовые патчи проходят многоступенчатую проверку, где параллельные агенты смотрят, сохранена ли семантика программы, держится ли фокус строго на целевом флаге и нет ли посторонних правок.
При расхождениях патч отбрасывается сам, а прошедшие проверку задачи уходят инженерам на окончательное утверждение.
uber.com
@ai_machinelearning_big_data
#news #ai #ml
💡 Совет для Laravel‑разработчиков
Используйте Crypt facade — он уже есть в Laravel:
- Работает на вашем APP_KEY
- Шифрует данные через AES‑256‑CBC
- Защищает от подделки (MAC) 🔐
Храните API‑токены, пароли и секреты безопасно — прямо из коробки.
🤖 ИИ-агенты заходят непосредственно в workflow разработки как цифровые сотрудники
В SourceCraft агент получает задачу прямо из GitLab и работает с ней как отдельный участник команды: выполняет поручение под собственной учётной записью и отправляет результат на code review.
Причём workflow не обрывается, если контекста недостаточно. Агент может сам запросить у разработчиков дополнительные данные или согласование и продолжить работу после ответа.
Для команд также доступно подключение собственных агентов — в том числе созданных в Yandex AI Studio.
💡Совет по Laravel
Знаешь ли ты, что можно выбрасывать исключения условно всего в одну строку с помощью throw_if() — идеально для лаконичного кода в контроллерах и сервисах.
Сегодня хочу рассказать вам про одну ошибку, которую я часто встречаю у начинающих PHP-разработчиков — неправильную работу с датами и временем.
Когда вы используете функции вроде date(), strtotime(), time() напрямую без явной установки временной зоны (timezone), ваш код может начать вести себя непредсказуемо. Особенно если ваш проект запущен на серверах в разных регионах.
Чтобы избежать проблем:
- Всегда задавайте временную зону явно через date_default_timezone_set('Your/Timezone'); в начале вашего приложения.
- Или лучше используйте объекты DateTime и DateTimeZone, они гораздо удобнее для работы с временными зонами и манипуляциями с датами.
Пример хорошего подхода:
$date = new DateTime('now', new DateTimeZone('Europe/Moscow'));
echo $date->format('Y-m-d H:i:s');
И еще одна рекомендация — всегда храните даты в базе данных в формате UTC, а уже при выводе преобразовывайте их в нужную временную зону для пользователя.
Небольшая дисциплина в работе с временем сэкономит вам кучу нервов в будущем. Проверено на реальных проектах!
Сегодня я покажу вам, как удобно логировать в Laravel, не засоряя код и не превращая проект в болото из Log::info() на каждом шагу.
💡 Используем каналы логирования правильно
Laravel предоставляет мощную систему логирования на базе Monolog. Но часто мы ограничиваемся дефолтным логом. А зря.
Например, создаём отдельный канал для логов оплаты:
// config/logging.php
'channels' => [
'payment' => [
'driver' => 'single',
'path' => storage_path('logs/payment.log'),
'level' => 'info',
],
],
Log::channel('payment')->info('Платёж прошёл', ['user_id' => $user->id, 'amount' => $amount]);
laravel.log остаётся только то, что важно для всего проекта, а логи оплаты — отдельно. Можно и в телеграм скидывать, если настроить webhook.
if (!function_exists('payment_log')) {
function payment_log($message, array $context = []) {
\Log::channel('payment')->info($message, $context);
}
}
payment_log('Платёж принят').
Есть возможность поработать на Кипре в одной из самых крупных фантех компаний с говорящим названием — Stripchat 😏
Нанимают senior-инженеров в направлениях: Backend, Frontend и QA.
Как вы понимаете, продукт востребованный, с миллионами активных пользователей.
Задачи: проектирование сервисов, масштабирование платформы, решение ежедневных хайлоад-задач. 200k+ RPS, распределённые системы, event-driven архитектура (PHP, Go).
Обещают полную релокацию на Кипр, EU-контракт, жилье на первое время.
Узнать детали и откликнуться можно тут
Сегодня покажу вам простую, но мощную технику, которая может прокачать ваш PHP-код — Value Object вместо простых типов.
Мы часто передаём параметры как string, int, array. Всё просто и понятно. Но как только бизнес-логика усложняется — типы начинают нас подводить.
Допустим, у вас есть метод:
function sendSms(string $phoneNumber, string $message): void
phoneNumber передаётся в неправильном формате? Или вовсе пустым? Или из другой страны, а вы это не предусмотрели?
final class PhoneNumber
{
public function __construct(private string $number)
{
if (!preg_match('/^\+7\d{10}$/', $number)) {
throw new InvalidArgumentException('Invalid phone number');
}
}
public function value(): string
{
return $this->number;
}
}
function sendSms(PhoneNumber $phoneNumber, Message $message): void
email вместо phone.
🔥 Как избежать проблем с isset() и empty() в PHP?
Сегодня разберём две часто используемые функции в PHP — isset() и empty(), которые могут вести себя не так, как вы ожидаете.
📌 isset()
Функция isset($var) проверяет, была ли переменная установлена и не равна ли она null.
❗ Пример подвоха:
$var = null;
var_dump(isset($var)); // false
false. empty() empty($var) проверяет, считается ли переменная "пустой". "" (пустая строка)0 (число)"0" (строка с нулём)nullfalse[] (пустой массив)
$var = "0";
var_dump(empty($var)); // true, хотя строка не null
if (!isset($var) || empty($var)) может привести к неожиданному результату.
if ($var === null) { /* Переменная null */ }
if ($var === '') { /* Пустая строка */ }
if ($var === 0) { /* Число 0 */ }
if (count($var) === 0) { /* Массив пуст */ }
isset() и empty(), а проверяйте переменные строго!
Читать полностью…
Оптимизация скорости работы PHP кода 🏎️
Сегодня я покажу вам несколько простых, но эффективных способов ускорить выполнение PHP-скриптов. Оптимизация кода – важная часть работы разработчика, ведь никто не любит медленные сайты. 🚀
🔥 1. Избегайте лишних запросов к БД
Частая ошибка – несколько одинаковых запросов к базе данных в одном запросе. Используйте кэширование (Redis, Memcached), а если данные редко меняются – сохраняйте их в файл.
🔥 2. Используйте isset() вместо array_key_exists()
Функция isset() работает быстрее, чем array_key_exists(), потому что она не только проверяет наличие ключа, но и сразу его значение.
// Медленный вариант
if (array_key_exists('key', $array)) { }
// Быстрый вариант
if (isset($array['key'])) { }
foreach при больших объемах данных array_map() или array_walk() – они работают быстрее за счет встроенной оптимизации в C. require, include, require_once и include_once может сильно повлиять на производительность. require_once проверяет, был ли уже подключен файл, что замедляет выполнение. Если точно знаете, что файл не дублируется – используйте require. php.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1
json_encode() вместо serialize() json_encode() работает быстрее, чем serialize(), и при этом генерирует более компактные данные.
$data = ['name' => 'John', 'age' => 25];
// Медленный вариант
$serialized = serialize($data);
// Быстрый вариант
$json = json_encode($data);
✔️ Machine Learning Roadmap: нормальная карта входа в ML без сказок про «выучить нейросети за месяц»
Большой русскоязычный roadmap по машинному обучению: от первого import numpy до LLM, RAG, fine-tuning, AI-агентов и MLOps.
И это не просто очередной список ссылок в стиле «посмотри 40 курсов и станешь ML engineer». Внутри нормальная структура: что учить, в каком порядке, зачем это нужно и какой практический артефакт должен появиться после каждого этапа.
Roadmap разбит на 7 треков:
- фундамент: Python, математика, статистика, инструменты
- классический ML: scikit-learn, табличные данные, метрики, валидация
- Deep Learning: PyTorch, CNN, RNN, training loop
- LLM и трансформеры: attention, KV-cache, RAG, LoRA, агенты
- Generative AI: изображения, видео, аудио, мультимодальность
- MLOps и прод: Docker, Kubernetes, CI/CD, мониторинг, serving
- специализация: CV, NLP, RecSys, RL, Safety
Самое полезное - там честно написано, что ML это не только «обучить модель». В реальности большая часть работы живёт вокруг данных, метрик, деплоя, мониторинга, воспроизводимости и понимания, почему модель вообще ошибается.
Хорошая мысль из roadmap: LLM не делает джуна сениором. Она ускоряет того, кто понимает базу. Без базы человек просто превращается в оператора Copilot, который не может объяснить, почему модель сломалась.
По времени тоже без инфоцыганства:
- 0-3 месяца: кодинг, математика, классический ML
- 3-6 месяцев: Deep Learning и PyTorch
- 6-12 месяцев: LLM, RAG, fine-tuning, AI-агенты
- 12+ месяцев: MLOps, прод, масштабирование, специализация
Короче, если давно хотели системно зайти в ML, а не прыгать между роликами про ChatGPT, Stable Diffusion и «топ-10 библиотек», это хороший ориентир.
https://github.com/justxor/MachineLearningRoadmap/tree/main
Совет по PHP/Laravel 💡
Вместо того чтобы выполнять цикл `foreach` по массиву для поиска значения записи, вы можете использовать метод Laravel Collection `contains()`.
👣 На Stepik обновили курс «Rust: полный курс разработчика. С нуля до профи»
Представьте: через три месяца вы открываете чужой Rust-код и читаете его как книгу.
Arc<Mutex<T>> не вызывает панику. impl Future не пугает. Вы точно знаете, почему компилятор ругается и как это починить за 10 секунд.
Это не фантазия. Это результат 50 уроков, в которых каждая концепция объясняется через код и закрепляется практикой. Ownership, traits, generics, async, unsafe - всё, что казалось магией, станет рабочим инструментом.
А бонусом - портфолио проектов: от CLI-утилит до REST API и WebAssembly.
Вы и так знаете, что Rust - ваш следующий язык. Этот курс просто сделает это реальностью.
Сегодня - 55% процентов от цены, торопись: https://stepik.org/a/269250/