#Собес #upload #file #form
🤔 Как PHP обрабатывает загрузку файлов?
💬 Кратко:
PHP обрабатывает загрузку файлов через суперглобальный массив
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как PHP обрабатывает загрузку файлов?
💬 Кратко:
PHP обрабатывает загрузку файлов через суперглобальный массив
$_FILES. Файл отправляется через форму с атрибутом enctype="multipart/form-data", и PHP сохраняет информацию о загружаемом файле в $_FILES, включая имя файла, тип и путь.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Scale Cube: 3 способа масштабироваться
Когда система перестаёт держать нагрузку, приходит время масштабироваться
Обычно делают так:
- добавили инстансы → стало не лучше
- распилили на микросервисы → стало хуже
Scale Cube модель предлагает 3 оси. Каждая закрывает свой bottleneck:
X - клонирование
Больше одинаковых копий сервиса за балансером.
Помогает, когда упираетесь в CPU/IO на приложении.
Y - разделение ответственности
Делите по функциям: поиск, отчёты, платежи.
Нужно, когда одна часть системы “убивает” остальных и её надо изолировать/масштабировать отдельно.
Z - разделение по данным (sharding/partitioning)
Делите данные по ключу (
Применяется когда потолок - данные: одна БД/таблица, hot keys, локи. Запись и чтение можно масштабировать отдельно
Например, если узкое место - база, то:
- X почти не поможет (вы просто сильнее нагрузите БД)
- микросервисы чаще ухудшат (больше запросов + распределённые транзакции/консистентность)
- а вот Z может дать рост capacity
Выбирать ось надо по bottleneck’у.
Если вы не можете назвать узкое место цифрами - вы не масштабируете, а только усложняете систему.
🚀 Пост Guru PHP: @msavin_dev
Когда система перестаёт держать нагрузку, приходит время масштабироваться
Обычно делают так:
- добавили инстансы → стало не лучше
- распилили на микросервисы → стало хуже
Scale Cube модель предлагает 3 оси. Каждая закрывает свой bottleneck:
X - клонирование
Больше одинаковых копий сервиса за балансером.
Помогает, когда упираетесь в CPU/IO на приложении.
Y - разделение ответственности
Делите по функциям: поиск, отчёты, платежи.
Нужно, когда одна часть системы “убивает” остальных и её надо изолировать/масштабировать отдельно.
Z - разделение по данным (sharding/partitioning)
Делите данные по ключу (
user_id, region).Применяется когда потолок - данные: одна БД/таблица, hot keys, локи. Запись и чтение можно масштабировать отдельно
Например, если узкое место - база, то:
- X почти не поможет (вы просто сильнее нагрузите БД)
- микросервисы чаще ухудшат (больше запросов + распределённые транзакции/консистентность)
- а вот Z может дать рост capacity
Выбирать ось надо по bottleneck’у.
Если вы не можете назвать узкое место цифрами - вы не масштабируете, а только усложняете систему.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Mikhail Savin
Ментор PHP backend: https://teletype.in/@msavin_dev/mentoring
#Собес #factory #method
🤔 Как работает паттерн «Фабричный метод» и когда его целесообразно использовать?
💬 Кратко:
Фабричный метод определяет интерфейс для создания объектов, но позволяет подклассам решать, какой конкретный объект создавать. Это избавляет клиентский код от явного вызова
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как работает паттерн «Фабричный метод» и когда его целесообразно использовать?
💬 Кратко:
Фабричный метод определяет интерфейс для создания объектов, но позволяет подклассам решать, какой конкретный объект создавать. Это избавляет клиентский код от явного вызова
new и даёт возможность легко подменять создаваемые типы. Фабрика полезна, когда создание объекта — это не просто new, а включает выбор конкретного класса, логику конфигурации или условия. Паттерн хорошо подходит для расширяемых систем и при работе с разными вариантами объектов одного семейства.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#Собес #concurrency #mvcc #isolation
🤔 Что такое MVCC (Multiversion Concurrency Control)? Где используется?
💬 Кратко:
MVCC (Multiversion Concurrency Control, Многовариантное управление параллелизмом) — это механизм, который позволяет повысить производительность базы данных за счет хранения нескольких версий одного объекта данных. Это позволяет операциям чтения получать согласованный снимок данных без блокировок, ожидая завершения операций записи, и наоборот. Он широко используется в современных реляционных (PostgreSQL, MySQL InnoDB) и нереляционных СУБД.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое MVCC (Multiversion Concurrency Control)? Где используется?
💬 Кратко:
MVCC (Multiversion Concurrency Control, Многовариантное управление параллелизмом) — это механизм, который позволяет повысить производительность базы данных за счет хранения нескольких версий одного объекта данных. Это позволяет операциям чтения получать согласованный снимок данных без блокировок, ожидая завершения операций записи, и наоборот. Он широко используется в современных реляционных (PostgreSQL, MySQL InnoDB) и нереляционных СУБД.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#channel #laravel
📚 Laracasts
Laracasts – это проект создателей фреймворка Laravel, направленный на обучение начинающих программистов, которые только взялись за фреймворки. На канале вы найдёте длинный плейлист с обзором на Laravel, а также стримы и обзоры на новые функции и возможности выходящих версий.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Laracasts
Laracasts – это проект создателей фреймворка Laravel, направленный на обучение начинающих программистов, которые только взялись за фреймворки. На канале вы найдёте длинный плейлист с обзором на Laravel, а также стримы и обзоры на новые функции и возможности выходящих версий.
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #aggregation #group_by
🤔 Алгоритмы агрегации данных — как работает GROUP BY под капотом (на примере CSV-файла без БД)?
💬 Кратко:
GROUP BY работает используя алгоритмы хеширования или сортировки для группировки строк с одинаковыми значениями. При обработке CSV файла, система читает данные построчно, вычисляет хеш ключа группировки и аккумулирует значения для каждой группы. Алгоритм сортировки сначала сортирует данные по ключу группировки, затем агрегирует последовательные строки с одинаковыми ключами. Оба подхода эффективны но используются в разных сценариях.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Алгоритмы агрегации данных — как работает GROUP BY под капотом (на примере CSV-файла без БД)?
💬 Кратко:
GROUP BY работает используя алгоритмы хеширования или сортировки для группировки строк с одинаковыми значениями. При обработке CSV файла, система читает данные построчно, вычисляет хеш ключа группировки и аккумулирует значения для каждой группы. Алгоритм сортировки сначала сортирует данные по ключу группировки, затем агрегирует последовательные строки с одинаковыми ключами. Оба подхода эффективны но используются в разных сценариях.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
На собесах последнее время часто спрашивают внутреннее устройство php и жизненный цикл приложения вплоть до zend машины
Есть хорошее видео, в котором автор рассказывает и показывает как это работает
Рекомендую к просмотру: https://www.youtube.com/watch?v=ihmbnv22Cl4
🚀 Пост Guru PHP: @msavin_dev
Есть хорошее видео, в котором автор рассказывает и показывает как это работает
Рекомендую к просмотру: https://www.youtube.com/watch?v=ihmbnv22Cl4
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Как устроен PHP 🐘: фундаментальное знание для инженеров
В этом видео мы шаг за шагом разберём, как из исходного кода рождается процесс.
Пройдем путь от компиляции к интерпретации, от fork() и execve до php-fpm.
Вы узнаете:
– в чём разница между компилируемыми и интерпретируемыми языками;
– как устроен принцип…
Пройдем путь от компиляции к интерпретации, от fork() и execve до php-fpm.
Вы узнаете:
– в чём разница между компилируемыми и интерпретируемыми языками;
– как устроен принцип…
❤3