Telegram Web
📚 ТОП-11 книг по базам данных в 2025 году

Хотите разобраться в базах данных, но не знаете, с чего начать? Мы подготовили подборку из 11 лучших книг, которые помогут вам освоить раздичные базы данных, паттерны и антипаттерны, а также оптимизацию запросов.

🔗 Читайте в статье
👍5
⚙️ Переход от монолита к микросервисам: ключевые паттерны

На этой схеме представлены 4 ключевых паттерна, которые помогут упростить переход.

🔸 Strangler Fig Pattern
🔸 Parallel Run Pattern
🔸 Decorating Collaborator Pattern
🔸 Change Data Capture (CDC)

#инфографика
3👍1
💻 Подборка новостей по PHP за неделю:

🔎 Fluent-валидация дат в Laravel 11.40
Команда Laravel выпустила версию 11.40, в которой появилась гибкая валидация дат, ожидаемые атрибуты Eloquent, новые debug-хелперы для HTTP-ответов и другие улучшения.

🔎 Релиз Tailwind CSS 4
Это крупнейшее обновление на сегодняшний день, включающее переработанную систему конфигурации и новый высокопроизводительный движок.

🔎 Неделя Symfony #944 (27 января — 2 февраля 2025 года)
На этой неделе Symfony выпустил обновления 6.4.18, 7.1.11 и 7.2.3. Также была опубликована рекомендация по безопасности для Twig, анонсированы новые Symfony-конференции и улучшена поддержка социальных сетей Mastodon и BlueSky.

🔎 Релиз Symfony 7.2.3
В обновлении исправлены баги и внесены важные изменения

🔎 Дата выхода Laravel 12
Тейлор Отвелл объявил, что Laravel 12 выйдет 24 февраля 2025 года. Это первое крупное обновление без breaking-изменений. Ожидается множество улучшений, подробности — скоро!

#дайджест
👍4
⏯️ Unleash: переключатели функций в PHP

Feature flags (или переключатели функций) позволяют включать и отключать определенные функции в приложении без необходимости развертывания нового кода. Одним из удобных инструментов для их управления является Unleash – мощная и гибкая open-source платформа.

Что такое feature flags?
Feature flags – это механизмы, которые позволяют динамически управлять функциональностью приложения. Если, например, в вашей системе можно включать и отключать регистрацию пользователей или комментарии через настройки в базе данных, то это уже базовая форма feature flags. Однако специализированные системы предлагают более продвинутые возможности.

Преимущества использования
Инструменты для управления feature flags, такие как Unleash, помогают:

🔸Постепенно выкатывать новые функции для ограниченной группы пользователей (например, бета-тестеров).
🔸Включать или отключать функции в зависимости от региона (например, для соответствия GDPR).
🔸Запускать A/B тестирование различных версий одной функции.
🔸Отключать проблемные функции в случае сбоев.
🔸Создавать временные или экспериментальные возможности без необходимости ветвления кода.

Unleash: ключевые особенности

Unleash предлагает как платную, так и open-source версию. Его главное отличие – локальная обработка флагов без отправки данных на сервер Unleash. Это снижает нагрузку на сеть и повышает производительность. Данные кешируются, а обмен с сервером происходит минимально – примерно два HTTP-запроса в минуту.

Unleash поддерживает большинство популярных языков программирования и может быть легко интегрирован в проект.

Unleash предлагает несколько стратегий активации фич:

🔹Простое включение/отключение.
🔹Ограничение по ID пользователя или IP-адресу.
🔹Градиентный (поэтапный) rollout – функция включается для части пользователей на основе определенного параметра (например, ID).
🔹Кастомные стратегии, которые можно адаптировать под конкретные задачи.

Интеграция с Symfony
Unleash предлагает удобный бандл для Symfony, который упрощает настройку. Он поддерживает автоматическое определение ID пользователя, интеграцию с HTTP-запросами и использование feature flags в шаблонах Twig.

👉Статья с практическими примерами
👍5🔥1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤔 Какие вебинары вам действительно нужны?

Привет! 👋

Мы готовим новые вебинары и хотим сделать их максимально полезными для вас. Это поможет нам не только создавать актуальный контент, но и развивать проект, находя новые точки контактов для вас.

Ваши ответы дадут нам понимание, какие темы и форматы действительно важны, а также помогут сделать вебинары интереснее и продуктивнее.

Заполнение займет всего пару минут, а нам это очень поможет! Спасибо, что участвуете в нашем развитии! 💙

👉 Пройти опрос
🌚4😁3
💡 Затрагиваемые отношения Eloquent

Laravel автоматически обновляет updated_at в отношениях «многие-ко-многим», а также поставляется с методом setTouchedRelations для ручного обновления связанных моделей в отношениях «один-к-одному» и «один-ко-многим» 🚀

#совет
👍4
php-mrloop — расширение, предоставляющее интерфейс к API io_uring через библиотеку mrloop

Оно предназначено для создания эффективных событийных циклов, позволяя обрабатывать различные типы ввода-вывода, включая файловые операции и сетевые соединения, в неблокирующем режиме.

API php-mrloop напоминает синтаксис событийного цикла ReactPHP, что облегчает его использование для разработчиков, знакомых с этой библиотекой. Основное преимущество php-mrloop заключается в возможности работать с различными файловыми дескрипторами через единый API, минимизируя необходимость в дополнительных пакетах и обеспечивая высокую производительность.

Прочитайте статью на медиуме, чтобы узнать, почему io_ring лучше, чем реализации select(), poll() и epoll().


🔗Github

