#полезное
🤣 Одна из самых подробных и полезных шпаргалок для Backend-разработчиков на русском языке.
Всё, что нужно, собрано в одном месте: как устроен интернет, как работают ПК, базы данных, API, тестирование и куча всего ещё
Весь материал преисполнен разными таблицами и картинками для лучшего усвоения, вся информация подаётся кратко и понятно, а если захотите изучить детальнее — везде есть ссылки на источники.
👉 Новости 👉 База вопросов
Всё, что нужно, собрано в одном месте: как устроен интернет, как работают ПК, базы данных, API, тестирование и куча всего ещё
Весь материал преисполнен разными таблицами и картинками для лучшего усвоения, вся информация подаётся кратко и понятно, а если захотите изучить детальнее — везде есть ссылки на источники.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как управлять подключениями к базе данных в РНР?
В РНР подключение к базе данных осуществляется через MySQLi или PDO. Чтобы избежать утечек ресурсов, соединение нужно закрывать после выполнения операций. Для повышения безопасности следует использовать подготовленные запросы и обрабатывать ошибки через исключения.
👉 Новости 👉 Платформа
В РНР подключение к базе данных осуществляется через MySQLi или PDO. Чтобы избежать утечек ресурсов, соединение нужно закрывать после выполнения операций. Для повышения безопасности следует использовать подготовленные запросы и обрабатывать ошибки через исключения.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
URL vs URI vs URN — в чем разница?
🟠 URI (Uniform Resource Identifier)
URI — это строка символов, идентифицирующая ресурс по местоположению, имени или обоим параметрам. Это самый общий идентификатор. URL и URN являются подтипами URI.
🟠 URL (Uniform Resource Locator)
URL — это подтип URI, который указывает, как найти ресурс в сети. Он включает протокол (например, HTTPS), домен и часто путь. URL полностью описывает способ доступа к ресурсу. Например:
🟠 URN (Uniform Resource Name)
URN — это тоже подтип URI, но он идентифицирует ресурс по имени в рамках определенного пространства имен, а не по местоположению. Он использует схему
Проще говоря:
🟠 URL — это URI, но не всякий URI является URL.
🟠 URN — уникальные имена, URL — локаторы, URI объединяет оба типа.
👉 Новости 👉 База вопросов
URL vs URI vs URN — в чем разница?
URI — это строка символов, идентифицирующая ресурс по местоположению, имени или обоим параметрам. Это самый общий идентификатор. URL и URN являются подтипами URI.
URL — это подтип URI, который указывает, как найти ресурс в сети. Он включает протокол (например, HTTPS), домен и часто путь. URL полностью описывает способ доступа к ресурсу. Например:
https://example.com/path/to/resource
. URL также может использоваться с другими протоколами, такими как FTP.URN — это тоже подтип URI, но он идентифицирует ресурс по имени в рамках определенного пространства имен, а не по местоположению. Он использует схему
urn
. URN не может быть использован для нахождения ресурса. Это глобально уникальный идентификатор, который остается неизменным независимо от местоположения ресурса. Например, urn:isbn:0361450721
идентифицирует книгу по ее ISBN, который остается неизменным, даже если книга хранится в разных местах.Проще говоря:
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🫠 Поскольку в сериализуемом замыкании нельзя использовать
Этот подход:
🟠 Избавляет от необходимости создавать локальные переменные для свойств
🟠 Делает код более чистым, разделяя ответственность.
🟠 Переносит логику в отдельный тестируемый класс.
👉 Новости 👉 База вопросов
$this
, рассмотрите возможность вынесения колбэков Bus::batch
, основанных на Closure
, в отдельные вызываемые (callable) классы.Этот подход:
$this
, чтобы сделать их сериализуемыми.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Vito
Это самохостимое веб-приложение для управления серверами и деплоя PHP-приложений.
Поддерживает управление базами данных, настройку файрвола, установку SSL-сертификатов и управление cron-заданиями.
Гитхаб
👉 Новости 👉 База вопросов
Это самохостимое веб-приложение для управления серверами и деплоя PHP-приложений.
Поддерживает управление базами данных, настройку файрвола, установку SSL-сертификатов и управление cron-заданиями.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как выполнять транзакции в РНР с MySQL?
Транзакции позволяют выполнять несколько запросов к базе данных как единое целое. Если один из запросов завершится неудачей можно скатить изменения врнр транзакции реализуются через MySQLi или PDO, с использованием методов
👉 Новости 👉 Платформа
Транзакции позволяют выполнять несколько запросов к базе данных как единое целое. Если один из запросов завершится неудачей можно скатить изменения врнр транзакции реализуются через MySQLi или PDO, с использованием методов
beginTransaction
, commit
n rollBack
.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 HTTP/2 vs HTTP/3 — В чем разница?
HTTP/1 появился в 1996 году, а уже в 1997 вышел HTTP/1.1.
Следующий крупный шаг произошел только спустя ~20 лет — в 2015 году был стандартизирован HTTP/2. А в 2022 году официально утвердили HTTP/3.
В чем разница?
HTTP/1.1
➕ Постоянные соединения — повторное использование соединений вместо открытия новых
➕ Потоковая передача (Chunked Transfer) — отправка данных частями вместо ожидания полного ответа
➕ Улучшенное кеширование — заголовки для управления кешем и соединениями
➖ Последовательные запросы — блокируют друг друга (HoL-блокировка на уровне запросов)
➖ Требуется несколько соединений — браузеры открывали несколько TCP-соединений для скорости
HTTP/1.1 заложил фундаментальные механизмы, актуальные и сегодня.
HTTP/2
➕ Мультиплексирование — несколько запросов в одном TCP-соединении
➕ Сжатие заголовков (HPACK) — уменьшение накладных расходов
➕ Приоритизация потоков — критически важные ресурсы загружаются первыми
➖ HoL-блокировка — потерянный пакет блокирует все потоки
HTTP/2 оптимизировал TCP, но остался ограничен его архитектурой.
HTTP/3
➕ Основан на QUIC (UDP) — больше нет узких мест TCP
➕ Независимые потоки — потеря пакетов в одном потоке не мешает другим
➕ Быстрые рукопожатия — транспорт и шифрование настраиваются за один шаг
➕ Обязательное шифрование (TLS 1.3) — безопасность по умолчанию
➕ Миграция соединений — стабильная работа при смене сети
Вывод: HTTP/2 оптимизировал TCP, но HTTP/3 меняет правила игры с QUIC — быстрее, надежнее и безопаснее по умолчанию.
👉 Новости 👉 База вопросов
HTTP/1 появился в 1996 году, а уже в 1997 вышел HTTP/1.1.
Следующий крупный шаг произошел только спустя ~20 лет — в 2015 году был стандартизирован HTTP/2. А в 2022 году официально утвердили HTTP/3.
В чем разница?
HTTP/1.1
HTTP/1.1 заложил фундаментальные механизмы, актуальные и сегодня.
HTTP/2
HTTP/2 оптимизировал TCP, но остался ограничен его архитектурой.
HTTP/3
Вывод: HTTP/2 оптимизировал TCP, но HTTP/3 меняет правила игры с QUIC — быстрее, надежнее и безопаснее по умолчанию.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😬 При работе с загрузкой изображений в Laravel важно проверять их ширину и высоту.
Например, если пользователи загружают аватары, лучше убедиться, что размеры остаются единообразными.
Не проблема! Класс Rule в Laravel позволяет легко валидировать размеры изображения с понятным синтаксисом.
👉 Новости 👉 База вопросов
Например, если пользователи загружают аватары, лучше убедиться, что размеры остаются единообразными.
Не проблема! Класс Rule в Laravel позволяет легко валидировать размеры изображения с понятным синтаксисом.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨💻 Внедряем формулы как в Эксель
Пользователи постоянно меняют логику подсчёта? Они не довольны скоростью с которой вы меняете код? Уже надоело так часто менять одно и тоже? Если да, то получайте решение: пускай пользователи сами пишут формулы на языке, который им более знаком: это формулы эксель. От вас потребуется лишь надо научить своё приложение считать это. Как это сделать? С помощью чёрной магии конечно!
Хабр
👉 Новости 👉 База вопросов
Пользователи постоянно меняют логику подсчёта? Они не довольны скоростью с которой вы меняете код? Уже надоело так часто менять одно и тоже? Если да, то получайте решение: пускай пользователи сами пишут формулы на языке, который им более знаком: это формулы эксель. От вас потребуется лишь надо научить своё приложение считать это. Как это сделать? С помощью чёрной магии конечно!
Хабр
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как предотвратить взаимоблокировки в базе данных?
Взаимоблокировки возникают, когда несколько транзакций блокируют друг друга,
ожидая освобождения ресурсов. Чтобы их избежать, следует:
🟠 Всегда обращаться к ресурсам базы данных в одном порядке.
🟠 Сокращать время выполнения транзакций, чтобы уменьшить вероятность
конфликта.
🟠 Использовать таймауты для автоматического завершения зависших транзакций.
🟠 Регулярно анализировать производительность базы данных и оптимизировать
запросы, добавляя индексы и избегая сложных блокировок.
👉 Новости 👉 База вопросов
Взаимоблокировки возникают, когда несколько транзакций блокируют друг друга,
ожидая освобождения ресурсов. Чтобы их избежать, следует:
конфликта.
запросы, добавляя индексы и избегая сложных блокировок.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
😇 Неявное привязывание Enum = чистые и типобезопасные маршруты
Определите
👉 Новости 👉 База вопросов
Определите
enum
на основе строки, используйте его в качестве type hint в определении маршрута — и Laravel автоматически проверит сегменты маршрута, возвращая 404 для недопустимых значений.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 Совет по Bug Bounty
Утечка страницы PHP Info.
Открытая страница PHP Info может раскрывать множество конфиденциальных данных — от настроек конфигурации до пользовательских сессионных куки.
Например, в сочетании с XSS это может привести к полному захвату учетной записи.
👉 Новости 👉 База вопросов
Утечка страницы PHP Info.
Открытая страница PHP Info может раскрывать множество конфиденциальных данных — от настроек конфигурации до пользовательских сессионных куки.
Например, в сочетании с XSS это может привести к полному захвату учетной записи.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😬 Хардкорная игра-тренажёр для PHP-разработчиков
Наткнулся на забавную игру в формате тренажёра, цель которой — проходить задания для прокачки навыков кодинга на языке PHP.
Правило всего одно: нужно переписать функцию так, чтобы она вернула true.
С каждым уровнем сложность заданий растёт. Никаких объяснений и руководств, всё по хардкору
👉 Новости 👉 База вопросов
Наткнулся на забавную игру в формате тренажёра, цель которой — проходить задания для прокачки навыков кодинга на языке PHP.
Правило всего одно: нужно переписать функцию так, чтобы она вернула true.
С каждым уровнем сложность заданий растёт. Никаких объяснений и руководств, всё по хардкору
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как реализовать кэширование в РНР для оптимизации запросов к базе данных?
Кэширование сохраняет результаты запросов в быстром хранилище (например, Redis или Memcached) для последующего использования. При повторном запросе приложение сначала проверяет кэш. Если данные найдены, они возвращаются из кэша, а не из базы данных. Это значительно ускоряет выполнение запросов и уменьшает нагрузку на сервер базы данных.
👉 Новости 👉 База вопросов
Кэширование сохраняет результаты запросов в быстром хранилище (например, Redis или Memcached) для последующего использования. При повторном запросе приложение сначала проверяет кэш. Если данные найдены, они возвращаются из кэша, а не из базы данных. Это значительно ускоряет выполнение запросов и уменьшает нагрузку на сервер базы данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
😇 Совет по PHP: First-Class Callables
PHP 8.1 представил first-class callables, которые упрощают синтаксис, особенно при работе с коллекциями Laravel, где часто используются замыкания
👉 Новости 👉 База вопросов
PHP 8.1 представил first-class callables, которые упрощают синтаксис, особенно при работе с коллекциями Laravel, где часто используются замыкания
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 Знали ли вы, что PHP переподключается к Redis при каждом запросе?
В Laravel 12 появилась новая переменная окружения
👉 Новости 👉 База вопросов
В Laravel 12 появилась новая переменная окружения
REDIS_PERSISTENT
, которая позволяет сохранять соединения с Redis между запросами.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 PhpLDAPadmin
Это веб инструмент управления данными LDAP для системных администраторов. Он обычно известен и называется "PLA".
При этом, PLA создан с учетом соответствия RFC LDAP, что позволяет использовать его с любым сервером LDAP
Гитхаб
👉 Новости 👉 База вопросов
Это веб инструмент управления данными LDAP для системных администраторов. Он обычно известен и называется "PLA".
При этом, PLA создан с учетом соответствия RFC LDAP, что позволяет использовать его с любым сервером LDAP
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Объясните преимущества и недостатки использования фреймворка в контексте РНР.
Фреймворки ускоряют разработку благодаря готовым инструментам, следованию стандартам и встроенным решениям для типичных задач. Они облегчают поддержку и масштабирование, но могут быть избыточными для маленьких проектов, добавлять сложности и приводить к зависимости от конкретного инструмента. Выбор фреймворка зависит от задач проекта и баланса между удобством разработки и потребностями в производительности.
👉 Новости 👉 База вопросов
Фреймворки ускоряют разработку благодаря готовым инструментам, следованию стандартам и встроенным решениям для типичных задач. Они облегчают поддержку и масштабирование, но могут быть избыточными для маленьких проектов, добавлять сложности и приводить к зависимости от конкретного инструмента. Выбор фреймворка зависит от задач проекта и баланса между удобством разработки и потребностями в производительности.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!