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

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

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

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

نمایش بیشتر
2 343
مشترکین
+124 ساعت
-37 روز
-2230 روز
آرشیو پست ها
🤔 Чем отличается PHP от C++? PHP и C++ — это разные языки программирования, предназначенные для разных целей. PHP — это язык для веб-разработки, предназначенный для серверной стороны. Он в первую очередь используется для создания динамических веб-страниц. C++ — это язык общего назначения, используемый для разработки программного обеспечения с высокой производительностью, таких как игры, операционные системы, драйвера и т.д. PHP интерпретируется на сервере, а C++ компилируется в машинный код. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Оптимизация налогов! Законно! С гарантией 3 года! ⚡Оптимизируем до 20 млн рублей бесплатно новым клиентам! За текущий или предыдущие кварталы! Стоимость от 0,9%!💰 🗒Оставьте заявку и мы бесплатно окажем вам подробную консультацию! 👍Жмите кнопку "Подать заявку" и узнайте подробности персонально для вашего бизнеса! Подать заявку #реклама О рекламодателе

🤔 Что такое репликация? Это процесс создания и поддержания копий данных в разных местах для обеспечения доступности, надежности и производительности системы. Она используется в базах данных, файловых системах и других системах хранения данных. 🚩Зачем нужна репликация 🟠Повышение доступности Если одна копия данных становится недоступной из-за сбоя или отключения сервера, другая копия может продолжить обслуживание запросов, минимизируя время простоя. 🟠Улучшение производительности Репликация позволяет распределить нагрузку на несколько серверов, что улучшает время отклика системы при больших объемах запросов. 🟠Резервное копирование и восстановление данных Репликация обеспечивает наличие резервных копий данных, которые можно использовать для восстановления системы после сбоя. 🟠Географическое распределение данных Репликация позволяет хранить данные ближе к пользователям, что снижает задержку при доступе к данным. 🚩Виды репликации 🟠Синхронная репликация Данные одновременно записываются на основной и реплицированный серверы. Высокая консистентность данных. Замедление операций записи, так как они должны быть подтверждены на всех репликах. 🟠Асинхронная репликация Данные сначала записываются на основной сервер, а затем копируются на реплицированный сервер с задержкой. Быстрые операции записи на основной сервер. Возможность временной неконсистентности данных между серверами. 🟠Полная репликация Все данные копируются на все реплицированные серверы. Простота реализации и высокая доступность данных. Высокие затраты на хранение и передачу данных. 🟠Частичная репликация Только часть данных копируется на реплицированные серверы. Экономия ресурсов хранения и передачи данных. Более сложное управление данными. 🚩Пример использования MySQL поддерживает репликацию, что позволяет автоматически копировать данные с одного сервера (мастера) на один или несколько других серверов (слейвов). 1⃣Настройка мастера
-- Включаем бинарные логи на мастере
[mysqld]
log-bin=mysql-bin
server-id=1
2⃣Создание пользователя для репликации на мастере
CREATE USER 'replica_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
3⃣Настройка слейва
-- Настройки слейва
[mysqld]
server-id=2
4⃣Запуск репликации на слейве
CHANGE MASTER TO
    MASTER_HOST='master_host',
    MASTER_USER='replica_user',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS= 107;
START SLAVE;
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое Rest REST (Representational State Transfer) — это архитектурный стиль для разработки веб-сервисов. Он основывается на стандартах HTTP и включает использование простых методов (GET, POST, PUT, DELETE) для взаимодействия с ресурсами, представленных в виде URL. RESTful API являются безсессионными, и каждый запрос от клиента к серверу должен содержать всю необходимую информацию для выполнения операции. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Миграция в облако? Это легко! Собственная инфраструктура устарела или не справляется с нагрузками? Используйте облачные ресур
Миграция в облако? Это легко! Собственная инфраструктура устарела или не справляется с нагрузками? Используйте облачные ресурсы! Эксперты Yandex Cloud помогут перейти в облако быстро, легко и безопасно. ✅ Мы полностью сопровождаем процесс. ✅ От вас — только инженер с доступом к инфраструктуре. ✅ Архитектура под ваши задачи, миграция и поддержка на каждом шагу — всё включено. ⚡Переходите в Yandex Cloud и забудьте о старом железе. А если успеете подать заявку до 31 декабря, мы покроем расходы на инженеров и тестовую инфраструктуру. Подать заявку #реклама 16+ yandex.cloud О рекламодателе

🤔 Что делает final? Ключевое слово final в PHP используется для предотвращения дальнейшего наследования классов или переопределения методов. Оно может применяться к классам и методам. 🚩Применение `final` к классам Когда класс объявляется как final, он не может быть унаследован другим классом. Это означает, что никто не сможет создать подкласс от этого класса.
final class FinalClass {
    public function doSomething() {
        echo "Doing something";
    }
}