#инструменты
👍4
Что такое CQRS?

CQRS (Command Query Responsibility Segregation) — это архитектурный паттерн, который предлагает разделить операции записи и чтения данных в приложении на две отдельные ветки. Вместо того, чтобы использовать единый интерфейс для обеих операций, CQRS предлагает использовать различные модели данных для команд и запросов. Это позволяет оптимизировать каждую модель для конкретных задач и улучшить производительность приложения.

Применение CQRS может быть особенно полезным в системах с большим количеством операций записи или при необходимости распределенной обработки запросов. CQRS также может облегчить сопровождение приложения, так как изменения в одной части системы не будут влиять на другие части.

Несмотря на то, что CQRS может быть сложной архитектурой для начала использования, правильное применение может принести множество преимуществ.

Интересная статья на эту тему
👍5🔥1
Опасности, связанные с unserialize в PHP, и как оставаться в безопасности

PHP-разработчики должны быть осторожны при использовании функции unserialize(), поскольку она может стать уязвимостью, если применять её без соответствующих мер безопасности. Эта функция преобразует сериализованную строку обратно в переменную PHP, что удобно, но при работе с неподтверждёнными данными может привести к серьёзным последствиям.

Опасности unserialize() при работе с ненадёжными данными
Одной из главных угроз является PHP Object Injection (POI). Злоумышленники могут передавать специально сформированные сериализованные объекты, что приведёт к выполнению нежелательных команд, утечке данных или даже удалению файлов. Например, если приложение десериализует пользовательские настройки без проверки входных данных, хакер может внедрить вредоносный объект и выполнить код на сервере.

Последствия атак через PHP Object Injection
Использование уязвимой десериализации может привести к:

🔸удалению файлов на сервере;
🔸выполнению произвольного кода;
🔸краже конфиденциальной информации.

Как защититься
Чтобы минимизировать риски, рекомендуется:

1. Избегать использования unserialize() для данных от пользователя. Вместо этого применять безопасные форматы, такие как JSON

2. Использовать параметр allowed_classes (начиная с PHP 7.0) для ограничения десериализуемых классов

3. Фильтровать классы при десериализации. Можно проверять, принадлежит ли объект разрешённому списку

4. Проверять и очищать входные данные. Например, использовать регулярные выражения для базовой фильтрации перед десериализацией.

👉Читать полностью
😁3👍1
Секреты стройности монолита: подходы по снятию нагрузки с БД

Была проведена успешная оптимизация нагрузки на базу данных, что также позволило значительно уменьшить её размер.

Помимо сервисов, разработанных на C++, Go и Python, в инфраструктуре остаётся монолитная система, известная как «кора», написанная на PHP. Этот компонент представляет собой обширную кодовую базу, содержащую большое количество бизнес-логики и предоставляющую данные по API для 120 сервисов.

После обновления фреймворка и версии PHP возникла необходимость решения другой важной проблемы, которая становилась всё более заметной. В тот период участились инциденты, связанные с базой данных, что требовало оперативных действий для стабилизации системы. Особенно критичными были случаи во время праздничных дней, когда нагрузка возрастала на 30–40%, а также при проведении массовых операций. Например, однажды сбои произошли в момент добавления бесплатного соуса к каждой позиции меню в крупной сети ресторанов.

🔗Хабр
👍1
📋 Переполнение буфера в Laravel: Причины, профилактика и исправления

Buffer Overflow
— это серьёзная уязвимость, при которой избыточные данные переписывают область памяти, что может привести к сбоям, выполнению вредоносного кода и даже захвату системы злоумышленником. Несмотря на то, что Laravel работает на PHP, который управляет памятью автоматически, ошибки в коде могут привести к таким атакам.

Причины возникновения Buffer Overflow в Laravel

Основные факторы, которые могут привести к этой уязвимости:

🔸недостаточная проверка пользовательских данных;
🔸отсутствие ограничений на размер вводимых данных;
🔸некорректная обработка загрузки файлов;
🔸использование потенциально опасных функций, таких как unserialize().

👉Читать подробнее
😁5🌚1
#дайджест #PHPdevjob

Вакансии PHP разработчиков уровня Junior

▪️ PHP-программист
Офис (Балашиха), КОЛЕСО.ру

▪️ PHP-программист
Удалёнка, TRINFI DIGITAL

Вакансии PHP разработчиков уровня Middle

▪️ PHP Developer
Гибрид (Санкт-Петербург), ЮДС Медиа

▪️ PHP-разработчик
Офис (Санкт-Петербург), NewGen Vision

Вакансии PHP разработчиков уровня Senior

▪️ PHP-разработчик
Офис (Барнаул) / Удалёнка, Sveak

▪️ PHP-разработчик
Удалёнка, РОСОСМОТР

Понравились вакансии?
❤️ — да
🤔 — нет
3
Какую из следующих функций следует использовать, чтобы найти родительский класс класса?
Anonymous Quiz
53%
get_parent_class()
20%
parent_class()
8%
class_parent()
18%
get_class_parent()
😁12🥱1
🌊 Wave — стартер-пак для разработки SaaS-приложений

Библиотека написана на Laravel и включает все необходимое:

— аутентификация,
— профили пользователей,
— биллинг,
— подписка,
— роли и права доступа,
— уведомления и административная панель.

Инструмент упрощает создание SaaS-приложений, предоставляя необходимые базовые компоненты и гибкие возможности для дальнейшей настройки.

💻 GitHub
1🤔1👾1
2025/07/14 21:43:48
Back to Top
HTML Embed Code: