Распределяет клиентские запросы между серверами, выбирая их по алгоритму, чтобы равномерно распределять нагрузку, избегать перегрузок и обеспечивать стабильную работу системы.
Он получает запрос, перенаправляет его на сервер, принимает ответ и отправляет его обратно клиенту.
Это увеличивает пропускную способность, снижает задержки и оптимизирует использование ресурсов.
Работают как посредники между клиентами и серверами, обрабатывая запросы и передавая данные, скрывая серверы и повышая их безопасность.
Они обеспечивают контроль за сетевым трафиком, снижая риски атак и угроз.
Дополнительно, они могут кэшировать контент для уменьшения нагрузки на сервер, сжимать данные для ускорения передачи и управлять SSL/TLS-шифрованием, разгружая веб-серверы.
Работают как единая точка входа для всех API-запросов, направляя их к нужным микросервисам и собирая результаты.
Они упрощают взаимодействие клиентов с разными сервисами, добавляют защиту, применяют правила, переводят между веб-протоколами и агрегируют данные.
Идеально подходят для работы с микросервисной архитектурой.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3❤2
Вы годами живёте в Service Container, пишете Form Requests на автомате и знаете, где у Laravel «магия». Вопрос не в том, умеете ли вы, — а в том, как быстро вы смапите привычные концепции на чужой стек, когда прилетит проект на NestJS.
Deva Jayantha сделал именно это: не туториал «с нуля», а таблицу перевода Laravel → NestJS по девяти осям:
— Service Container vs явная регистрация провайдеров в модулях;
— Form Request vs связка DTO + class-validator + Pipe;
— Middleware vs Guards/Pipes/Interceptors (и почему middleware в Nest только про логирование и CORS);
— Eloquent (Active Record) vs TypeORM (Data Mapper);
— Exception handler vs Exception Filters.
Главный сдвиг парадигмы: «convention over configuration» против «explicit over implicit». Всё, что Laravel делает за вас неявно, Nest требует объявить руками и это не хуже, это другая философия с другими trade-offs для больших модульных кодовых баз.
Ничего революционного там не найти, но за 15 минут можно получить готовую ментальную модель, которая сэкономит день онбординга на TypeScript-проекте. Полезно и как аргументация в спорах «а почему у нас Laravel».
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4❤2👍1🔥1
⌨️ Топ-вакансий по PHP за неделю
Middle Fullstack Developer (PHP/Laravel + React) — от 2000 до 2700 $ — удалёнка
Fullstack-разработчик (PHP, JS) — удалёнка/гибрид (Казань) — Danaflex
Senior Backend разработчик (PHP) — удалёнка — MPSTATS
➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Middle Fullstack Developer (PHP/Laravel + React) — от 2000 до 2700 $ — удалёнка
Fullstack-разработчик (PHP, JS) — удалёнка/гибрид (Казань) — Danaflex
Senior Backend разработчик (PHP) — удалёнка — MPSTATS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Forwarded from Библиотека задач по PHP | тесты, код, задания
Почему never называют bottom-типом и где это используется при наследовании?
Anonymous Quiz
34%
Он эквивалентен void
32%
Он подтип любого типа
18%
Он запрещает наследование класса
16%
Работает только в final-классах
🔥2👍1👏1
🏗 Fat controller, fat model, fat service — выбери, где тебе будет больно
Бизнес-логику нужно куда-то положить. Вечный спор не про «как правильно», а про то, какую боль ты выбираешь осознанно.
🔹 В контроллере.
Быстро на старте, через полгода контроллер на 400 строк, логику нельзя переиспользовать из консольной команды, тесты требуют поднимать HTTP-слой. Боль: дублирование и непереиспользуемость.
🔹 В модели (Active Record).
Логика рядом с данными, удобно. Но модель начинает знать про отправку писем, платёжные шлюзы и очереди. God-object, который тащит за собой полприложения в каждый тест. Боль: связность.
🔹 В сервисах / Action-классах.
Логика отделена от транспорта и от хранилища, тестируется на чистых данных. Цена — больше файлов и дисциплина, чтобы сервис не превратился в свалку из 30 методов. Боль: дисциплина.
Практичная середина, которая выживает дольше всего: тонкий контроллер (валидация + вызов), модель хранит данные и простые инварианты, Action/сервис держит сценарий. Один use-case — один класс с одним публичным методом. Растёт линейно, читается за минуту, тестируется без фреймворка.
💬 Какие проекты на каком варианте пишете?
Библиотека пхпшника
Бизнес-логику нужно куда-то положить. Вечный спор не про «как правильно», а про то, какую боль ты выбираешь осознанно.
🔹 В контроллере.
Быстро на старте, через полгода контроллер на 400 строк, логику нельзя переиспользовать из консольной команды, тесты требуют поднимать HTTP-слой. Боль: дублирование и непереиспользуемость.
🔹 В модели (Active Record).
Логика рядом с данными, удобно. Но модель начинает знать про отправку писем, платёжные шлюзы и очереди. God-object, который тащит за собой полприложения в каждый тест. Боль: связность.
🔹 В сервисах / Action-классах.
Логика отделена от транспорта и от хранилища, тестируется на чистых данных. Цена — больше файлов и дисциплина, чтобы сервис не превратился в свалку из 30 методов. Боль: дисциплина.
Практичная середина, которая выживает дольше всего: тонкий контроллер (валидация + вызов), модель хранит данные и простые инварианты, Action/сервис держит сценарий. Один use-case — один класс с одним публичным методом. Растёт линейно, читается за минуту, тестируется без фреймворка.
Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2👏1
🔥 ИИ-выходные: Собери своего AI-агента за 2 дня
Хватит просто читать про ИИ, пора собирать автономные системы руками! 1–2 августа пройдет хардкорный онлайн-интенсив для junior-middle разработчиков.
Формат: теория ➡️ сразу практика. Вы будете управлять AI-инструментами.
🛠️ Как всё пройдет:
Для кого: Вы пишете на Python, работаете с Git и терминалом. (С нуля не подойдет, темп очень быстрый!)
Артефакт на выходе: Рабочий репозиторий с вашим агентом, который не стыдно показать команде.
👨💻 Спикер: Алексей Жиряков (Сбер, GenAI).
Места ограничены!
👉 Изучить программу и занять место
Хватит просто читать про ИИ, пора собирать автономные системы руками! 1–2 августа пройдет хардкорный онлайн-интенсив для junior-middle разработчиков.
Формат: теория ➡️ сразу практика. Вы будете управлять AI-инструментами.
🛠️ Как всё пройдет:
День 1 (Суббота): разбираем анатомию агента, подключаем инструменты (shell, GitHub, Postgres) и дебажим трейсы.
День 2 (Воскресенье): собираем собственного агента под вашу задачу, настраиваем Eval + Guardrails (чтобы бот не галлюцинировал) и проводим демо.
Для кого: Вы пишете на Python, работаете с Git и терминалом. (С нуля не подойдет, темп очень быстрый!)
Артефакт на выходе: Рабочий репозиторий с вашим агентом, который не стыдно показать команде.
👨💻 Спикер: Алексей Жиряков (Сбер, GenAI).
Места ограничены!
👉 Изучить программу и занять место
❤1
🤨 Как заставить AI-агента не ломать архитектуру, а нормально писать код?
Мы привыкли общаться с ИИ промптами, но для автономных систем это путь к бесконечным циклам и сливу бюджета. Чтобы убрать хаос, инженеры переходят на Spec-Driven Development (SDD).
Вот как этот подход меняет работу агента на практике:
🔹Контракт вместо текста. Сначала пишется строгая спецификация (JSON-схема/OpenAPI) и автотесты. Агент зажат в рамки интерфейсов, за которые физически не может выйти.
🔹Контроль на шагах. Внутри петли Think-Act-Observe агент сверяет действия со спецификацией.
🔹Саморефлексия. Если ИИ нарушил типы или «додумал» лишнее, тест падает. Агент получает ошибку в контекст и сам правит код, не выходя за рамки ТЗ.
Это лишь база того, как укротить ИИ-разработку. Если вы хотите глубоко внедрить эту методологию, научиться проектировать архитектурные контракты и собирать отказоустойчивые системы — оставляйте заявку на наш новый курс по Spec-Driven Development. Стартуем совсем скоро🙂
Мы привыкли общаться с ИИ промптами, но для автономных систем это путь к бесконечным циклам и сливу бюджета. Чтобы убрать хаос, инженеры переходят на Spec-Driven Development (SDD).
Вот как этот подход меняет работу агента на практике:
🔹Контракт вместо текста. Сначала пишется строгая спецификация (JSON-схема/OpenAPI) и автотесты. Агент зажат в рамки интерфейсов, за которые физически не может выйти.
🔹Контроль на шагах. Внутри петли Think-Act-Observe агент сверяет действия со спецификацией.
🔹Саморефлексия. Если ИИ нарушил типы или «додумал» лишнее, тест падает. Агент получает ошибку в контекст и сам правит код, не выходя за рамки ТЗ.
Это лишь база того, как укротить ИИ-разработку. Если вы хотите глубоко внедрить эту методологию, научиться проектировать архитектурные контракты и собирать отказоустойчивые системы — оставляйте заявку на наш новый курс по Spec-Driven Development. Стартуем совсем скоро🙂
Media is too big
VIEW IN TELEGRAM
🔥 Не называйте любого продвинутого чат-бота «ИИ-агентом»!
Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru, наглядно разбирает уровни абстракции ИИ-продуктов и убирает путаницу в понятиях.
Что внутри видео:
- Почему ассистент и агент принципиально разные сущности;
- Как ассистент может быть просто «обёрткой» над LLM, а может скрывать под капотом сложнейшую мультиагентную систему;
- Как понимать архитектуру глубже, чтобы проектировать сильные решения.
Начните создавать агентные системы с нашего бесплатного демо-урока. Всего за 2 часа разберем внутреннее устройство агента, научим его чинить свой собственный код и сохранять контекст после перезапуска.
🔗 Забрать бесплатный демо-урок
Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru, наглядно разбирает уровни абстракции ИИ-продуктов и убирает путаницу в понятиях.
Что внутри видео:
- Почему ассистент и агент принципиально разные сущности;
- Как ассистент может быть просто «обёрткой» над LLM, а может скрывать под капотом сложнейшую мультиагентную систему;
- Как понимать архитектуру глубже, чтобы проектировать сильные решения.
Начните создавать агентные системы с нашего бесплатного демо-урока. Всего за 2 часа разберем внутреннее устройство агента, научим его чинить свой собственный код и сохранять контекст после перезапуска.
🔗 Забрать бесплатный демо-урок
❤1
Forwarded from Библиотека собеса по PHP | вопросы с собеседований
CPU одного ядра — в полку на несколько секунд. PHP-FPM воркеры заканчиваются, сайт встаёт. И всё из-за одного поля формы 👇
📦 Задание
Форма регистрации компании. Поле «теги деятельности» — строка вида php, backend, api. Сделали «надёжную» валидацию регуляркой. Работало месяцами. Потом сайт начал периодически зависать на 5–10 секунд, мониторинг показывает 100% CPU на одном ядре, а APM — что время уходит внутри preg_match. Воспроизводится только на определённых вводах от пользователей.
// src/Validation/TagsValidator.php
class TagsValidator
{
private const PATTERN = '/^([a-zA-Z0-9]+\s*,?\s*)+$/';
public function validate(string $tags): bool
{
return (bool) preg_match(self::PATTERN, $tags);
}
}
🔹 Задачи
— Объяснить механизм катастрофического бэктрекинга на этом паттерне
— Привести пример строки, которая «вешает» движок регулярных выражений
— Переписать проверку
Ставьте → 🔥 если нравится формат. Если нет → 🌚
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍2👏1🌚1
🐳 Работа с Docker CLI
Собрали образ и он весит 2 ГБ, а вы не понимаете, откуда столько? docker history покажет размер каждого слоя — сразу видно, какая инструкция в Dockerfile раздула образ.
🔹 Зачем это нужно
— Каждая инструкция в Dockerfile создаёт слой, и docker history показывает размер каждого.
— Сразу видно, если COPY затянул 800 МБ зависимостей.
— Помогает оптимизировать порядок слоёв для лучшего кэширования.
🔹 Как использовать
— Посмотреть слои:
— Без обрезки команд:
— Только размеры в human-readable:
— Сравнить два образа: запустите history для обоих и сравните слои.
💡 Если видите большой слой от COPY . . — значит, в контекст сборки попали модули, .git или логи. Проверьте dockerignore, это обычно экономит сотни мегабайт.
Собрали образ и он весит 2 ГБ, а вы не понимаете, откуда столько? docker history покажет размер каждого слоя — сразу видно, какая инструкция в Dockerfile раздула образ.
🔹 Зачем это нужно
— Каждая инструкция в Dockerfile создаёт слой, и docker history показывает размер каждого.
— Сразу видно, если COPY затянул 800 МБ зависимостей.
— Помогает оптимизировать порядок слоёв для лучшего кэширования.
🔹 Как использовать
— Посмотреть слои:
docker history my-image— Без обрезки команд:
docker history --no-trunc my-image— Только размеры в human-readable:
docker history --format "{{.Size}}\t{{.CreatedBy}}" my-image— Сравнить два образа: запустите history для обоих и сравните слои.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1👏1
🚀 Уже завтра стартует новый поток курса «ИИ-агенты»!
Мы собрали мощнейший состав преподавателей. Учить вас проектировать архитектуру и собирать продакшн-агентов будут инженеры и исследователи из топовых IT-компаний.
Старт уже завтра!
Сомневаетесь, подойдет ли вам программа и подача? Начните с бесплатного демо-урока!
Всего за 2 часа вы заглянете под капот ИИ-агента, поймете, чем мышление модели отличается от ее ответа, и научите систему чинить собственный код. Это идеальный способ протестировать нашу платформу перед покупкой.
🔗 Пройти демо-урок и занять место на курсе
Мы собрали мощнейший состав преподавателей. Учить вас проектировать архитектуру и собирать продакшн-агентов будут инженеры и исследователи из топовых IT-компаний.
Старт уже завтра!
Сомневаетесь, подойдет ли вам программа и подача? Начните с бесплатного демо-урока!
Всего за 2 часа вы заглянете под капот ИИ-агента, поймете, чем мышление модели отличается от ее ответа, и научите систему чинить собственный код. Это идеальный способ протестировать нашу платформу перед покупкой.
🔗 Пройти демо-урок и занять место на курсе