// Попытка наследования приведет к ошибке
class ChildClass extends FinalClass {
    // Ошибка: Class ChildClass cannot extend final class FinalClass
}
🚩Когда использовать Когда необходимо гарантировать, что класс не будет изменен через наследование, что может быть важно для обеспечения безопасности или целостности логики программы. Когда класс реализует окончательную логику, которую не нужно изменять. 🚩Применение `final` к методам Когда метод объявляется как final, он не может быть переопределен в наследуемом классе. Это означает, что если класс наследуется, то наследуемый класс не сможет изменить реализацию этого метода.
class BaseClass {
    final public function doSomething() {
        echo "Doing something in base class";
    }
}

class ChildClass extends BaseClass {
    // Попытка переопределения приведет к ошибке
    public function doSomething() {
        // Ошибка: Cannot override final method BaseClass::doSomething()
    }
}
🚩Когда использовать Когда необходимо гарантировать, что метод останется неизменным во всех производных классах, что важно для поддержания определенного поведения или контрактов в системе. Когда метод реализует важную бизнес-логику, которую не следует изменять. 🚩Пример использования `final` в реальном проекте Рассмотрим пример системы управления пользователями, где класс UserManager отвечает за управление пользователями. Допустим, что есть метод, который выполняет важную проверку безопасности, и вы хотите предотвратить его изменение в подклассах:
class UserManager {
    final public function verifyUser($user) {
        // Важная логика проверки пользователя
        if ($user->isValid()) {
            echo "User verified";
        } else {
            echo "User verification failed";
        }
    }

    public function createUser($name) {
        // Логика создания пользователя
        echo "User created: " . $name;
    }
}

class CustomUserManager extends UserManager {
    // Переопределение createUser допустимо
    public function createUser($name) {
        // Кастомная логика создания пользователя
        echo "Custom user created: " . $name;
    }

    // Попытка переопределить verifyUser приведет к ошибке
    public function verifyUser($user) {
        // Ошибка: Cannot override final method UserManager::verifyUser()
    }
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое namespaces Namespaces в PHP — это способ организации кода для предотвращения конфликтов имен между классами, функциями и константами. Использование пространства имен позволяет создать уникальные идентификаторы, чтобы избежать пересечений между именами в крупных проектах или при использовании сторонних библиотек. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Мастер-класс по Python для школьников. Бесплатно! Онлайн-урок от ведущего ИТ ВУЗа страны - Университета Иннополис для ученико
Мастер-класс по Python для школьников. Бесплатно! Онлайн-урок от ведущего ИТ ВУЗа страны - Университета Иннополис для учеников 6-11 классов. 👍Бесплатно! ✅Познакомим с профессией тестировщика. ✅Научим проверять программы, находить баги. ✅На практике отработаем использование инструментов и методов тестирования. ⚡Ваш ребёнок за один час создаст автоматический тест на языке программирования Python и сможет использовать полученные знания в дальнейшем! Для участия важно знание основ программирования на Python. Помогите ребёнку освоить востребованную профессию. Регистрируйтесь! Зарегистрироваться #реклама 16+ progmatica.innopolis.university О рекламодателе

🤔 Что появилось в версии 7.4 PHP? 🟠Стрелочные функции (Arrow Functions) Являются сокращенным синтаксисом для анонимных функций. Они облегчают написание коротких функций.
$nums = [1, 2, 3, 4, 5];
$squared = array_map(fn($n) => $n * $n, $nums);
print_r($squared); // Выведет: [1, 4, 9, 16, 25]
🟠Типизация свойств класса (Typed Properties) Теперь можно указывать типы свойств в классах, что повышает безопасность и надежность кода.
class User {
    public int $id;
    public string $name;

    public function __construct(int $id, string $name) {
        $this->id = $id;
        $this->name = $name;
    }
}

$user = new User(1, "John");
echo $user->name; // Выведет: John
🟠Оператор null coalescing assignment (??=) Этот оператор упрощает установку значения по умолчанию, если переменная не установлена.
$data['name'] ??= 'Default Name';
echo $data['name']; // Выведет: Default Name
🟠Разрешение функции с переменным числом аргументов (spread operator) в массивы Теперь можно использовать оператор ... для распаковки массивов в функции.
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$combined = [...$array1, ...$array2];
print_r($combined); // Выведет: [1, 2, 3, 4, 5, 6]
🟠Weak References (Слабые ссылки) Слабые ссылки позволяют удерживать ссылку на объект без предотвращения его удаления сборщиком мусора.
$obj = new stdClass();
$weakRef = WeakReference::create($obj);

var_dump($weakRef->get()); // Выведет: object(stdClass)#1 (0) {}

unset($obj);

var_dump($weakRef->get()); // Выведет: NULL
🟠Определение массива в константах Теперь можно использовать массивы как константы.
class MyClass {
    public const MY_ARRAY = [1, 2, 3];
}

print_r(MyClass::MY_ARRAY); // Выведет: [1, 2, 3]
🟠Улучшения производительности и устранение устаревших функций PHP 7.4 также включает множество улучшений производительности и удаление устаревших функций и конструкций, что делает язык более эффективным и безопасным. Ставь 👍 и забирай 📚 Базу знаний

🤔 В чем отличие адаптера от декоратора Адаптер и декоратор — это структурные паттерны проектирования, но они решают разные задачи. Адаптер используется для преобразования интерфейса одного класса в интерфейс, который ожидает клиент, чтобы классы с несовместимыми интерфейсами могли работать вместе. Декоратор, наоборот, добавляет новую функциональность к объекту, не изменяя его структуру, позволяя динамически изменять поведение объекта. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Цены на все Серверы онлайн! Удобный конфигуратор! Серверы STSS Flagman✅ Огромный выбор решений 👍 Консультации лучших эксперт
Цены на все Серверы онлайн! Удобный конфигуратор! Серверы STSS Flagman✅ Огромный выбор решений 👍 Консультации лучших экспертов 👌 Непревзойденный сервис ❤️ Получить предложение #реклама stss.ru О рекламодателе

🤔 Какие версии PHP сейчас поддерживаются? 🚩Активная поддержка 🟠PHP 8.3 Эта версия была выпущена 23 ноября 2023 года. Активная поддержка будет продолжаться до 31 декабря 2025 года, а затем будет обеспечиваться поддержка только для критических исправлений безопасности до 31 декабря 2027 года. 🟠PHP 8.2 Выпущена 8 декабря 2022 года. Активная поддержка продолжается до 31 декабря 2024 года, а затем поддержка безопасности до 31 декабря 2026 года. 🚩Поддержка только для безопасности 🟠PHP 8.1 Выпущена 25 ноября 2021 года. Активная поддержка завершилась 25 ноября 2023 года. Поддержка безопасности будет предоставляться до 31 декабря 2025 года. 🟠Версии PHP 8.0 и старше Больше не поддерживаются, что означает, что они не получают ни исправлений ошибок, ни обновлений безопасности. Поэтому рекомендуется обновить свои проекты до одной из поддерживаемых версий. Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое http? HTTP (HyperText Transfer Protocol) — это протокол прикладного уровня, используемый для передачи данных между клиентом и сервером в интернете. Он работает по модели запрос-ответ, где клиент запрашивает ресурсы, а сервер предоставляет их. HTTP является основой для работы веб-приложений. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

🤔 Какие микросервисные паттерны знаешь? Микросервисные паттерны представляют собой различные архитектурные подходы и методики, используемые для проектирования и реализации микросервисных систем. 🟠Паттерны разбиения на микросервисы Decomposition by Business Capability (Декомпозиция по бизнес-возможностям). Разбиение системы на микросервисы на основе ключевых бизнес-функций, таких как выставление счетов, управление заказами и т.д. В интернет-магазине можно выделить микросервисы для управления продуктами, обработки заказов и управления пользователями. Decomposition by Subdomain (Декомпозиция по субдоменам). Использование методологии Domain-Driven Design (DDD) для разделения на микросервисы по субдоменам. В банковской системе могут быть субдомены для обработки платежей, управления счетами и управления кредитами. 🟠Паттерны взаимодействия и координации API Gateway (Шлюз API). Шлюз API действует как единая точка входа для всех клиентов, перенаправляя запросы к соответствующим микросервисам. Шлюз API может управлять аутентификацией, маршрутизацией запросов и агрегацией данных из нескольких микросервисов. Service Mesh (Сервисная сетка). Инфраструктурный слой для управления сетевыми взаимодействиями между микросервисами, предоставляющий такие функции, как балансировка нагрузки, наблюдаемость и безопасность. Использование Istio или Linkerd для управления сетевыми взаимодействиями между микросервисами. 🟠Паттерны управления данными Database per Service (База данных на микросервис). Каждый микросервис имеет свою собственную базу данных, что позволяет избежать проблем с общей базой данных. В системе электронной коммерции, микросервис для управления товарами может использовать MongoDB, а микросервис для обработки заказов — PostgreSQL. Event Sourcing (Источники событий). Сохранение состояния системы в виде последовательности событий, что позволяет легко восстанавливать состояние системы. В системе управления заказами, каждое изменение статуса заказа может сохраняться как отдельное событие. CQRS (Command Query Responsibility Segregation). Разделение модели данных на операции чтения и записи, что позволяет оптимизировать производительность и масштабируемость. Использование одной модели для обработки команд (записей) и другой модели для выполнения запросов (чтения). 🟠Паттерны устойчивости и отказоустойчивости Circuit Breaker (Схема размыкания цепи). Предотвращение избыточных попыток связи с неработающими микросервисами путем размыкания цепи после определенного числа неудач. В микросервисе обработки платежей использование схемы размыкания цепи для предотвращения перегрузки системы при сбоях в обработке платежей. Bulkhead (Переборка). Разделение ресурсов на изолированные группы для предотвращения каскадных сбоев. В системе управления заказами ограничение числа одновременных запросов к каждому микросервису для предотвращения перегрузки. 🟠Паттерны мониторинга и управления Health Check (Проверка состояния). Регулярная проверка состояния микросервисов для обеспечения их доступности и работоспособности. Реализация эндпоинта /health для каждого микросервиса, который возвращает статус его состояния. Centralized Logging (Централизованный логирование). Сбор и анализ логов из всех микросервисов в одном месте для упрощения мониторинга и отладки. Использование Elasticsearch, Logstash и Kibana (ELK Stack) для централизованного сбора и анализа логов. Ставь 👍 и забирай 📚 Базу знаний

🤔 Как работает PHP? PHP — это интерпретируемый язык серверной стороны, обрабатывающий запросы и возвращающий динамический HTML-контент клиенту. Сервер передает PHP-скрипты интерпретатору, который выполняет код и формирует ответ. PHP широко используется для разработки веб-приложений и интеграции с базами данных. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Узнайте подробнее о «Золотой визе» Греции! «Золотая виза» Греции остаётся самой выгодной в Европе: ✅Минимальный порог инвести
Узнайте подробнее о «Золотой визе» Греции! «Золотая виза» Греции остаётся самой выгодной в Европе: ✅Минимальный порог инвестиций 250 000 евро ✅Без проживания ✅Инвестиции с высокой доходностью ✅Поможем разблокировать счета в Европе Узнайте актуальную информацию о программе, получите консультацию экспертов Запись вебинара доступна на сайте! Смотреть #реклама 16+ webinar.tranio.ru О рекламодателе

🤔 Может ли абстрактный класс содержать в себе частный метод и почему? Да, абстрактный класс в PHP может содержать частный (private) метод. Это возможно и иногда даже полезно по нескольким причинам. 🚩Почему это возможно и полезно 🟠Инкапсуляция Частные методы помогают скрыть внутреннюю реализацию абстрактного класса, позволяя использовать эти методы только внутри самого абстрактного класса. Это полезно для организации и упрощения кода, когда некоторые вспомогательные методы не должны быть доступны вне класса или его потомков. 🟠Повторное использование кода Частные методы могут использоваться для разбиения кода на логические блоки, что облегчает его повторное использование внутри класса. Это особенно полезно в больших абстрактных классах, где могут быть несколько сложных операций.
abstract class AbstractClass {
    // Абстрактный метод, который должен быть реализован в подклассах
    abstract protected function doSomething();

    // Пример частного метода
    private function helperMethod() {
        // Внутренняя логика, недоступная подклассам
        return "Helper method result";
    }

    // Публичный метод, использующий частный метод
    public function performTask() {
        echo $this->helperMethod();
        $this->doSomething();
    }
}

class ConcreteClass extends AbstractClass {
    protected function doSomething() {
        echo " Doing something in ConcreteClass";
    }
}

$instance = new ConcreteClass();
$instance->performTask(); // Выведет: Helper method result Doing something in ConcreteClass
🚩Основные моменты 🟠Частные методы в абстрактных классах Доступны только внутри самого абстрактного класса и не могут быть вызваны или переопределены в подклассах. 🟠Инкапсуляция и организация кода Частные методы помогают скрыть детали реализации и улучшить структуру кода. 🟠Повторное использование Вспомогательные методы могут быть использованы для выполнения повторяющихся задач внутри класса. Ставь 👍 и забирай 📚 Базу знаний

🤔 Как происходит процесс раскатки (разворачивания) деплоя? Процесс раскатки включает сборку приложения, загрузку на сервер и настройку среды выполнения. Используются инструменты автоматизации, такие как Ansible, Jenkins или Docker, чтобы минимизировать ручной труд. Также применяются проверки на каждом этапе для предотвращения ошибок. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Попробуйте себя в мобильной разработке и аналитике Студенты, готовы прокачивать навыки программирования вместе с опытными пре
Попробуйте себя в мобильной разработке и аналитике Студенты, готовы прокачивать навыки программирования вместе с опытными преподавателями Т-Банка? Узнайте, как создавать приложения, анализировать данные и автоматизировать рутинные задачи, на одном из онлайн-курсов Т-Образования. Для учебы нужно 2—3 часа в неделю. Подайте заявку сейчас. Подать заявку #реклама 16+ education.tbank.ru О рекламодателе