PHP | Вопросы собесов
Open in Telegram
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv
Show more2 344
Subscribers
+224 hours
-27 days
-2430 days
Posts Archive
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
🤔 Что такое вертикальное шардирование?
Это метод разделения базы данных, при котором разные таблицы хранятся на разных серверах.
Как это работает?
1. Таблицы разбиваются по функциональности (например, users – в одной базе, orders – в другой).
2. Каждый сервер обслуживает свою часть данных.
Плюсы:
- Разгружает базу данных.
- Снижает нагрузку на один сервер.
- Повышает отказоустойчивость.
Минусы:
- Сложность настройки и поддержки.
- Увеличение количества соединений между серверами.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что такое статическое связывание?
Статическое связывание также играет важную роль, особенно когда дело доходит до разрешения вызовов методов в контексте наследования классов. Использует позднее статическое связывание для предоставления контекста вызова в статических методах, что позволяет переопределять статические методы в дочерних классах. Рассмотрим это на примере.
class BaseClass {
public static function who() {
echo "Я BaseClass\n";
}
public static function test() {
self::who(); // Здесь используется статическое связывание
}
}
class ChildClass extends BaseClass {
public static function who() {
echo "Я ChildClass\n";
}
}
BaseClass::test(); // Вывод: Я BaseClass
ChildClass::test(); // Вывод: Я BaseClass
Предоставляет ключевое слово static::, которое позволяет переопределять статические методы в контексте наследования, используя так называемое "позднее статическое связывание".
class BaseClass {
public static function who() {
echo "Я BaseClass\n";
}
public static function test() {
static::who(); // Используется позднее статическое связывание
}
}
class ChildClass extends BaseClass {
public static function who() {
echo "Я ChildClass\n";
}
}
BaseClass::test(); // Вывод: Я BaseClass
ChildClass::test(); // Вывод: Я ChildClass
Ставь 👍 и забирай 📚 Базу знанийПочему SWG и NGFW должны работать вместе
NGFW — фундамент защиты сети. Но веб-трафик — сложная экосистема, где риски могут скрываться даже внутри разрешенных ресурсов. Чтобы увидеть больше, нужно заглянуть глубже. В этом поможет SWG-система.
Вместе NGFW и SWG смогут обеспечить максимальную безопасность корпоративной сети: NGFW — на периметре, а SWG — в веб-трафике.
Как грамотно построить комплексную защиту периметра сети, расскажут эксперты «Солара» на вебинаре «SWG и NGFW: почему вместе, а не вместо».
Вы узнаете:
- Какие задачи решает NGFW, а какие — SWG;
- Почему SWG — не просто «еще один фильтр», а необходимость;
- Как сбалансировать защиту без потерь в производительности.
Вас ждут реальные кейсы совместного использования NGFW и SWG в компаниях.
Регистрируйтесь, чтобы обеспечить защиту компании.
Зарегистрироваться
#реклама 16+
rt-solar.ru
О рекламодателе
🤔 Зачем нужны паттерны проектирования?
Это универсальные решения для типичных проблем в программировании.
Зачем они нужны?
- Повышают гибкость и читаемость кода.
- Уменьшают дублирование кода.
- Упрощают сопровождение и масштабирование.
Примеры паттернов:
- Порождающие: Singleton, Factory, Builder.
- Структурные: Adapter, Decorator, Composite.
- Поведенческие: Observer, Strategy, Command.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Data-аналитик — профессия будущего!
Аналитика данных — одна из самых востребованных сфер на рынке труда! Компании нуждаются в специалистах, которые умеют извлекать ценную информацию из цифр и превращать её в решения, приносящие прибыль.
Чему ты научишься?
Работать с SQL, Python и Excel
Создавать отчёты и строить прогнозные модели
Визуализировать данные и делать их понятными
Принимать решения на основе цифр
✅ Диплом установленного образца
✅ Гибкий график обучения и поддержка экспертов
Обучим бесплатно, если ты:
— В отпуске по уходу за ребёнком
— Неработающая мама детей до 7 лет
— Официально не работаешь или под риском увольнения
— 50 лет и старше или предпенсионер
— Находишься в поисках работы или хочешь повысить квалификацию на текущем рабочем месте
Подать заявку
#реклама 16+
osnovanie.info
О рекламодателе
🤔 Зачем нужен шаблон Builder?
Builder — это порождающий шаблон проектирования, который разделяет процесс создания сложного объекта от его представления. Он позволяет создавать объекты пошагово и конфигурировать их гибко без необходимости передавать длинные списки параметров в конструктор.
🚩Зачем нужен Builder?
🟠Упрощает создание сложных объектов
Когда объект имеет много параметров, особенно опциональных (например, дом с разными опциями — бассейном, гаражом, садом).
🟠Избегает перегруженных конструкторов
Вместо того чтобы передавать кучу аргументов в конструктор (
new Car("red", 4, true, "diesel")), мы можем строить объект постепенно.
🟠Делает код читаемым и удобным
Позволяет явно видеть, какие параметры устанавливаются и какие можно добавить.
🚩Пример использования в PHP
Допустим, мы строим объект Car (Машина).
Проблема без Builder'а (длинный конструктор)
class Car {
public string $color;
public int $wheels;
public bool $sunroof;
public string $engine;
public function __construct(string $color, int $wheels, bool $sunroof, string $engine) {
$this->color = $color;
$this->wheels = $wheels;
$this->sunroof = $sunroof;
$this->engine = $engine;
}
}
$car = new Car("red", 4, true, "diesel"); // Что значат true и 4? Непонятно.
Решение с использованием Builder
class Car {
public string $color;
public int $wheels;
public bool $sunroof;
public string $engine;
private function __construct() {} // Закрываем прямой доступ к конструктору
public static function builder(): CarBuilder {
return new CarBuilder();
}
}
class CarBuilder {
private Car $car;
public function __construct() {
$this->car = new Car();
}
public function setColor(string $color): self {
$this->car->color = $color;
return $this;
}
public function setWheels(int $wheels): self {
$this->car->wheels = $wheels;
return $this;
}
public function setSunroof(bool $sunroof): self {
$this->car->sunroof = $sunroof;
return $this;
}
public function setEngine(string $engine): self {
$this->car->engine = $engine;
return $this;
}
public function build(): Car {
return $this->car;
}
}
// Использование
$car = Car::builder()
->setColor("red")
->setWheels(4)
->setSunroof(true)
->setEngine("diesel")
->build();
var_dump($car);
Ставь 👍 и забирай 📚 Базу знанийПоддержка сайтов всех типов
⚡Размещение на серверах, дизайн, верстка, программирование, продвижение сайта - все это вы можете поручить нашей компании!
⚡Закрепленная рабочая группа и персональный менеджер для вашего проекта.
⚡Консультации и обсуждение всех возникающих вопросов по поддержке сайта на постоянной основе. Наши специалисты всегда на связи.
Узнать больше
#реклама
cetera.ru
О рекламодателе
🤔 Что такое поведение Copy-on-Write?
Это оптимизация, при которой копия объекта создается только при изменении данных.
Как это работает?
1. Несколько процессов разделяют один и тот же объект в памяти.
2. Если один процесс пытается изменить объект, создается его копия.
3. Это экономит память, так как копирование выполняется только при изменении.
Используется в:
- Операционных системах (например, fork-процессах в Linux).
- Python, PHP для работы со строками и массивами.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Бизнес образование в Moscow Business Academy (MBA)
Получите современное бизнес образование от международных экспертов.
✅Более 37 направлений обучения.
✅Международные дипломы.
✅Online и очные форматы обучения.
✅Разборы практических бизнес-кейсов.
Скидка на все программы online до 35%!
Узнать больше
#реклама 16+
moscow.mba
О рекламодателе
🤔 Что такое сервис локатор?
Это паттерн проектирования, который используется для абстрагирования процесса поиска и предоставления зависимостей объектам. Вместо того чтобы объекты сами создавали свои зависимости или получали их через конструкторы, они запрашивают их у специального объекта – локатора сервисов.
🚩Зачем нужен
🟠Упрощение управления зависимостями
Все зависимости находятся в одном месте, что упрощает их управление и замену.
🟠Гибкость
Легко менять конкретные реализации зависимостей без изменения клиентского кода.
🟠Централизация
Все зависимости зарегистрированы и управляются в одном месте.
🟠Улучшение тестирования
Легко подменять зависимости на моки для проведения тестов.
🚩Как используется
Паттерн Service Locator может быть реализован через создание централизованного реестра, который хранит информацию о различных сервисах и предоставляет их по запросу.
1⃣Создание интерфейсов сервисов
interface Logger {
public function log($message);
}
interface PaymentProcessor {
public function processPayment($amount);
}
2⃣Реализация сервисов
class FileLogger implements Logger {
public function log($message) {
echo "Logging message to a file: $message";
}
}
class StripePaymentProcessor implements PaymentProcessor {
public function processPayment($amount) {
echo "Processing payment of $amount through Stripe";
}
}
3⃣Реализация Service Locator
class ServiceLocator {
private $services = [];
public function register($serviceName, $service) {
$this->services[$serviceName] = $service;
}
public function get($serviceName) {
if (!isset($this->services[$serviceName])) {
throw new Exception("Service not found: " . $serviceName);
}
return $this->services[$serviceName];
}
}
4⃣Регистрация и использование сервисов
$serviceLocator = new ServiceLocator();
// Регистрация сервисов
$serviceLocator->register('logger', new FileLogger());
$serviceLocator->register('paymentProcessor', new StripePaymentProcessor());
// Использование сервисов
$logger = $serviceLocator->get('logger');
$logger->log("This is a log message."); // Вывод: Logging message to a file: This is a log message.
$paymentProcessor = $serviceLocator->get('paymentProcessor');
$paymentProcessor->processPayment(100); // Вывод: Processing payment of 100 through Stripe
🚩Плюсы и минусы
➕Централизация
Все зависимости хранятся и управляются в одном месте.
➕Гибкость
Легко изменять зависимости без изменения кода, который их использует.
➕Удобство тестирования
Легко подменять реальные зависимости на моки для тестирования.
➖Скрытые зависимости
Зависимости не видны явно в коде, что может усложнить понимание.
➖Сложность
Может привести к более сложной архитектуре, особенно в больших приложениях.
Ставь 👍 и забирай 📚 Базу знанийКурс по мотивации сотрудников, которые ничего не хотят
Сегодня в Школе Гендира открыт бесплатный трехдневный доступ к онлайн-курсу Ежедневная мотивация. Основа курса – практика руководителей российских компаний.
После обучения вы сможете:
👍 распознавать конфликты в коллективе на начальной стадии и вовремя принимать меры
👍 определить точки роста своего лидерского потенциала
👍 построить систему грейдов в компании
👍 внедрить метод OKR для мотивации ключевых сотрудников
👍 адаптировать для себя один из алгоритмов постановки задач
Оставьте заявку на бесплатный доступ на странице курса.
Подать заявку
#реклама 16+
gd.ru
О рекламодателе
🤔 Что известно о фабриках?
Это паттерн создания объектов, который делегирует логику создания экземпляров классов специальному методу или классу.
Типы фабрик:
- Фабричный метод (Factory Method) – делегирует создание объектов подклассам.
- Абстрактная фабрика (Abstract Factory) – создает семейства связанных объектов.
Преимущества фабрик:
- Упрощает поддержку и расширение кода.
- Инкапсулирует создание сложных объектов.
- Улучшает тестируемость кода.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
6 свободных мест на курс Коммутаторы MES продвинутый
Осталось 6 мест:
- 3 очных
- 3 дистанционных
Использование коммутаторов MES (продвинутый)
Даты - 24.03-28.03 (5 дней)
Другие курсы:
Март:
Коммутаторы MES (базовый уровень) - 10.03 - 14.03 - 4 места
Апрель:
Маршрутизаторы ESR (продвинутый уровень) - 31.03 - 04.04 - 8 мест
Коммутаторы MES (базовый уровень) - 07.04 - 11.04 - 8 мест
Записаться
#реклама 16+
eltexcm.ru
О рекламодателе
🤔 Какие уровни изоляции ты знаешь?
Уровни изоляции в системах управления базами данных (СУБД) определяют, как операции транзакций видят и взаимодействуют с изменениями, внесенными другими параллельно выполняющимися транзакциями. Эти уровни изоляции помогают контролировать различные виды аномалий, таких как грязное чтение, неповторяющееся чтение и фантомные чтения. В стандарте SQL существует четыре основных уровня изоляции:
🚩Read Uncommitted (чтение незафиксированных данных)
Этот уровень изоляции позволяет транзакциям видеть изменения других транзакций, даже если эти изменения еще не зафиксированы. Наименее строгий уровень изоляции, с наибольшей вероятностью возникновения аномалий.
Аномалии: Грязное чтение (Dirty Read): Транзакция может прочитать данные, которые были изменены другой транзакцией, но еще не зафиксированы.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
🚩Read Committed (чтение зафиксированных данных)
Транзакция может видеть только те изменения, которые были зафиксированы другими транзакциями. Средний уровень изоляции, который предотвращает грязные чтения, но допускает другие аномалии.
Аномалии: Неповторяющееся чтение (Non-repeatable Read): Транзакция может дважды прочитать одно и то же значение и получить разные результаты, если другая транзакция изменила данные и зафиксировала изменения между двумя чтениями.
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
🚩Repeatable Read (повторяемое чтение)
Транзакция гарантирует, что если она читает данные, они останутся неизменными до завершения транзакции. Более строгий уровень изоляции, который предотвращает грязные и неповторяющиеся чтения, но не предотвращает фантомные чтения.
Аномалии: Фантомное чтение (Phantom Read): Транзакция может получить разные результаты при выполнении одного и того же запроса, если другая транзакция добавляет или удаляет строки, которые соответствуют условиям запроса.
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
🚩Serializable (сериабельность)
Самый строгий уровень изоляции, который эмулирует последовательное выполнение транзакций. Полностью предотвращает грязные чтения, неповторяющиеся чтения и фантомные чтения.
Аномалии: Никаких аномалий. Все транзакции выполняются так, как если бы они были выполнены последовательно.
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
Ставь 👍 и забирай 📚 Базу знанийКогда подрядчик тележится, добавляйте его в Коллабу
Битрикс24 Коллабы – платформа для эффективной работы с подрядчиками. Тут обсуждения превращаются в задачи, а видео созвон можно собрать одной кнопкой. Любой проект можно разложить по полочкам с понятным ТЗ и обозначенными сроками.
Работайте в Битрикс24 и создавайте Коллабы с подрядчиками.
Начать
#реклама 16+
collabs.bitrix24.ru
О рекламодателе
🤔 Что такое нормализация и денормализация?
Это процесс разбиения таблиц в базе данных для устранения дублирования данных и предотвращения аномалий.
Преимущества нормализации:
- Уменьшает дублирование данных.
- Облегчает обновление данных.
- Снижает вероятность аномалий вставки, удаления и обновления.
Денормализация – процесс объединения данных, чтобы уменьшить количество JOIN-запросов и ускорить чтение.
Когда использовать денормализацию?
- Когда важна производительность чтения, а не запись.
- В OLAP-системах (анализ данных).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что знаешь про нормальные формы в БД?
Нормальные формы (Normal Forms, NF) в базах данных — это правила, которые помогают организовать данные так, чтобы избежать избыточности и аномалий при обновлении, удалении и вставке.
🚩Основные нормальные формы
🟠Первая нормальная форма (1NF)
убирает повторяющиеся группы и делает все столбцы атомарными.
Что нужно сделать?
Каждое поле должно содержать только одно значение.
В таблице нет повторяющихся строк.
🟠Вторая нормальная форма (2NF)
убирает зависимости от части составного ключа.
Что нужно сделать?
Данные, которые зависят не от всего первичного ключа, вынести в отдельные таблицы.
Должна быть уже в 1NF.
🟠Третья нормальная форма (3NF)
убирает транзитивные зависимости.
Что нужно сделать?
Данные должны зависеть только от первичного ключа и не зависеть от других неключевых полей.
Должна быть уже в 2NF.
🚩Дополнительные нормальные формы
🟠Бойса-Кодда (BCNF)
более строгая версия 3NF, исключает случаи, когда таблица имеет несколько потенциальных ключей, но один из них влияет на другой.
🟠Четвёртая нормальная форма (4NF)
убирает многозначные зависимости (например, если студент изучает несколько предметов, но предметы никак не связаны друг с другом).
🟠Пятая нормальная форма (5NF)
разбиение таблицы на подтаблицы для минимизации избыточности данных.
Ставь 👍 и забирай 📚 Базу знаний
Как айтишнику быстро получить оффер
Бесплатный воркшоп 20 марта
Почему одному кандидату предлагают оффер после первого интервью, а другому говорят: «Мы вам перезвоним»?
Причина в подаче своего опыта.
Записывайся, чтобы узнать:
— Как подготовиться к собеседованию
— Как презентовать свой опыт так, чтобы тебя запомнили
— Как проверяют hard skills и как к этому подготовиться
— Как произвести хорошее впечатление, запомнится рекрутеру и сделать так, чтобы захотели работать именно с тобой
Приходи на бесплатный воркшоп и узнай, как прокачать навык самопрезентации и получить работу мечты
Зарегистрироваться
#реклама 16+
my.mts-link.ru
О рекламодателе
🤔 Что такое полнотекстовый индекс?
Это индекс в SQL, который ускоряет поиск по тексту (например, в блогах, статьях).
Зачем нужен?
- Позволяет искать по нескольким словам и частям слов.
- Поддерживает ранжирование результатов по релевантности.
- Работает через MATCH() AGAINST() в MySQL.
Полнотекстовый поиск эффективнее, чем LIKE, так как индексирует отдельные слова, а не всю строку.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Available now! Telegram Research 2025 — the year's key insights 
