Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
💡 Как избавиться от WebSockets и сэкономить $1 млн в год: неожиданные решения для оптимизации
Как снизить расходы на инфраструктуру и повысить эффективность? Оказывается, отказ от WebSockets может сэкономить миллионы. Вместо привычного подхода можно использовать решения, которые не только проще, но и лучше подходят для определённых задач, как, например, асинхронные очереди или SSE.
Знаете ли вы, как выбрать стратегию, которая одновременно сократит затраты и улучшит масштабируемость? Разберитесь в тонкостях оптимизации и найдите способ выжать максимум из вашей системы. 🚀
🔗 Читать статью
🔗 Зеркало
Как снизить расходы на инфраструктуру и повысить эффективность? Оказывается, отказ от WebSockets может сэкономить миллионы. Вместо привычного подхода можно использовать решения, которые не только проще, но и лучше подходят для определённых задач, как, например, асинхронные очереди или SSE.
Знаете ли вы, как выбрать стратегию, которая одновременно сократит затраты и улучшит масштабируемость? Разберитесь в тонкостях оптимизации и найдите способ выжать максимум из вашей системы. 🚀
🔗 Читать статью
🔗 Зеркало
😁9👍3
Лучшая стратегия кэширования Redis в Laravel: Руководство по быстрому и эффективному кэшированию
Redis и Laravel — это сочетание, которое помогает значительно ускорить приложения. Redis, хранилище данных в памяти, идеально подходит для кэширования, особенно когда данные запрашиваются часто и требуют высокой скорости доступа.
Здесь рассмотрены основные стратегии кэширования в Laravel с использованием Redis, включая настройку, управление временем жизни данных и очистку кэша.
Зачем кэшировать с Redis?
Кэширование позволяет временно сохранять данные, что сокращает время, затрачиваемое на запросы к базе данных. Это ускоряет загрузку страниц, снижает нагрузку на сервер и улучшает пользовательский опыт.
Преимущества Redis для кэширования:
🔸Высокая скорость работы с данными.
🔸Поддержка различных структур данных (строки, списки, хэши и др.).
🔸Гибкое управление сроком хранения данных и их удалением.
Redis и Laravel — это сочетание, которое помогает значительно ускорить приложения. Redis, хранилище данных в памяти, идеально подходит для кэширования, особенно когда данные запрашиваются часто и требуют высокой скорости доступа.
Здесь рассмотрены основные стратегии кэширования в Laravel с использованием Redis, включая настройку, управление временем жизни данных и очистку кэша.
Зачем кэшировать с Redis?
Кэширование позволяет временно сохранять данные, что сокращает время, затрачиваемое на запросы к базе данных. Это ускоряет загрузку страниц, снижает нагрузку на сервер и улучшает пользовательский опыт.
Преимущества Redis для кэширования:
🔸Высокая скорость работы с данными.
🔸Поддержка различных структур данных (строки, списки, хэши и др.).
🔸Гибкое управление сроком хранения данных и их удалением.
DEV Community
Best Redis Caching Strategy in Laravel: A Guide to Fast and Efficient Caching
Laravel and Redis are a powerful combination for boosting application speed and performance. Redis,...
👍2🤔2❤1
Настраивать xdebug для первого запуска не нужно вообще! Как в Phpstorm запустить отладку за минуту и без браузера
Многие считают, что добиться успешного запуска отладки xdebug после его установки — тяжело и мучительно. Но на самом деле, сделать первый запуск можно менее чем за минуту, не делая настройки и даже не прикасаясь к конфигурационным файлам .ini (php.ini/xdebug.ini). Как это сделать? Об этом и пойдет речь в этой статье.
Многие считают, что добиться успешного запуска отладки xdebug после его установки — тяжело и мучительно. Но на самом деле, сделать первый запуск можно менее чем за минуту, не делая настройки и даже не прикасаясь к конфигурационным файлам .ini (php.ini/xdebug.ini). Как это сделать? Об этом и пойдет речь в этой статье.
Хабр
Настраивать xdebug для первого запуска не нужно вообще! Как в Phpstorm запустить отладку за минуту и без браузера
Многие считают, что добиться успешного запуска отладки xdebug после его установки - тяжело и мучительно. Но на самом деле, сделать первый запуск можно менее чем за минуту, не делая настройку и даже не...
👍6
Phiki
Это подсветка синтаксиса, написанная на PHP. Он использует грамматические файлы TextMate и темы Visual Studio Code для генерации кода с подсветкой синтаксиса для веб-страниц и терминалов.
Это подсветка синтаксиса, написанная на PHP. Он использует грамматические файлы TextMate и темы Visual Studio Code для генерации кода с подсветкой синтаксиса для веб-страниц и терминалов.
GitHub
GitHub - phikiphp/phiki: Syntax highlighting powered by TextMate grammars in PHP.
Syntax highlighting powered by TextMate grammars in PHP. - phikiphp/phiki
👍5
Что такое идемпотентность метода? Какие HTTP-методы являются идемпотентными для REST?
Идемпотентность метода означает, что повторное применение метода с теми же параметрами не приведет к изменению состояния системы. Другими словами, результат выполнения метода не зависит от количества его вызовов.
В контексте REST-архитектуры, следующие HTTP-методы являются идемпотентными:
1. GET: Получение информации с сервера. Повторный запрос GET не должен иметь никакого влияния на состояние сервера.
2. HEAD: Аналогично методу GET, но без тела ответа. Повторный запрос HEAD также не должен иметь никакого влияния на состояние сервера.
3. PUT: Обновление (или создание) ресурса на сервере. Если запросы PUT повторяются с теми же параметрами, они должны иметь такое же состояние ресурса после каждого выполнения.
4. DELETE: Удаление ресурса на сервере. Повторное выполнение DELETE с теми же параметрами должно иметь то же состояние.
Эти методы идемпотентны, потому что их повторная отправка не изменяет состояние сервера или ресурсов. Это важно для однозначной и предсказуемой работы сервера и клиента при обработке запросов.
#вопросы_с_собеседований
Идемпотентность метода означает, что повторное применение метода с теми же параметрами не приведет к изменению состояния системы. Другими словами, результат выполнения метода не зависит от количества его вызовов.
В контексте REST-архитектуры, следующие HTTP-методы являются идемпотентными:
1. GET: Получение информации с сервера. Повторный запрос GET не должен иметь никакого влияния на состояние сервера.
2. HEAD: Аналогично методу GET, но без тела ответа. Повторный запрос HEAD также не должен иметь никакого влияния на состояние сервера.
3. PUT: Обновление (или создание) ресурса на сервере. Если запросы PUT повторяются с теми же параметрами, они должны иметь такое же состояние ресурса после каждого выполнения.
4. DELETE: Удаление ресурса на сервере. Повторное выполнение DELETE с теми же параметрами должно иметь то же состояние.
Эти методы идемпотентны, потому что их повторная отправка не изменяет состояние сервера или ресурсов. Это важно для однозначной и предсказуемой работы сервера и клиента при обработке запросов.
#вопросы_с_собеседований
👍6
Исправление конфигурации OPcache ускорило работу PHP-приложения в 3 раза
Правильное управление OPcache при атомарных деплойментах позволило:
🔸Ускорить приложение в 3 раза.
🔸Снизить нагрузку на CPU в 10 раз.
🔸Сохранить сотни дней на время загрузки для пользователей.
Проблема
При деплойментах с символьными ссылками OPcache продолжает кэшировать файлы предыдущих релизов, заполняя память. Это снижает эффективность кэша.
Решение
Сбрасывать OPcache при каждом деплойменте с помощью cachetool. Это гарантирует, что файлы нового релиза будут кэшироваться заново.
Настройки OPcache
Настроить объем памяти (
Мониторинг
Добавьте ключевые метрики OPcache (свободная память, hit rate) в систему мониторинга. Это поможет выявлять проблемы и оптимизировать работу.
Правильное управление OPcache при атомарных деплойментах позволило:
🔸Ускорить приложение в 3 раза.
🔸Снизить нагрузку на CPU в 10 раз.
🔸Сохранить сотни дней на время загрузки для пользователей.
Проблема
При деплойментах с символьными ссылками OPcache продолжает кэшировать файлы предыдущих релизов, заполняя память. Это снижает эффективность кэша.
Решение
Сбрасывать OPcache при каждом деплойменте с помощью cachetool. Это гарантирует, что файлы нового релиза будут кэшироваться заново.
Настройки OPcache
opcache.validate_timestamps=0
— отключить проверку временных меток.opcache.file_update_protection=0
— мгновенное кэширование новых файлов.Настроить объем памяти (
opcache.memory_consumption
) и количество файлов (opcache.max_accelerated_files
) для ваших нужд.Мониторинг
Добавьте ключевые метрики OPcache (свободная память, hit rate) в систему мониторинга. Это поможет выявлять проблемы и оптимизировать работу.
👍8🤩1
Forwarded from Библиотека питониста | Python, Django, Flask
Тест: 👨💻🚀 Насколько ты продвинутый разраб?
Говорят, что джун становится мидлом, когда начинает понимать, как мало он знает. Этот тест покажет, насколько ты продвинулся в своём развитии.
👉 Пройти
Говорят, что джун становится мидлом, когда начинает понимать, как мало он знает. Этот тест покажет, насколько ты продвинулся в своём развитии.
👉 Пройти
👍4👾1
Forwarded from DIGITALRAZOR
Что будет, если DigitalRazor объединится с Proglib Academy? Правильно! Новый розыгрыш.
Условия:
Подпишитесь на DigitalRazor;
Подпишитесь на «Библиотеку программиста»;
Нажмите кнопку «Участвовать» под этим постом.
Призы:
1-е место: 27-дюймовый монитор;
2, 3 и 4-е место: сертификат номиналом 20 000 рублей на ИТ-курсы от Proglib Academy;
5-е место: геймерская клавиатура + коврик на выбор.
Призы разыграем 1 декабря в 20:00 (МСК).
Доставка призов возможна только по городам России и Белоруссии.
Proglib Academy создаёт онлайн-курсы для программистов, помогает получить востребованные навыки и построить успешную карьеру в IT.
Игровые компьютеры и рабочие станции DigitalRazor — это качественная сборка, топовое железо и эффектный дизайн.
Регламент розыгрыша
Условия:
Подпишитесь на DigitalRazor;
Подпишитесь на «Библиотеку программиста»;
Нажмите кнопку «Участвовать» под этим постом.
Призы:
1-е место: 27-дюймовый монитор;
2, 3 и 4-е место: сертификат номиналом 20 000 рублей на ИТ-курсы от Proglib Academy;
5-е место: геймерская клавиатура + коврик на выбор.
Призы разыграем 1 декабря в 20:00 (МСК).
Доставка призов возможна только по городам России и Белоруссии.
Proglib Academy создаёт онлайн-курсы для программистов, помогает получить востребованные навыки и построить успешную карьеру в IT.
Игровые компьютеры и рабочие станции DigitalRazor — это качественная сборка, топовое железо и эффектный дизайн.
Регламент розыгрыша
👍2👾1
array_column() — это очень удобная встроенная функция PHP, которая извлекает индекс из списка массивов или публичное свойство из списка объектов.
Третий аргумент array_column() — это ключ, который будет использоваться для ссылки на значение в результирующем массиве. Это очень удобно для превращения массива в хэш.
Обратите внимание, что дублирующиеся ключи будут перезаписаны.
Третий аргумент array_column() — это ключ, который будет использоваться для ссылки на значение в результирующем массиве. Это очень удобно для превращения массива в хэш.
Обратите внимание, что дублирующиеся ключи будут перезаписаны.
👍30
Как обрабатывать большие массивы данных в Laravel без дефицита памяти
Laravel предоставляет несколько полезных методов, которые помогут вам обрабатывать данные небольшими кусками, что экономит память и ускоряет работу приложения. Здесь показано, как использовать
Laravel предоставляет несколько полезных методов, которые помогут вам обрабатывать данные небольшими кусками, что экономит память и ускоряет работу приложения. Здесь показано, как использовать
chunk()
, chunkById()
и Lazy Collections для эффективной обработки больших наборов данных в Laravel.DEV Community
How to Handle Large Datasets in Laravel Without Running Out of Memory
How to Handle Large Datasets in Laravel Without Running Out of Memory When working with...
👍5
Какие нововведения из 8.4 планируете активно использовать?👇
😁13
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Напоминаем: у нас можно (и нужно) купить рекламу
→ Более 60 телеграм-каналов по всем направлениям IT
→ Почти 1,2 миллиона аудитории
→ Собственное медиа и сайт с DAU 25 000 — можем усилить продвижение
→ Классные email-рассылки
→ И, конечно же, крутые контент-менеджеры, которые сделают нативную интеграцию/придумают виральный пост/реализуют любые контентные предпочтения
Для заказа пишите сюда: @proglib_adv
→ Более 60 телеграм-каналов по всем направлениям IT
→ Почти 1,2 миллиона аудитории
→ Собственное медиа и сайт с DAU 25 000 — можем усилить продвижение
→ Классные email-рассылки
→ И, конечно же, крутые контент-менеджеры, которые сделают нативную интеграцию/придумают виральный пост/реализуют любые контентные предпочтения
Для заказа пишите сюда: @proglib_adv
🔥5🥱4😢3❤1
Forwarded from Библиотека собеса по PHP | вопросы с собеседований
Чем отличается require от require-dev?
require: Этот раздел определяет зависимости, которые необходимы для нормального функционирования вашего приложения в рабочем окружении. Это могут быть библиотеки, фреймворки или другие компоненты, без которых ваше приложение не будет работать правильно.
require-dev: Этот раздел определяет зависимости, необходимые исключительно для разработки и тестирования вашего приложения. Обычно это инструменты для тестирования (например, PHPUnit), фиктивные данные для тестирования (например, Faker), инструменты для отладки (например, Xdebug) и т. д. Эти зависимости не включаются в окружение продакшена (production environment), чтобы уменьшить размер и сложность установки.
Когда вы устанавливаете пакет с помощью Composer, по умолчанию устанавливаются зависимости из обоих разделов require и require-dev. Однако при использовании опции --no-dev в команде composer install или composer update, Composer устанавливает только зависимости из раздела require, пропуская require-dev. Это особенно полезно при развертывании приложения в продакшен окружении, когда не нужны инструменты и зависимости, предназначенные только для разработки.
require: Этот раздел определяет зависимости, которые необходимы для нормального функционирования вашего приложения в рабочем окружении. Это могут быть библиотеки, фреймворки или другие компоненты, без которых ваше приложение не будет работать правильно.
require-dev: Этот раздел определяет зависимости, необходимые исключительно для разработки и тестирования вашего приложения. Обычно это инструменты для тестирования (например, PHPUnit), фиктивные данные для тестирования (например, Faker), инструменты для отладки (например, Xdebug) и т. д. Эти зависимости не включаются в окружение продакшена (production environment), чтобы уменьшить размер и сложность установки.
Когда вы устанавливаете пакет с помощью Composer, по умолчанию устанавливаются зависимости из обоих разделов require и require-dev. Однако при использовании опции --no-dev в команде composer install или composer update, Composer устанавливает только зависимости из раздела require, пропуская require-dev. Это особенно полезно при развертывании приложения в продакшен окружении, когда не нужны инструменты и зависимости, предназначенные только для разработки.
👍6
🎉 Розыгрыш от Proglib Academy и DigitalRazor!
С 27 ноября по 27 декабря у вас есть шанс не только прокачать свои навыки, но и выиграть ПК при покупке любого курса Академии!
🎁 Призы для участников акции:
– Игровой ПК DigitalRazor ProGaming
– VIP-пакет курса Proglib Academy
💡 Как принять участие?
Купите любой курс Proglib Academy с 27 ноября по 27 декабря и получите шанс выиграть мощный ПК.
Приобретите технику DigitalRazor — участвуйте в розыгрыше VIP курса.
📅 Вместе с DigitalRazor мы создали спецпредложение -50% на курсы до 30 ноября, чтобы вы могли начать обучение на более выгодных условиях.
Выбрать курс
С 27 ноября по 27 декабря у вас есть шанс не только прокачать свои навыки, но и выиграть ПК при покупке любого курса Академии!
🎁 Призы для участников акции:
– Игровой ПК DigitalRazor ProGaming
– VIP-пакет курса Proglib Academy
💡 Как принять участие?
Купите любой курс Proglib Academy с 27 ноября по 27 декабря и получите шанс выиграть мощный ПК.
Приобретите технику DigitalRazor — участвуйте в розыгрыше VIP курса.
📅 Вместе с DigitalRazor мы создали спецпредложение -50% на курсы до 30 ноября, чтобы вы могли начать обучение на более выгодных условиях.
Выбрать курс
😁2
Alice, Nelmio, Hautelook, Faker — Как обновить Doctrine Fixtures
Работа с обновлением Doctrine Fixtures связана с синхронизацией сразу нескольких пакетов на GitHub, что делает задачу сложной и трудоемкой. Автор делится опытом этого процесса и описывает шаги, которые помогут выполнить обновление максимально эффективно.
План обновления
Среди основных изменений:
🔸hautelook/alice-bundle: обновление с версии 1.* до 2.*
🔸nelmio/alice: переход с версии 2.* на 3.*
🔸fzaninotto/faker заменяется на fakerphp/faker
🔸doctrine/data-fixtures: обновление с версии 1.5 до 1.7
🔸doctrine/mongodb-odm-bundle: обновление с версии 3.* до 5.*
Работа с обновлением Doctrine Fixtures связана с синхронизацией сразу нескольких пакетов на GitHub, что делает задачу сложной и трудоемкой. Автор делится опытом этого процесса и описывает шаги, которые помогут выполнить обновление максимально эффективно.
План обновления
Среди основных изменений:
🔸hautelook/alice-bundle: обновление с версии 1.* до 2.*
🔸nelmio/alice: переход с версии 2.* на 3.*
🔸fzaninotto/faker заменяется на fakerphp/faker
🔸doctrine/data-fixtures: обновление с версии 1.5 до 1.7
🔸doctrine/mongodb-odm-bundle: обновление с версии 3.* до 5.*
Tomasvotruba
Alice, Nelmio, Hautelook, Faker - How to upgrade Doctrine Fixtures - Part 1
Upgrading Doctrine Fixtures can be challenging work. It requires the coordination of four different package groups on Github. One cannot be upgraded without the other.
We first prepare for the jump, then take the leap with confidence. I'm writing this…
We first prepare for the jump, then take the leap with confidence. I'm writing this…
👏1
Рекордсмены в Fusc последовательности
Анализ подходов к решению олимпиадной задачи по программированию, связанной с диатомической числовой последовательностью Штерна.
Анализ подходов к решению олимпиадной задачи по программированию, связанной с диатомической числовой последовательностью Штерна.
Хабр
Рекордсмены в Fusc последовательности
Закончились рабочие будни. Появилось настроение отметить завершение очередного аврала в череде поддержки и доработки проекта автоматизации бизнес процессов организации, где я мотаю срок программистом....
👏3👍1
🚀 Там биткойн летит вверх, и в связи с этим вопрос:
💬 Вкладываетесь в криптовалюты?
❤️ — да, в биткойн
👍 — да, в другую крипту
👾 — нет
#интерактив
💬 Вкладываетесь в криптовалюты?
❤️ — да, в биткойн
👍 — да, в другую крипту
👾 — нет
#интерактив
👾102👍20❤13🌚3