fa
Feedback
PHP | Вопросы собесов

PHP | Вопросы собесов

رفتن به کانال در Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @easyoffer_adv

نمایش بیشتر
2 343
مشترکین
-224 ساعت
-57 روز
-2430 روز
آرشیو پست ها
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама 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-аналитик — профессия будущего! Аналитика данных — одна из самых востребованных сфер на рынке труда! Компании нуждаются в
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) Получите современное бизнес образование от международных экспертов. ✅Более
Бизнес образование в 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 дистанционных Использование коммутаторов
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 Коллабы – платформа для эффективной работы с подрядчиками. Тут обсуждения превращаются в задачи, а видео созвон можно собрать одной кнопкой. Любой проект можно разложить по полочкам с понятным ТЗ и обозначенными сроками. Работайте в Битрикс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, так как индексирует отдельные слова, а не всю строку. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний