🤔 Repository в Laravel: паттерн или антипаттерн?
Eloquent — это Active Record. Когда ты оборачиваешь его в репозиторий и возвращаешь User::where(...)->get(), ты не абстрагируешься от ORM. Ты просто перекладываешь Eloquent в другой класс.
Настоящий репозиторий возвращает доменные объекты, а не модели с методами ->save() и ->delete().
💬 Что думаете?
🐸 Библиотека пхпшника
#междусобойчик
Eloquent — это Active Record. Когда ты оборачиваешь его в репозиторий и возвращаешь User::where(...)->get(), ты не абстрагируешься от ORM. Ты просто перекладываешь Eloquent в другой класс.
Настоящий репозиторий возвращает доменные объекты, а не модели с методами ->save() и ->delete().
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👏5👍3😁1
🦾 Надоело чинить «упавших» ИИ-агентов после каждого микросбоя внешних сервисов?
Анонсируем старт продаж большого курса по AgentOps. Мы собрали опыт десятков разработчиков и сделали программу, которая учит выводить ИИ в стабильный прод.
🗓 Ждем вас 28 апреля в 19:00 МСК на эфире: «Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены».
👉 Кто вещает и в чем польза?
Спикер Кирилл Кухарев (Senior AI Engineer в Raft, спикер AI Conf и Highload++). Он реализовал более 50 коммерческих проектов в GenAI и на вебинаре покажет, как взять под контроль работу нескольких агентов, чтобы они не перекидывали друг другу лишний контекст и не сжигали ваши деньги.
В прямом эфире разберем:
• Как формируется контекст в LLM при маршрутизации между агентами;
• Куда утекают лишние токены и возникает перерасход;
• Практические методы: как сжимать историю, грамотно делить задачи, лимитировать передачу контекста и собирать промпты прямо в процессе запроса пользователя.
🔥 Два способа получить максимум:
1. Приходите на вебинар 28 апреля. Дарим участникам промокод на 5.000 ₽ (работает 3 дня после эфира - это шанс забрать курс по самому низу рынка).
2. Выбирайте Инженерный трек. В подарок к нему идет полный доступ к записям и автопроверкам завершенного курса «Разработка ИИ-агентов».
👉 Занять место на вебинаре и стать профи в AgentOps
Анонсируем старт продаж большого курса по AgentOps. Мы собрали опыт десятков разработчиков и сделали программу, которая учит выводить ИИ в стабильный прод.
🗓 Ждем вас 28 апреля в 19:00 МСК на эфире: «Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены».
Спикер Кирилл Кухарев (Senior AI Engineer в Raft, спикер AI Conf и Highload++). Он реализовал более 50 коммерческих проектов в GenAI и на вебинаре покажет, как взять под контроль работу нескольких агентов, чтобы они не перекидывали друг другу лишний контекст и не сжигали ваши деньги.
В прямом эфире разберем:
• Как формируется контекст в LLM при маршрутизации между агентами;
• Куда утекают лишние токены и возникает перерасход;
• Практические методы: как сжимать историю, грамотно делить задачи, лимитировать передачу контекста и собирать промпты прямо в процессе запроса пользователя.
🔥 Два способа получить максимум:
1. Приходите на вебинар 28 апреля. Дарим участникам промокод на 5.000 ₽ (работает 3 дня после эфира - это шанс забрать курс по самому низу рынка).
2. Выбирайте Инженерный трек. В подарок к нему идет полный доступ к записям и автопроверкам завершенного курса «Разработка ИИ-агентов».
👉 Занять место на вебинаре и стать профи в AgentOps
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1😁1
Сколько среди нас
Понятно, что грейд — довольно относительная история, но примерно ваш грейд:
🔥 — Senior
👍🏼 — Middle
❤️ — Junior
😁 — Ещё учусь
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥92👍79😁19❤17👾6
🏃♀️ Уже завтра стартует курс по разработке AI-агентов.
Про AI-агентов часто думают, что это просто модная обертка над джпт для пет-проектов. Кажется, прикрутил API к скрипту и типа готово. А вот и нет! Когда дело доходит до прода, начинаются настоящие проблемы.
Эту инженерную часть мы и будем разбирать на курсе. Будем учиться интегрировать внешние API, работать с RAG, LangGraph, CrewAI и деплоить всё это так, чтобы работало как часы.
Стартуем завтра. Для участия и доступа к программе переходите по ссылке.
Про AI-агентов часто думают, что это просто модная обертка над джпт для пет-проектов. Кажется, прикрутил API к скрипту и типа готово. А вот и нет! Когда дело доходит до прода, начинаются настоящие проблемы.
Зачем глубоко копать мультиагентные системы, если можно обойтись старым добрым кодом? Как контролировать расходы на токены, чтобы новая фича не разорила бизнес? Как заставить агента работать стабильно и предсказуемо, а не галлюцинировать?
Эту инженерную часть мы и будем разбирать на курсе. Будем учиться интегрировать внешние API, работать с RAG, LangGraph, CrewAI и деплоить всё это так, чтобы работало как часы.
Стартуем завтра. Для участия и доступа к программе переходите по ссылке.
🥱1
🐘 Меняем директивы PHP на лету
Знаете, что можно изменить параметры среды выполнения прямо в рантайме без перезапуска сервера и правки конфигов?
🔹 Зачем это нужно
— ini_set() меняет параметры для текущего запроса: удобно для скриптов с нестандартными требованиями к памяти или таймаутам.
— ini_get() покажет реальное значение, которое видит ваш процесс, а не то, что вы написали в конфиге три года назад.
— Мгновенно отвечает на вопрос «а почему memory_limit игнорируется?»
— Работает без доступа к серверу, рестартов и DevOps-тикетов.
🔹 Как использовать
Посмотреть реальное значение директивы:
Переопределить на лету для тяжёлого импорта:
Дамп всех активных настроек:
Только настройки конкретного расширения:
Проверить, откуда пришло значение — из php.ini, .htaccess или кода:
⚠️ Не все директивы можно менять через ini_set(), каждая имеет уровень доступа. Если ini_set() возвращает false — директива системная, её меняет только php.ini или конфиг пула php-fpm. Смотрите поле access в выводе ini_get_all(): 1 — можно из кода, 2 — только .htaccess/пул, 4 — только php.ini, 7 — везде.
Знаете, что можно изменить параметры среды выполнения прямо в рантайме без перезапуска сервера и правки конфигов?
🔹 Зачем это нужно
— ini_set() меняет параметры для текущего запроса: удобно для скриптов с нестандартными требованиями к памяти или таймаутам.
— ini_get() покажет реальное значение, которое видит ваш процесс, а не то, что вы написали в конфиге три года назад.
— Мгновенно отвечает на вопрос «а почему memory_limit игнорируется?»
— Работает без доступа к серверу, рестартов и DevOps-тикетов.
🔹 Как использовать
Посмотреть реальное значение директивы:
echo ini_get('memory_limit'); // '128M'Переопределить на лету для тяжёлого импорта:
ini_set('memory_limit', '512M');
ini_set('max_execution_time', '300');Дамп всех активных настроек:
phpprint_r(ini_get_all());
Только настройки конкретного расширения:
phpprint_r(ini_get_all('session'));Проверить, откуда пришло значение — из php.ini, .htaccess или кода:
php$all = ini_get_all(null, true);
print_r($all['memory_limit']);
// ['global_value' => '128M', 'local_value' => '512M', 'access' => 7]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1🔥1🥱1
⚡️ Мы рады представить команду экспертов курса AgentOps!
— Дмитрий Антипов расскажет, как грамотно проверить работу AI-моделей
— Курилл Кухарев поделится, почему компаниям выгодно использовать локальные модели и как их развернуть
— Андрей Носов расскажет, как работать с данными и знаниями в AI-системах: построение RAG, выбор подходов к поиску и организация хранения данных
— Антон Будняк разберет, как обеспечить устойчивость сервиса, в котором используется ИИ
— Александр Ошурков расскажет, как оценивать качество работы LLM в backend-сервисах
— Екатерина Трофимов разберет, как проектировать инструменты для AI-агентов и выстраивать взаимодействие с внешними сервисами
Курс для backend-разработчиков, тимлидов и LLM инженеров о том, как внедрять AI-логику в бэкенд IT-продуктов и сохранять стабильность сервиса.
К концу обучения вы получите:
• Структурированный подход к архитектуре и деплою AI-агентов
• Навыки настройки мониторинга, тестирования и контроля расходов на токены
• Разбор сложных инженерных кейсов из реальной практики
🎁 Доступ к материалам курса «Разработка ИИ-агентов» в подарок при покупке Инженерного трека
👉 Все подробности и программа обучения.
— Дмитрий Антипов расскажет, как грамотно проверить работу AI-моделей
— Курилл Кухарев поделится, почему компаниям выгодно использовать локальные модели и как их развернуть
— Андрей Носов расскажет, как работать с данными и знаниями в AI-системах: построение RAG, выбор подходов к поиску и организация хранения данных
— Антон Будняк разберет, как обеспечить устойчивость сервиса, в котором используется ИИ
— Александр Ошурков расскажет, как оценивать качество работы LLM в backend-сервисах
— Екатерина Трофимов разберет, как проектировать инструменты для AI-агентов и выстраивать взаимодействие с внешними сервисами
Курс для backend-разработчиков, тимлидов и LLM инженеров о том, как внедрять AI-логику в бэкенд IT-продуктов и сохранять стабильность сервиса.
К концу обучения вы получите:
• Структурированный подход к архитектуре и деплою AI-агентов
• Навыки настройки мониторинга, тестирования и контроля расходов на токены
• Разбор сложных инженерных кейсов из реальной практики
🎁 Доступ к материалам курса «Разработка ИИ-агентов» в подарок при покупке Инженерного трека
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱3😁1
Forwarded from Библиотека собеса по PHP | вопросы с собеседований
Оба инструмента для
Gate —
// Определяем в AuthServiceProvider
Gate::define('access-admin-panel', function (User $user) {
return $user->is_admin;
});
// Проверяем
if (Gate::allows('access-admin-panel')) { ... }
// или в контроллере
$this->authorize('access-admin-panel');
Policy —
// php artisan make:policy PostPolicy --model=Post
class PostPolicy
{
public function update(User $user, Post $post): bool
{
return $user->id === $post->user_id;
}
public function delete(User $user, Post $post): bool
{
return $user->id === $post->user_id || $user->is_admin;
}
}
// Использование
$this->authorize('update', $post);
Правило выбора
— Нет модели →
— Есть модель, несколько действий →
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1🔥1
JSON-файлы с высокой вложенностью часто сложно прочитать.
𝐉𝐬𝐨𝐧𝐂𝐫𝐚𝐜𝐤 создает графические диаграммы из JSON-файлов и делает их легко читаемыми.
Кроме того, созданные диаграммы можно скачать в виде изображений.
Также поддерживает YAML и XML форматы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1😁1
🔥 Вечный вопрос PHP-разработчика
Наш подписчик спрашивает:
💬 Делитесь в комментариях
— Как вы работаете с легаси: рефакторинг кусками или полный переезд?
— Как убеждали руководство выделить время на технический долг?
— Есть ли у вас правило: когда код точно пора переписывать?
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
#междусобойчик
Наш подписчик спрашивает:
«Работаю в компании 2 года. Достался огромный легаси-проект на PHP 7.1. Всё в кучу, тесты не писались никогда. Меня просят его "улучшать" параллельно с фичами. Как вообще подступиться? Рефакторить по-тихому или настаивать на переписывании? И как объяснить бизнесу, что технический долг — это реальная проблема, а не моё нытьё?»
— Дмитрий, PHP Developer
— Как вы работаете с легаси: рефакторинг кусками или полный переезд?
— Как убеждали руководство выделить время на технический долг?
— Есть ли у вас правило: когда код точно пора переписывать?
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9❤2👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
👏2❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🥱2🤔1
Тема:
Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены
В кружке Кирилл Кухарев рассказал, какие именно подходы будем разбирать.
👉 Занять место на вебинаре
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Топ-вакансий по PHP за неделю
Fullstack разработчик PHP — от 180 000 до 230 000 ₽ — удалёнка
Backend-разработчик — от 1 800 до 3 100 $ — удалёнка
Team Lead PHP — до 402 000 ₽ — удалёнка
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Fullstack разработчик PHP — от 180 000 до 230 000 ₽ — удалёнка
Backend-разработчик — от 1 800 до 3 100 $ — удалёнка
Team Lead PHP — до 402 000 ₽ — удалёнка
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Forwarded from Библиотека задач по PHP | тесты, код, задания
Команда git cherry-pick A..B выбирает коммиты:
Anonymous Quiz
62%
От A до B включая обе границы
14%
От A до B не включая A, то есть коммиты A+1, ..., B
10%
Только коммит B
14%
Все коммиты между A и B в обратном порядке не включая границы
👍5🔥2
⚡️ Laravel: withCount() вместо with() для агрегатов
with('orders') подгружает всю коллекцию моделей в память. Если нужна только цифра — это избыточно.
❌ Антипаттерн
✅ Правильно
Доступные хелперы одного семейства:
Каждый из них транслируется в коррелированный подзапрос.
А цепочка из нескольких всё равно будет одни основным SELECT'ом.
Применимо когда:
— рендеришь список с агрегированными метриками;
— строишь API без лишних аллокаций;
— профилируешь и видишь with() там, где нужна только цифра.
with('orders') подгружает всю коллекцию моделей в память. Если нужна только цифра — это избыточно.
❌ Антипаттерн
$users = User::with('orders')->get();
// Eloquent грузит все связанные модели в память
// затем PHP считает count() на уже загруженной коллекции
foreach ($users as $user) {
echo $user->orders->count();
}✅ Правильно
$users = User::withCount('orders')->get();
// Генерирует подзапрос: SELECT count(*) as orders_count
// Один SQL-запрос, ноль лишних объектов в памяти
foreach ($users as $user) {
echo $user->orders_count;
}Доступные хелперы одного семейства:
User::withSum('orders', 'total') // orders_sum_total
User::withAvg('reviews', 'rating') // reviews_avg_rating
User::withMin('orders', 'total') // orders_min_total
User::withMax('orders', 'total') // orders_max_totalКаждый из них транслируется в коррелированный подзапрос.
А цепочка из нескольких всё равно будет одни основным SELECT'ом.
Применимо когда:
— рендеришь список с агрегированными метриками;
— строишь API без лишних аллокаций;
— профилируешь и видишь with() там, где нужна только цифра.
❤6👍4🔥1🥱1
🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ
Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории LAMBDA. Она объединяет глубокую академическую экспертизу и практику: знает, как ИИ-системы устроены «под капотом» и как встроить их в реальные проекты (в т.ч. для Т-банка).
Мы попросили Екатерину собрать список мастхев материалов для тех, кто хочет проектировать агентов в проде. Сохраняйте список.
🛠 Стек и фреймворки:
DSPy — алгоритмическая оптимизация промптов (вместо ручного подбора слов).
Semantic Kernel и LangMem — инструменты для управления сессионной и долгосрочной памятью.
MCP (Model Context Protocol) — новый стандарт от Anthropic для подключения агентов к вашим БД и локальным файлам.
📖 Документация, которую нужно знать:
Anthropic Prompt Caching — как кэшировать контекст и радикально резать косты на API.
OpenAI Agents SDK / Cookbook — лучшие практики работы с памятью.
Augment — платформа для оптимизации работы ИИ-агентов и контроля токенов.
🔬 Хардкорные статьи и препринты (на выходные):
Lost in the Middle — почему LLM «слепнут» на длинных текстах и забывают середину контекста.
How Do Coding Agents Spend Your Money? — куда улетает бюджет при работе автономных кодинг-агентов.
MemGPT — архитектура операционной системы для LLM с иллюзией бесконечной памяти.
InjecAgent / AgentSentry — всё о безопасности и защите агентов от инъекций в промпты.
Екатерина Трофимова — один из ключевых экспертов нашего курса AgentOps. На своих лекциях она детально разбирает, как проектировать инструменты для агентов, как агент принимает решения о вызове инструментов и какие ограничения возникают в реальном проде
🎁 Акция в честь старта продаж!
Прямо сейчас при покупке Инженерного трека вы получаете полный доступ к материалам курса «Разработка ИИ-агентов» в подарок.
👉 Забрать 2 курса по цене 1 и начать обучение
Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории LAMBDA. Она объединяет глубокую академическую экспертизу и практику: знает, как ИИ-системы устроены «под капотом» и как встроить их в реальные проекты (в т.ч. для Т-банка).
Мы попросили Екатерину собрать список мастхев материалов для тех, кто хочет проектировать агентов в проде. Сохраняйте список.
🛠 Стек и фреймворки:
DSPy — алгоритмическая оптимизация промптов (вместо ручного подбора слов).
Semantic Kernel и LangMem — инструменты для управления сессионной и долгосрочной памятью.
MCP (Model Context Protocol) — новый стандарт от Anthropic для подключения агентов к вашим БД и локальным файлам.
📖 Документация, которую нужно знать:
Anthropic Prompt Caching — как кэшировать контекст и радикально резать косты на API.
OpenAI Agents SDK / Cookbook — лучшие практики работы с памятью.
Augment — платформа для оптимизации работы ИИ-агентов и контроля токенов.
🔬 Хардкорные статьи и препринты (на выходные):
Lost in the Middle — почему LLM «слепнут» на длинных текстах и забывают середину контекста.
How Do Coding Agents Spend Your Money? — куда улетает бюджет при работе автономных кодинг-агентов.
MemGPT — архитектура операционной системы для LLM с иллюзией бесконечной памяти.
InjecAgent / AgentSentry — всё о безопасности и защите агентов от инъекций в промпты.
Екатерина Трофимова — один из ключевых экспертов нашего курса AgentOps. На своих лекциях она детально разбирает, как проектировать инструменты для агентов, как агент принимает решения о вызове инструментов и какие ограничения возникают в реальном проде
🎁 Акция в честь старта продаж!
Прямо сейчас при покупке Инженерного трека вы получаете полный доступ к материалам курса «Разработка ИИ-агентов» в подарок.
👉 Забрать 2 курса по цене 1 и начать обучение
❤1