PHP | Вопросы собесов
2.37K subscribers
35 photos
1.33K links
Download Telegram
🤔 Что такое горизонтальное шардирование?

Горизонтальное шардирование разделяет данные на отдельные шарды по строкам, распределяя их между несколькими серверами. Это позволяет увеличивать масштаб за счёт добавления новых серверов.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 В чём преимущество hash-индекса и btree-индекса?

1. Hash-индекс:
• Быстрый доступ для равенств (=) и точных запросов.
• Не подходит для диапазонных запросов.
2. B-Tree индекс:
• Оптимален для диапазонных запросов и сортировки.
• Поддерживает равенства и сравнения (<, >).
• Медленнее hash-индекса для точного поиска.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 В чем отличие адаптера от декоратора?

Это структурные паттерны проектирования, которые используются в объектно-ориентированном программировании для решения различных задач по структурированию классов и объектов. Несмотря на то, что оба паттерна оборачивают другие объекты, их цели и способы применения различаются.

🚩Адаптер (Adapter)

Преобразовать интерфейс одного класса в интерфейс другого класса, который ожидают клиенты. Адаптер позволяет классам с несовместимыми интерфейсами работать вместе.
Адаптер реализует интерфейс, который должен быть представлен клиенту, и перенаправляет вызовы клиента к объекту с другим интерфейсом. Важно, что адаптер изменяет интерфейс взаимодействия, но не добавляет новую функциональность.

Вы разрабатываете приложение, которое должно использовать существующую библиотеку классов, интерфейсы которой не совместимы с остальной частью вашего приложения. Создав адаптер для этих классов, вы можете интегрировать библиотеку без изменения её кода или кода приложения.

🚩Декоратор (Decorator)

Динамически добавить новую функциональность объекту. В отличие от наследования, декораторы предоставляют гибкий способ расширения функциональности объекта во время выполнения.
Декоратор оборачивает исходный объект, предоставляя дополнительное поведение. Он имеет тот же базовый интерфейс, что и оборачиваемый объект, что позволяет использовать декораторы взаимозаменяемо с исходными объектами.

Вы разрабатываете систему уведомлений и хотите добавить возможность логирования или шифрования сообщений. Создав декораторы для базового класса отправки сообщений, вы можете легко добавить новую функциональность, обернув базовый объект отправки в один или несколько декораторов.

🚩Отличия

🟠Цель применения
Адаптер используется для обеспечения совместимости между различными интерфейсами, позволяя объектам с несовместимыми интерфейсами работать вместе. Декоратор добавляет новую функциональность объектам, не изменяя их интерфейсы.

🟠Изменение интерфейса
Адаптер изменяет интерфейс объекта для совместимости с другим интерфейсом. Декоратор не изменяет интерфейс, но добавляет новое поведение, сохраняя при этом оригинальный интерфейс объекта.

🟠Добавление функциональности
Декораторы предназначены для добавления новой функциональности объектам. Адаптеры не добавляют новую функциональность; их основная задача — обеспечить работу существующей функциональности через другой интерфейс.

Ставь 👍 и забирай 📚 Базу знаний
🤔 Что такое абстрактный класс?

Абстрактный класс — это класс, который не может быть создан как объект и служит для того, чтобы задавать общие свойства и методы для классов-наследников. Он может содержать как абстрактные, так и конкретные методы с реализацией. Наследники обязаны реализовать все абстрактные методы родительского класса. Абстрактные классы полезны, когда требуется частичная реализация с обязательной реализацией некоторых методов в дочерних классах.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Что такое namespaces

Namespaces в PHP — это способ организации кода для предотвращения конфликтов имен между классами, функциями и константами. Использование пространства имен позволяет создать уникальные идентификаторы, чтобы избежать пересечений между именами в крупных проектах или при использовании сторонних библиотек.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 Расскажи про полиморфизм

Полиморфизм — это концепция ООП, которая позволяет объектам разных классов обрабатывать одинаковые сообщения или методы по-разному. Полиморфизм позволяет использовать общий интерфейс для взаимодействия с объектами разных типов, не зная их конкретный класс. Он облегчает расширение и поддержку кода, делая его более гибким и удобным для добавления новых классов.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔 В чем разница кэширования, кодирования, шифрования?

1. Кэширование:
- Сохранение данных для быстрого повторного доступа, уменьшая время загрузки и нагрузку на сервер.
- Пример: сохранение веб-страницы в браузере.
2. Кодирование:
- Преобразование данных в другой формат для удобства передачи или совместимости.
- Пример: Base64 для передачи бинарных данных через текстовые протоколы.
3. Шифрование:
- Защита данных с использованием ключей, чтобы их мог прочитать только авторизованный получатель.
- Пример: AES или RSA для передачи конфиденциальной информации.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Чем отличается BacktimeTable от Backtime?

1. BacktimeTable может быть структурой данных или таблицей, используемой для хранения промежуточных результатов в задаче обратного отсчёта или обработки данных.
2. Backtime часто означает сам процесс обратного отсчёта или времени ожидания.
3. Различие зависит от контекста: таблица — для хранения, backtime — для логики.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM