На собеседовании обычно всё внимание сосредоточено на вас: опыт, проекты, навыки. Но важно помнить — интервью это обоюдный процесс. Вы тоже выбираете компанию. И тут возникает вопрос: а что спрашивать в ответ?
Вопросы к HR:
• Как устроен процесс адаптации новых сотрудников?
• Какие возможности для роста есть у специалистов на моей позиции?
• Как компания относится к переработкам и work-life balance?
• Есть ли внутреннее обучение или компенсация внешних курсов?
Вопросы к будущей команде:
• Как проходит рабочий день: митинги, планирования, коммуникация?
• Как распределяются задачи и кто принимает решения по приоритетам?
• Как команда решает конфликты или технические споры?
• Чем гордятся в проекте, а что считают слабым местом?
👉 Какие вопросы вы задаёте на собеседованиях?
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🎯 Команда дня: Сжатие и минификация CSS/JS через Node или PHP
📌 Команда (Node.js + Terser для JS):
💡 Команда минифицирует ваш JavaScript, сокращает код и уменьшает размер файлов, используя Terser.
📌 Команда (Node.js + CleanCSS для CSS):
💡 Минифицирует CSS, удаляя пробелы, комментарии и упрощая записи, что ускоряет загрузку страницы.
🔍 Зачем это нужно?
🔹 Ускорение загрузки страниц: Меньший размер JS и CSS сокращает время передачи данных.
🔹 Оптимизация производительности: Минифицированный код обрабатывается браузером быстрее.
🔹 Чистый продакшн: Убираются ненужные пробелы и комментарии, что делает код компактным.
⚙️ Дополнительные опции Terser:
Пример с source map:
⚙️ Дополнительные опции CleanCSS:
Пример:
💡 Советы:
Для больших проектов удобно автоматизировать минификацию через npm scripts или Gulp/Webpack.
Минифицируйте только для production, чтобы не усложнять отладку на development.
Используйте source maps для удобного дебага минифицированного кода.
📌 Команда (Node.js + Terser для JS):
npx terser src/app.js -o dist/app.min.js -c -m
💡 Команда минифицирует ваш JavaScript, сокращает код и уменьшает размер файлов, используя Terser.
📌 Команда (Node.js + CleanCSS для CSS):
npx clean-css-cli -o dist/style.min.css src/style.css
💡 Минифицирует CSS, удаляя пробелы, комментарии и упрощая записи, что ускоряет загрузку страницы.
🔍 Зачем это нужно?
🔹 Ускорение загрузки страниц: Меньший размер JS и CSS сокращает время передачи данных.
🔹 Оптимизация производительности: Минифицированный код обрабатывается браузером быстрее.
🔹 Чистый продакшн: Убираются ненужные пробелы и комментарии, что делает код компактным.
⚙️ Дополнительные опции Terser:
-c
или --compress
: Сжимает код, удаляя лишние конструкции.-m
или --mangle
: Переименовывает переменные и функции, уменьшая размер.--source-map
: Генерирует source map для удобного дебага минифицированного кода.Пример с source map:
npx terser src/app.js -o dist/app.min.js -c -m --source-map
⚙️ Дополнительные опции CleanCSS:
--compatibility
— задаёт совместимость с браузерами.--level
— уровень оптимизации (1 или 2).Пример:
npx clean-css-cli -o dist/style.min.css src/style.css --level 2
💡 Советы:
Для больших проектов удобно автоматизировать минификацию через npm scripts или Gulp/Webpack.
Минифицируйте только для production, чтобы не усложнять отладку на development.
Используйте source maps для удобного дебага минифицированного кода.
❤1👍1
🔥 Последняя неделя перед стартом курса по AI-агентам
Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
Промокод на 5.000₽: LASTCALL
👉 Курс здесь
Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
Промокод на 5.000₽: LASTCALL
👉 Курс здесь
🚀 PHP Enums: когда стоит, а когда нет
Enums в PHP — это не просто «ещё один класс», а особый тип данных, который позволяет жёстко зафиксировать набор возможных значений. Это повышает надёжность кода и избавляет от лишних проверок вроде
Но ✋ не спешите вставлять их повсюду:
❌ Если набор значений часто меняется или расширяется пользователями/третьими системами.
❌ Если список тривиален и не планируется расти.
❌ При рефакторинге легаси — Enums не для того, чтобы заменить всё подряд.
🔑 Где Enum действительно уместен
Фиксированные списки (статусы поста, роли пользователей, сетевые состояния).
Там, где нужна строгая типизация и меньше защитного кода.
В DDD — как часть доменной модели (например, value objects).
⚡ Бонусы:
Меньше ручных проверок и исключений.
Код становится чище, предсказуемее.
Удобнее работать с типами при сериализации, хранении в БД и локализации.
💡 Практика:
Для хранения в базе → используйте backed enum (
Для сложной логики или локализации → лучше чистый enum с методами (
Договоритесь в команде о единых правилах (например, всегда использовать метод
🔗 Читать статью
Библиотека пхпшника
Enums в PHP — это не просто «ещё один класс», а особый тип данных, который позволяет жёстко зафиксировать набор возможных значений. Это повышает надёжность кода и избавляет от лишних проверок вроде
in_array()
или громоздких switch
-конструкций.Но ✋ не спешите вставлять их повсюду:
❌ Если набор значений часто меняется или расширяется пользователями/третьими системами.
❌ Если список тривиален и не планируется расти.
❌ При рефакторинге легаси — Enums не для того, чтобы заменить всё подряд.
🔑 Где Enum действительно уместен
Фиксированные списки (статусы поста, роли пользователей, сетевые состояния).
Там, где нужна строгая типизация и меньше защитного кода.
В DDD — как часть доменной модели (например, value objects).
⚡ Бонусы:
Меньше ручных проверок и исключений.
Код становится чище, предсказуемее.
Удобнее работать с типами при сериализации, хранении в БД и локализации.
💡 Практика:
Для хранения в базе → используйте backed enum (
enum UserRole: string
).Для сложной логики или локализации → лучше чистый enum с методами (
label()
).Договоритесь в команде о единых правилах (например, всегда использовать метод
label()
).🔗 Читать статью
Библиотека пхпшника
🔥2
NumPower — сложные вычисления на PHP
Расширение PHP для эффективных научных вычислений и работы с массивами данных с поддержкой GPU.
Посмотрите эту простую нейронную сеть, созданную на PHP с нуля с помощью NumPower.
🔗 Github
Библиотека пхпшника
#инструменты
Расширение PHP для эффективных научных вычислений и работы с массивами данных с поддержкой GPU.
Посмотрите эту простую нейронную сеть, созданную на PHP с нуля с помощью NumPower.
🔗 Github
Библиотека пхпшника
#инструменты
❤8😁2
Forwarded from Библиотека задач по PHP | тесты, код, задания
Какой из следующих методов используется для отправки электронной почты в Laravel?
Anonymous Quiz
27%
sendMail()
30%
send()
14%
dispatchMail()
29%
mail()
🌚4❤1
🚦 composer/semver — библиотека для работы с версиями
Эта библиотека стоит за самим Composer и отвечает за то, чтобы корректно сравнивать версии пакетов и интерпретировать условия вроде
Что умеет:
📌 Проверять, подходит ли версия под ограничение
🔢 Сортировать список версий по семантическим правилам
🛠️ Разбирать сложные условия (
Зачем это вам?
⚙️ Можно встроить в свои скрипты проверки зависимостей.
🧪 Удобно для CI/CD — проверять версии PHP или расширений.
🚀 Используется самим Composer, так что поведение будет на 100% совпадать.
🔗 Github
Библиотека пхпшника
#инструменты
Эта библиотека стоит за самим Composer и отвечает за то, чтобы корректно сравнивать версии пакетов и интерпретировать условия вроде
^7.4 || ^8.0
.Что умеет:
📌 Проверять, подходит ли версия под ограничение
🔢 Сортировать список версий по семантическим правилам
🛠️ Разбирать сложные условия (
>=
, <=
, ||
, -dev
, beta
) так же, как это делает Composer.Зачем это вам?
⚙️ Можно встроить в свои скрипты проверки зависимостей.
🧪 Удобно для CI/CD — проверять версии PHP или расширений.
🚀 Используется самим Composer, так что поведение будет на 100% совпадать.
🔗 Github
Библиотека пхпшника
#инструменты
❤1
📚 Генераторы и их мифы: как экономия памяти на самом деле работает
Недавняя статья о «ленивых вычислениях в PHP» поднимала популярную тему: генераторы экономят память. Однако, как это часто бывает, под видом оптимизации скрывается простая подмена понятий.
🔍 Про генераторы
Генераторы — полезный инструмент в программировании, который активно используется, например, в Symfony. Они помогают решать задачи от управления ходом выполнения программы до добавления элементов в массив «на лету». Однако утверждение, что генераторы экономят память, — это миф. Реальная экономия памяти происходит благодаря принципу «чтение данных по одной записи», а генератор всего лишь маскирует обычный цикл и упрощает код.
🛠️ Как это работает на практике
Генератор помогает писать более чистый и понятный код, но сам по себе он не освобождает память. Это работает только в случае, когда код уже использует массивы — генератор позволяет их заменить, не теряя в производительности. Но не нужно воспринимать это как «магическую» экономию памяти. В действительности, экономия происходит за счет потоковой обработки данных.
📝 Про статью
Статья предлагает пример «реального кейса из продакшена», который на самом деле лишь подтверждает подмену понятий. Автор рассказывает, как генераторы могут сократить использование памяти, но на деле это не так. Интересно, что после критики статьи автор изменил нарратив и признал, что экономия памяти достигается через стриминг данных.
⚙️ Про генеративный ИИ
Это также напоминает ситуацию с генеративным ИИ: если им пользуется профессионал, он становится мощным инструментом для ускорения рутинных процессов. Но если подходить без должного понимания и контекста, ИИ может превратить программиста в просто оператора, который слепо повторяет ответы, не проверяя их на ошибки. И в таком случае результат — не решение задачи, а её иллюзия.
👉 Хабр
Библиотека пхпшника
Недавняя статья о «ленивых вычислениях в PHP» поднимала популярную тему: генераторы экономят память. Однако, как это часто бывает, под видом оптимизации скрывается простая подмена понятий.
🔍 Про генераторы
Генераторы — полезный инструмент в программировании, который активно используется, например, в Symfony. Они помогают решать задачи от управления ходом выполнения программы до добавления элементов в массив «на лету». Однако утверждение, что генераторы экономят память, — это миф. Реальная экономия памяти происходит благодаря принципу «чтение данных по одной записи», а генератор всего лишь маскирует обычный цикл и упрощает код.
🛠️ Как это работает на практике
Генератор помогает писать более чистый и понятный код, но сам по себе он не освобождает память. Это работает только в случае, когда код уже использует массивы — генератор позволяет их заменить, не теряя в производительности. Но не нужно воспринимать это как «магическую» экономию памяти. В действительности, экономия происходит за счет потоковой обработки данных.
📝 Про статью
Статья предлагает пример «реального кейса из продакшена», который на самом деле лишь подтверждает подмену понятий. Автор рассказывает, как генераторы могут сократить использование памяти, но на деле это не так. Интересно, что после критики статьи автор изменил нарратив и признал, что экономия памяти достигается через стриминг данных.
⚙️ Про генеративный ИИ
Это также напоминает ситуацию с генеративным ИИ: если им пользуется профессионал, он становится мощным инструментом для ускорения рутинных процессов. Но если подходить без должного понимания и контекста, ИИ может превратить программиста в просто оператора, который слепо повторяет ответы, не проверяя их на ошибки. И в таком случае результат — не решение задачи, а её иллюзия.
👉 Хабр
Библиотека пхпшника
❤5👏1
🐞 Тренировка по дебагу
Если ваши коллеги пишут идеальный код, пора развивать навыки поиска ошибок.
Чтобы стать мастером отладки, важно не только понимать, как писать правильный код, но и уметь находить и исправлять ошибки, которые могут скрываться даже в самых «идеальных» решениях.
Для этого можно использовать промпт:
С каждым багом вы становитесь только сильнее.
Библиотека пхпшника
Если ваши коллеги пишут идеальный код, пора развивать навыки поиска ошибок.
Чтобы стать мастером отладки, важно не только понимать, как писать правильный код, но и уметь находить и исправлять ошибки, которые могут скрываться даже в самых «идеальных» решениях.
Для этого можно использовать промпт:
Ты — эксперт по созданию ошибок в коде на PHP, умеющий писать код, который выглядит функциональным, но содержит тонкие и значимые ошибки. Твоя цель — создавать фрагменты кода на PHP, содержащие конкретные типы ошибок, позволяя пользователям тренировать свои навыки отладки и проверки кода. Код должен быть синтаксически правильным, но семантически ошибочным.
Напиши функцию на PHP, которая <ДЕЛАЕТ ЧТО-ТО>. Включи как минимум три различных ошибки, которые разработчик может часто допускать при реализации этой функции. Ошибки должны приводить к некорректным результатам или потенциальным ошибкам времени выполнения.
С каждым багом вы становитесь только сильнее.
Библиотека пхпшника
😁2
🚀 How to: Реализация JWT аутентификации с использованием Symfony
Этот гайд поможет настроить JWT аутентификацию в Symfony для аутентификации пользователей с использованием refresh token. Подход ориентирован на использование Symfony для аутентификации пользователей в сторонних системах.
1️⃣ Установка и настройка Jose JWT Bundle
Для работы с JWT необходимо установить библиотеку web-token/jwt-bundle. Эта библиотека позволяет генерировать и проверять JWT с помощью криптографических ключей.
2️⃣ Генерация ключей
Создаются ключи для подписи JWT и настройки их в Symfony. Важно хранить эти ключи в безопасном месте и не коммитить их в систему контроля версий.
3️⃣ Конфигурация
В файле конфигурации Symfony указываются пути к сгенерированным ключам и настраиваются параметры для их использования в процессе подписи и верификации JWT.
4️⃣ Создание Refresh Token
Для реализации механизма обновления JWT необходимо создать сущность refresh token, который будет храниться в базе данных. Эти токены позволят пользователю получать новые JWT при истечении срока действия старых.
5️⃣ Генерация и обмен JWT
Создается сервис, который генерирует JWT для пользователя и обменивает refresh token на новый JWT при его истечении.
6️⃣ Создание конечных точек (Endpoints)
Настроить маршруты для:
1. Объявления публичного ключа.
2. Запроса начального JWT и refresh token.
3. Обмена refresh token на новый JWT.
7️⃣ Ротация ключей и безопасность
Рекомендуется регулярно менять ключи и настроить удаление просроченных refresh token с помощью cron-задач. Важно обеспечить высокую безопасность системы и провести тщательное тестирование.
👉 Читать полную статью
Библиотека пхпшника
Этот гайд поможет настроить JWT аутентификацию в Symfony для аутентификации пользователей с использованием refresh token. Подход ориентирован на использование Symfony для аутентификации пользователей в сторонних системах.
1️⃣ Установка и настройка Jose JWT Bundle
Для работы с JWT необходимо установить библиотеку web-token/jwt-bundle. Эта библиотека позволяет генерировать и проверять JWT с помощью криптографических ключей.
2️⃣ Генерация ключей
Создаются ключи для подписи JWT и настройки их в Symfony. Важно хранить эти ключи в безопасном месте и не коммитить их в систему контроля версий.
3️⃣ Конфигурация
В файле конфигурации Symfony указываются пути к сгенерированным ключам и настраиваются параметры для их использования в процессе подписи и верификации JWT.
4️⃣ Создание Refresh Token
Для реализации механизма обновления JWT необходимо создать сущность refresh token, который будет храниться в базе данных. Эти токены позволят пользователю получать новые JWT при истечении срока действия старых.
5️⃣ Генерация и обмен JWT
Создается сервис, который генерирует JWT для пользователя и обменивает refresh token на новый JWT при его истечении.
6️⃣ Создание конечных точек (Endpoints)
Настроить маршруты для:
1. Объявления публичного ключа.
2. Запроса начального JWT и refresh token.
3. Обмена refresh token на новый JWT.
7️⃣ Ротация ключей и безопасность
Рекомендуется регулярно менять ключи и настроить удаление просроченных refresh token с помощью cron-задач. Важно обеспечить высокую безопасность системы и провести тщательное тестирование.
👉 Читать полную статью
Библиотека пхпшника
❤3
📶 Паттерны коммуникации в распределенных системах
Распределенные системы состоят из многих отдельных частей/узлов, работающих вместе, но физически расположенных в разных местах. Эти части системы должны общаться друг с другом через сеть, чтобы система могла функционировать как единое целое.
Хотя коммуникация критически важна, правильно ее организовать бывает непросто: разработчики иногда пытаются использовать один и тот же подход ко всем задачам коммуникации, что может быть неэффективно. Важно понимать, что существуют разные способы организации коммуникации, и выбор правильного метода зависит от конкретной задачи. Рассмотрим основные паттерны коммуникации, которые можно использовать для решения разных задач.
☑️ Запрос-ответ с HTTP
Этот синхронный паттерн коммуникации предполагает, что один сервис отправляет запрос другому сервису и ожидает ответа или ошибки, блокируя свою работу до получения результата. REST, наиболее популярный архитектурный стиль для этой модели коммуникации, использует методы протокола HTTP — GET, POST, PUT и DELETE.
Однако использование этого паттерна может привести к проблемам, если сервисы образуют цепочку взаимодействий: в таком случае сбой одного из сервисов может привести к отказу всей операции, а также к расточительному использованию ресурсов и каскадным сбоям.
☑️ Общие данные
Этот паттерн часто остается незамеченным, поскольку разработчики не всегда воспринимают его как модель коммуникации. В рамках этого подхода один компонент записывает данные в определенное место, а другой компонент считывает и обрабатывает эти данные. Например, один сервис может загрузить файл в облачное объектное хранилище (например, в корзину Amazon S3), а другой сервис затем извлекает этот файл для дальнейших действий.
Главное преимущество этого паттерна — простота реализации и возможность обеспечения взаимодействия между устаревшими и современными системами без проблем совместимости. Однако он не подходит для сценариев, требующих низкой задержки.
☑️ Асинхронный запрос-ответ
В отличие от синхронного подхода, запрос-ответ может быть реализован асинхронно и без блокировки. В этом случае получающий сервис должен явно знать место назначения для отправки ответа. Для реализации этого паттерна идеально подходят очереди сообщений, которые позволяют буферизовать несколько запросов.
Основная сложность здесь — корреляция между запросом и ответом: экземпляр сервиса, отправивший запрос, может отличаться от экземпляра, получающего ответ, поэтому требуется способ отслеживания запросов.
☑️ Коммуникация на основе событий
В этом подходе сервисы не общаются напрямую друг с другом, а генерируют события, которые могут быть использованы другими сервисами. Это требует наличия места для отправки данных о событиях и механизма, позволяющего получающим сервисам обнаруживать эти события. Брокеры сообщений, такие как RabbitMQ, могут обрабатывать оба этих аспекта. Издатели используют API для отправки событий в брокер, который управляет подписками и уведомляет подписчиков при поступлении события.
Этот паттерн идеально подходит для создания слабосвязанных взаимодействий между сервисами. Однако брокер сообщений должен обеспечивать надежную доставку событий, их упорядочивание и согласованность. Кроме того, добавляется дополнительный компонент в систему.
👨💻 Подробнее читайте в статье.
Распределенные системы состоят из многих отдельных частей/узлов, работающих вместе, но физически расположенных в разных местах. Эти части системы должны общаться друг с другом через сеть, чтобы система могла функционировать как единое целое.
Хотя коммуникация критически важна, правильно ее организовать бывает непросто: разработчики иногда пытаются использовать один и тот же подход ко всем задачам коммуникации, что может быть неэффективно. Важно понимать, что существуют разные способы организации коммуникации, и выбор правильного метода зависит от конкретной задачи. Рассмотрим основные паттерны коммуникации, которые можно использовать для решения разных задач.
☑️ Запрос-ответ с HTTP
Этот синхронный паттерн коммуникации предполагает, что один сервис отправляет запрос другому сервису и ожидает ответа или ошибки, блокируя свою работу до получения результата. REST, наиболее популярный архитектурный стиль для этой модели коммуникации, использует методы протокола HTTP — GET, POST, PUT и DELETE.
Однако использование этого паттерна может привести к проблемам, если сервисы образуют цепочку взаимодействий: в таком случае сбой одного из сервисов может привести к отказу всей операции, а также к расточительному использованию ресурсов и каскадным сбоям.
☑️ Общие данные
Этот паттерн часто остается незамеченным, поскольку разработчики не всегда воспринимают его как модель коммуникации. В рамках этого подхода один компонент записывает данные в определенное место, а другой компонент считывает и обрабатывает эти данные. Например, один сервис может загрузить файл в облачное объектное хранилище (например, в корзину Amazon S3), а другой сервис затем извлекает этот файл для дальнейших действий.
Главное преимущество этого паттерна — простота реализации и возможность обеспечения взаимодействия между устаревшими и современными системами без проблем совместимости. Однако он не подходит для сценариев, требующих низкой задержки.
☑️ Асинхронный запрос-ответ
В отличие от синхронного подхода, запрос-ответ может быть реализован асинхронно и без блокировки. В этом случае получающий сервис должен явно знать место назначения для отправки ответа. Для реализации этого паттерна идеально подходят очереди сообщений, которые позволяют буферизовать несколько запросов.
Основная сложность здесь — корреляция между запросом и ответом: экземпляр сервиса, отправивший запрос, может отличаться от экземпляра, получающего ответ, поэтому требуется способ отслеживания запросов.
☑️ Коммуникация на основе событий
В этом подходе сервисы не общаются напрямую друг с другом, а генерируют события, которые могут быть использованы другими сервисами. Это требует наличия места для отправки данных о событиях и механизма, позволяющего получающим сервисам обнаруживать эти события. Брокеры сообщений, такие как RabbitMQ, могут обрабатывать оба этих аспекта. Издатели используют API для отправки событий в брокер, который управляет подписками и уведомляет подписчиков при поступлении события.
Этот паттерн идеально подходит для создания слабосвязанных взаимодействий между сервисами. Однако брокер сообщений должен обеспечивать надежную доставку событий, их упорядочивание и согласованность. Кроме того, добавляется дополнительный компонент в систему.
👨💻 Подробнее читайте в статье.
☀️ Лето — время для отдыха или время для работы
Летний сезон — это время, когда хочется забыть обо всём и просто расслабиться. Но с другой стороны, может быть, именно летом стоит больше работать и развивать свои пет-проекты.
Без перезагрузки не будет долгосрочной эффективности. Лето — отличное время, чтобы восстановить силы и зарядиться энергией на будущие проекты.
В условиях высокой конкуренции важно не упускать ни одного дня. Лето — это отличный момент, чтобы посвятить время собственным проектам и развитию.
Работать не означает только трудиться. Можно провести время, развивая собственные идеи и обучаясь новому, что даст возможность сделать перерыв и одновременно развиваться.
💬 Что вы делали прошедшим летом? Делитесь в комментариях 👇
🐸 Библиотека пхпшника
#междусобойчик
Летний сезон — это время, когда хочется забыть обо всём и просто расслабиться. Но с другой стороны, может быть, именно летом стоит больше работать и развивать свои пет-проекты.
Без перезагрузки не будет долгосрочной эффективности. Лето — отличное время, чтобы восстановить силы и зарядиться энергией на будущие проекты.
В условиях высокой конкуренции важно не упускать ни одного дня. Лето — это отличный момент, чтобы посвятить время собственным проектам и развитию.
Работать не означает только трудиться. Можно провести время, развивая собственные идеи и обучаясь новому, что даст возможность сделать перерыв и одновременно развиваться.
💬 Что вы делали прошедшим летом? Делитесь в комментариях 👇
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
📅 24 сентября в 19:00 МСК — бесплатный вебинар с Максимом Шаланкиным.
Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта».
🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций.
🔹 Чем они отличаются от ChatGPT и обычных ботов.
🔹 Как работает цикл агента: восприятие → планирование → действие → обучение.
🔹 Живое демо простого агента.
🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%.
Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏
👉 Регистрируйтесь через форму на лендинге
Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта».
🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций.
🔹 Чем они отличаются от ChatGPT и обычных ботов.
🔹 Как работает цикл агента: восприятие → планирование → действие → обучение.
🔹 Живое демо простого агента.
🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%.
Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏
👉 Регистрируйтесь через форму на лендинге
😢1
Post-PHP эра: куда движется веб-разработка?
Недавно снова подняли старую, уже ставшую классикой, тему: «PHP умер». Да, иногда кажется, что PHP — это как бессмертный персонаж, которого постоянно хоронят. Но вот вам цифры и факты, которые подтверждают обратное.
🟡 PHP жив и развивается. На более чем 76% серверов используется именно PHP. И это не пустые слова, ведь с каждым релизом он становится только быстрее. Только посмотрите на рост производительности: Laravel на PHP 8.3 стал быстрее на 38%, Drupal — на 52%, а Symfony — на 27%.
🟡 Современные фреймворки такие как Laravel и Symfony уже давно перешли в категорию зрелых решений для больших систем. Laravel Octane, например, работает с Swoole и RoadRunner, что делает его идеальным для асинхронных приложений.
🟡 Серьезные улучшения: строгая типизация, перечисления (enum'ы), readonly-поля и асинхронность через Fibers делают код намного более структурированным и предсказуемым.
👉 Почему стартапы идут в TypeScript + Node.js? Да, для быстрого старта и MVP это хорошее решение. Но что происходит дальше, когда приходит время масштабироваться? В этом случае PHP с Laravel или Symfony выигрывает за счет зрелости, модульности и предсказуемости архитектуры.
🔎 Итак, какой вывод?
PHP не умер, он стал просто стабильным и предсказуемым. Laravel и Symfony стали не просто инструментами для быстрого старта, а настоящими платформами для создания серьезных проектов.
🔗 Хабр
Недавно снова подняли старую, уже ставшую классикой, тему: «PHP умер». Да, иногда кажется, что PHP — это как бессмертный персонаж, которого постоянно хоронят. Но вот вам цифры и факты, которые подтверждают обратное.
🟡 PHP жив и развивается. На более чем 76% серверов используется именно PHP. И это не пустые слова, ведь с каждым релизом он становится только быстрее. Только посмотрите на рост производительности: Laravel на PHP 8.3 стал быстрее на 38%, Drupal — на 52%, а Symfony — на 27%.
🟡 Современные фреймворки такие как Laravel и Symfony уже давно перешли в категорию зрелых решений для больших систем. Laravel Octane, например, работает с Swoole и RoadRunner, что делает его идеальным для асинхронных приложений.
🟡 Серьезные улучшения: строгая типизация, перечисления (enum'ы), readonly-поля и асинхронность через Fibers делают код намного более структурированным и предсказуемым.
👉 Почему стартапы идут в TypeScript + Node.js? Да, для быстрого старта и MVP это хорошее решение. Но что происходит дальше, когда приходит время масштабироваться? В этом случае PHP с Laravel или Symfony выигрывает за счет зрелости, модульности и предсказуемости архитектуры.
🔎 Итак, какой вывод?
PHP не умер, он стал просто стабильным и предсказуемым. Laravel и Symfony стали не просто инструментами для быстрого старта, а настоящими платформами для создания серьезных проектов.
🔗 Хабр
🥱11👍8🔥2🌚2
⚡️ Бесплатный вебинар — ИИ-агенты: новая фаза развития AI
24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале.
Тема:
На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского.
Подробности рассказываем в гс выше — включай, чтобы не пропустить.
24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале.
Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».
На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского.
Подробности рассказываем в гс выше — включай, чтобы не пропустить.