en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

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

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

Open in Telegram

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

Show more
2 293
Subscribers
No data24 hours
-67 days
-2530 days
Attracting Subscribers
Oct '26
October '26
+14
in 0 channels
September '26
+20
in 0 channels
Get PRO
August '26
+22
in 0 channels
Get PRO
July '26
+38
in 0 channels
Get PRO
June '26
+24
in 1 channels
Get PRO
May '26
+23
in 0 channels
Get PRO
April '26
+21
in 0 channels
Get PRO
March '26
+27
in 0 channels
Get PRO
February '26
+47
in 0 channels
Get PRO
January '26
+42
in 0 channels
Get PRO
December '25
+33
in 0 channels
Get PRO
November '25
+70
in 0 channels
Get PRO
October '25
+44
in 0 channels
Get PRO
September '25
+46
in 0 channels
Get PRO
August '25
+46
in 0 channels
Get PRO
July '25
+52
in 0 channels
Get PRO
June '25
+52
in 0 channels
Get PRO
May '25
+58
in 0 channels
Get PRO
April '25
+82
in 0 channels
Get PRO
March '25
+132
in 3 channels
Get PRO
February '25
+107
in 2 channels
Get PRO
January '25
+125
in 54 channels
Get PRO
December '24
+56
in 1 channels
Get PRO
November '24
+69
in 1 channels
Get PRO
October '24
+186
in 45 channels
Get PRO
September '24
+247
in 249 channels
Get PRO
August '24
+103
in 0 channels
Get PRO
July '24
+200
in 54 channels
Get PRO
June '24
+707
in 244 channels
Get PRO
May '24
+698
in 189 channels
Get PRO
April '24
+471
in 23 channels
Date
Subscriber Growth
Mentions
Channels
26 October+1
25 October0
24 October+1
23 October0
22 October0
21 October0
20 October+3
19 October+1
18 October0
17 October+1
16 October0
15 October0
14 October+1
13 October+1
12 October+1
11 October+2
10 October0
09 October0
08 October0
07 October0
06 October0
05 October0
04 October0
03 October+1
02 October0
01 October+1
Channel Posts
🤔 Какими способами организовать порции? Разделение данных на порции (batch processing) может быть организовано разными методами: 1. LIMIT и OFFSET – классический способ для пагинации в SQL. 2. Cursor-based pagination – используется в API, позволяет получать новые данные без смещения. 3. Частичная загрузка данных – загружать данные по мере необходимости (lazy loading). 4. Очереди (Message Queues) – например, RabbitMQ или Kafka для обработки данных в потоках. 5. Шардирование данных – разделение больших таблиц на более мелкие логические части. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

2
🤔 Какие есть виды join? JOIN – это операция в SQL, которая позволяет объединять данные из двух или более таблиц на основе общего поля. В SQL есть 5 основных видов JOIN 🟠`INNER JOIN` пересечение двух таблиц (только совпадающие записи). 🟠`LEFT JOIN` все записи из левой таблицы + совпадения из правой. 🟠`RIGHT JOIN` все записи из правой таблицы + совпадения из левой. 🟠`FULL JOIN` объединяет все записи из обеих таблиц. 🟠`CROSS JOIN` декартово произведение (каждая строка первой таблицы соединяется с каждой строкой второй). 🚩`INNER JOIN` – только совпадения Возвращает только те строки, у которых есть совпадения в обеих таблицах. SELECT users.id, users.name, orders.amount FROM users INNER JOIN orders ON users.id = orders.user_id; 🚩`LEFT JOIN` – все из левой таблицы + совпадения Возвращает все записи из левой таблицы, а если в правой нет совпадения – подставляет NULL. SELECT users.id, users.name, orders.amount FROM users LEFT JOIN orders ON users.id = orders.user_id; Ставь 👍 и забирай 📚 Базу знаний
149
3
🤔 Что известно про фабрики? Это порождающий паттерн, создающий объекты без явного указания их класса. 1. Simple Factory: один метод создаёт разные объекты. 2. Factory Method: делегирует создание объектов подклассам. 3. Abstract Factory: создаёт семейства связанных объектов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
189
4
🤔 Что будет если мы цифру 3 int сложим плюсом со строкой 4 что будет? Если в PHP выполнить операцию сложения (+) числа 3 (int) и строки "4" (string), то PHP автоматически приведёт строку "4" к числу, и произойдёт арифметическая операция: $result = 3 + "4"; echo $result; // 7 🚩Как это работает? PHP видит, что используется оператор +, который применяется только к числам. "4" — это строка, но она содержит только число, поэтому PHP автоматически преобразует её в int. Затем выполняется операция 3 + 4, и результатом будет 7. 🚩Что если строка не является числом? Если строка не является корректным числом, PHP попробует взять из неё число с начала строки. Если в начале строки нет цифр, то строка будет воспринята как 0. Примеры странных случаев echo 3 + "4abc"; // 7 (строка "4abc" преобразуется в число 4) echo 3 + "abc4"; // 3 (строка "abc4" преобразуется в 0, т.к. начинается не с цифры) echo 3 + "0.5"; // 3.5 (строка "0.5" преобразуется в число 0.5) echo 3 + " "; // 3 (пробелы преобразуются в 0) 🚩Что если использовать `.` вместо `+`? Если вместо + использовать . (конкатенацию строк), то числа не складываются, а просто соединяются как строки echo 3 . "4"; // "34" (строка) Ставь 👍 и забирай 📚 Базу знаний
199
5
🤔 Что такое списочный тип? Это структура данных, представляющая упорядоченный набор элементов, где каждый элемент связан с предыдущим и следующим. 1. Пример — связанный список (linked list), где каждый узел содержит значение и ссылку на следующий узел. 2. Такие типы обеспечивают удобное добавление и удаление элементов, но имеют медленный доступ по индексу (O(n)). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
185
6
🤔 Зачем придумали анонимные классы? Анонимные классы в PHP были введены в версии 7.0 и позволяют создавать одноразовые объекты без необходимости предварительного объявления класса. Они имеют несколько преимуществ и предназначены для решения ряда задач в программировании. Вот основные причины и случаи, для которых они были придуманы: 🚩Зачем придумали анонимные классы 🟠Упрощение кода Анонимные классы позволяют создать класс на месте, в том же файле, где он используется, без необходимости его предварительного определения. Это упрощает и сокращает код, особенно для одноразовых задач. $logger = new class { public function log($message) { echo $message; } }; $logger->log("Hello, World!"); // Выведет: Hello, World! 🟠Инкапсуляция и уменьшение загрязнения пространства имен Поскольку анонимные классы не имеют имен, они не добавляют новых имен в глобальное пространство имен, что помогает избежать конфликтов имен и делает код более чистым. 🟠Использование одноразовых объектов Анонимные классы удобны, когда нужно создать объект для одноразового использования, например, в тестах, или для передачи в функции или методы. function handleRequest($handler) { $handler->process(); } handleRequest(new class { public function process() { echo "Processing request"; } }); // Выведет: Processing request 🟠Более гибкая реализация интерфейсов и абстрактных классов: Анонимные классы могут реализовывать интерфейсы или наследовать от абстрактных классов, предоставляя быстрый способ создать конкретные реализации на месте. interface Logger { public function log($message); } $logger = new class implements Logger { public function log($message) { echo $message; } }; $logger->log("Logging message"); // Выведет: Logging message 🟠Улучшение тестирования В юнит-тестах анонимные классы позволяют быстро создавать мок-объекты (mock objects) для тестирования без необходимости создавать отдельные классы для каждой тестовой ситуации. class Service { private $logger; public function __construct($logger) { $this->logger = $logger; } public function execute() { $this->logger->log("Service executed"); } } $mockLogger = new class { public function log($message) { echo "Mock: " . $message; } }; $service = new Service($mockLogger); $service->execute(); // Выведет: Mock: Service executed Ставь 👍 и забирай 📚 Базу знаний
179
7
🤔 Что такое DP (Dynamic Programming)? 1. Динамическое программирование — это метод оптимизации, используемый для решения задач, разбиваемых на подзадачи. 2. Результаты подзадач сохраняются и переиспользуются, чтобы избежать повторных вычислений. 3. Используется для задач оптимизации, например, нахождение кратчайшего пути, задачи Фибоначчи или задач на разбиение. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
201
8
🤔 В чем ставится всегда цель теста? Цель тестирования всегда заключается в том, чтобы выявить ошибки, дефекты и недостатки в программном обеспечении до того, как оно будет выпущено или внедрено. Тестирование помогает убедиться, что программа работает правильно, соответствует требованиям и ожиданиям пользователей, а также обеспечивает высокое качество и надежность продукта. 🚩Основные цели 🟠Выявление ошибок и дефектов Найти и исправить ошибки, которые могли возникнуть в ходе разработки. Это помогает предотвратить сбои в работе программы. 🟠Подтверждение соответствия требованиям Убедиться, что программное обеспечение соответствует заданным требованиям и спецификациям. Это включает проверку функциональности, производительности, безопасности и других аспектов. 🟠Повышение качества продукта Тестирование помогает улучшить общее качество программного обеспечения, делая его более стабильным, надежным и удобным в использовании. 🟠Обеспечение пользовательского опыта Убедиться, что конечные пользователи получат продукт, который удовлетворяет их потребности и ожидания, обеспечивая тем самым положительный пользовательский опыт. 🚩Типы 🟠Функциональное тестирование Проверка того, что каждый компонент системы работает в соответствии с требованиями. 🟠Нефункциональное тестирование Проверка аспектов, не связанных напрямую с функциональностью, таких как производительность, безопасность, удобство использования и т.д. 🟠Юнит-тестирование Тестирование отдельных компонентов или модулей кода. 🟠Интеграционное тестирование Проверка взаимодействия между различными модулями или компонентами системы. 🟠Системное тестирование Полная проверка всей системы в целом. 🟠Приемочное тестирование Проверка системы на соответствие бизнес-требованиям и готовность к использованию конечными пользователями. use PHPUnit\Framework\TestCase; class CalculatorTest extends TestCase { public function testAdd() { $calc = new Calculator(); $this->assertEquals(4, $calc->add(2, 2)); $this->assertEquals(0, $calc->add(-1, 1)); } } class Calculator { public function add($a, $b) { return $a + $b; } } Ставь 👍 и забирай 📚 Базу знаний
208
9
🤔 Зачем генераторы, если есть итераторы? 1. Генераторы упрощают создание итераторов, предоставляя возможность обхода коллекций без написания полноценного класса. 2. Они экономят память, поскольку возвращают значения по одному через yield, а не загружают всю коллекцию в память. 3. Итераторы требуют ручной реализации методов iter и next, тогда как генераторы используют стандартные функции. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
221
10
🤔 Что такое di container? Это специальный инструмент или объект в программировании, который управляет созданием и внедрением зависимостей в объекты. Этот контейнер автоматически решает, какие зависимости требуются объекту, и предоставляет их при создании объекта, тем самым упрощая управление зависимостями в приложении. 🚩Зачем нужен DI-контейнер 🟠Автоматизация управления зависимостями DI-контейнер автоматически создает и внедряет зависимости, избавляя от необходимости вручную передавать их в объекты. 🟠Гибкость и модульность Позволяет легко заменять реализации зависимостей, не изменяя код, который их использует. 🟠Упрощение тестирования Обеспечивает легкую замену зависимостей на моки или заглушки для тестирования. 🟠Улучшение структуры кода Разделяет создание объектов и их использование, способствуя более чистой архитектуре. 🚩Как используется DI-контейнер DI-контейнеры предоставляют различные методы для регистрации зависимостей и их последующего получения. Ниже приведен пример реализации простого DI-контейнера. 1⃣Создание интерфейсов и реализаций зависимостей interface Logger { public function log($message); } class FileLogger implements Logger { public function log($message) { echo "Logging message to a file: $message"; } } interface PaymentProcessor { public function processPayment($amount); } class StripePaymentProcessor implements PaymentProcessor { public function processPayment($amount) { echo "Processing payment of $amount through Stripe"; } } 2⃣Реализация DI-контейнера class DIContainer { private $bindings = []; public function bind($abstract, $concrete) { $this->bindings[$abstract] = $concrete; } public function resolve($abstract) { if (!isset($this->bindings[$abstract])) { throw new Exception("No binding found for $abstract"); } $concrete = $this->bindings[$abstract]; // Если $concrete является замыканием, вызываем его if ($concrete instanceof Closure) { return $concrete($this); } // Создаем новый объект конкретного класса return new $concrete; } } 3⃣Регистрация зависимостей и их использование $container = new DIContainer(); // Регистрация зависимостей $container->bind(Logger::class, FileLogger::class); $container->bind(PaymentProcessor::class, function($container) { return new StripePaymentProcessor(); }); // Получение зависимостей $logger = $container->resolve(Logger::class); $logger->log("This is a log message."); // Вывод: Logging message to a file: This is a log message. $paymentProcessor = $container->resolve(PaymentProcessor::class); $paymentProcessor->processPayment(100); // Вывод: Processing payment of 100 through Stripe 🚩Плюсы и минусы ➕Автоматизация Снижает необходимость ручного создания и передачи зависимостей. ➕Гибкость Легко изменять конкретные реализации зависимостей. ➕Тестируемость Упрощает замену зависимостей на моки для тестирования. ➕Чистота кода Упрощает код, делая его более модульным и читаемым. ➖Сложность настройки Могут потребоваться значительные усилия для первоначальной настройки DI-контейнера. ➖Производительность В некоторых случаях может снижать производительность из-за необходимости разрешения зависимостей. Ставь 👍 и забирай 📚 Базу знаний
208
11
🤔 Как настроить autoload через Composer? Composer предоставляет механизм автоматической загрузки классов (autoload), который позволяет не писать вручную require. Основные шаги: 1. Использовать PSR-4 или PSR-0 – правила именования классов. 2. Настроить autoload в composer.json – указать, какие пространства имен использовать. 3. Выполнить composer dump-autoload – обновить автозагрузку после изменения файлов. 4. Использовать require 'vendor/autoload.php' – подключить автозагрузку в проекте. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
222
12
🤔 Что такое метрики? Это количественные показатели, используемые для оценки, мониторинга и улучшения различных аспектов работы систем, процессов и проектов. Они предоставляют объективные данные, которые помогают принимать обоснованные решения и улучшать эффективность и качество работы. 🚩Зачем нужны метрики 🟠Измерение производительности Метрики позволяют оценивать, насколько эффективно работают системы или процессы. Например, метрики производительности могут показать, сколько запросов обрабатывается сервером в секунду или как быстро выполняются алгоритмы. 🟠Мониторинг и контроль Постоянный мониторинг метрик помогает выявлять проблемы на ранних стадиях. Например, мониторинг времени отклика сервера позволяет обнаружить ухудшение производительности до того, как это повлияет на пользователей. 🟠Принятие решений Объективные данные, предоставляемые метриками, помогают принимать обоснованные решения по улучшению процессов, распределению ресурсов и планированию. Например, данные о загрузке серверов могут помочь определить, когда нужно добавить новые ресурсы. 🟠Улучшение качества Метрики качества позволяют оценивать, насколько хорошо продукт или процесс соответствует установленным стандартам и требованиям. Например, метрики кода, такие как количество ошибок или покрытие тестами, помогают улучшать качество программного обеспечения. 🟠Управление проектами В проектном управлении метрики помогают следить за прогрессом, оценивать риски и управлять ресурсами. Например, метрики времени и затрат помогают следить за выполнением проекта в рамках бюджета и сроков. 🚩Примеры метрик 🟠Метрики производительности Время отклика (Response Time): Время, за которое система обрабатывает запрос. Пропускная способность (Throughput): Количество запросов, обработанных системой за единицу времени. Время простоя (Downtime): Время, в течение которого система недоступна. 🟠Метрики качества программного обеспечения Покрытие тестами (Test Coverage): Процент кода, покрытого автоматизированными тестами. Количество ошибок (Bug Count): Количество ошибок, обнаруженных в программном обеспечении. Плотность дефектов (Defect Density): Количество ошибок на единицу кода (например, на 1000 строк кода). 🟠Метрики управления проектами Завершение задач (Task Completion): Процент выполненных задач от общего количества задач в проекте. Отклонение от плана (Schedule Variance): Разница между планируемым и фактическим временем выполнения задач. Затраты (Cost): Фактические затраты по сравнению с запланированными затратами. 🚩Применение метрик 🟠В разработке программного обеспечения CI/CD: Метрики сборок и развертываний помогают отслеживать стабильность и скорость релизов. Анализ кода: Метрики сложности кода, дублирования и покрытия тестами помогают улучшать качество и поддерживаемость кода. 🟠В бизнесе и управлении KPI (Key Performance Indicators): Ключевые показатели эффективности помогают оценивать успехи бизнеса или отдельных процессов. OKR (Objectives and Key Results): Цели и ключевые результаты помогают ставить и достигать стратегические цели. 🟠В IT-инфраструктуре Мониторинг серверов: Метрики использования CPU, памяти, дискового пространства помогают поддерживать высокую производительность и доступность серверов. Безопасность: Метрики инцидентов безопасности, обнаружения уязвимостей и реагирования на угрозы помогают обеспечивать защиту данных и систем. Ставь 👍 и забирай 📚 Базу знаний
193
13
🔥 Скрытые вакансии с удаленной работой для PHP разработчика, которые нигде больше не публикуются. Напрямую от компаний, с ко
🔥 Скрытые вакансии с удаленной работой для PHP разработчика, которые нигде больше не публикуются. Напрямую от компаний, с контактами рекрутеров. 🔹 PHP Jobs | Вакансии 🔸 Все каналы с вакансиями
209
14
🤔 В чем заключается обработка ошибок и исключений? Обработка ошибок в PHP – это механизм, который помогает находить, интерпретировать и корректно реагировать на ошибки во время выполнения программы. Для этого в PHP используются два подхода: Традиционные ошибки (error_reporting, set_error_handler) *Исключения (try-catch, throw) 🟠Традиционная обработка ошибок PHP изначально использовал механизм ошибок, которые делятся на несколько типов: E_ERROR – фатальная ошибка, завершает выполнение скрипта. E_WARNING – предупреждение, но скрипт продолжает выполняться. E_NOTICE – уведомление о потенциальной проблеме. echo $undefined_var; // E_NOTICE: Undefined variable 🚩Способы обработки ошибок 🟠error_reporting() – управление уровнем ошибок Функция error_reporting() позволяет включать или выключать определённые типы ошибок. error_reporting(E_ALL & ~E_NOTICE); // Показывать все ошибки, кроме E_NOTICE 🟠set_error_handler() – создание пользовательского обработчика ошибок Можно задать свою функцию, которая будет реагировать на ошибки. function myErrorHandler($errno, $errstr, $errfile, $errline) { echo "Ошибка [$errno]: $errstr в файле $errfile на строке $errline"; } set_error_handler("myErrorHandler"); // Вызовем ошибку echo 10 / 0; // Division by zero (E_WARNING) 🟠error_log() – запись ошибок в файл Ошибки можно не выводить на экран, а записывать в файл. error_log("Ошибка: что-то пошло не так!", 3, "errors.log"); 🚩Исключения (`try-catch`) С версии PHP 5 появился механизм исключений, который более удобен и структурирован. Исключения позволяют: Перехватывать ошибки и управлять их обработкой. Использовать вложенные блоки try-catch для детальной обработки. Создавать собственные классы исключений. try { if (!file_exists("somefile.txt")) { throw new Exception("Файл не найден"); } } catch (Exception $e) { echo "Ошибка: " . $e->getMessage(); } 🟠Классы исключений PHP позволяет использовать предопределённый класс Exception, а также создавать свои. class MyException extends Exception {} try { throw new MyException("Это моя ошибка"); } catch (MyException $e) { echo "Поймано исключение: " . $e->getMessage(); } 🟠Блок `finally` Используется для выполнения кода в любом случае – независимо от того, было исключение или нет. try { echo "Попытка выполнить код\n"; } catch (Exception $e) { echo "Ошибка поймана\n"; } finally { echo "Этот код выполнится в любом случае\n"; } Ставь 👍 и забирай 📚 Базу знаний
229
15
🤔 Зачем нужно ключевое слово final? Ключевое слово final в PHP используется для того, чтобы запретить наследование классов или переопределение методов в дочерних классах. Это помогает защитить важные части кода от изменения и сохранять логику в неприкосновенности. Final используется для обеспечения предсказуемости поведения в классах. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
270
16
Авторизованные курсы по оборудованию Eltex от дилера №1 Проводим учебные курсы, включающие практические занятия и лабораторны
Авторизованные курсы по оборудованию Eltex от дилера №1 Проводим учебные курсы, включающие практические занятия и лабораторные работы. По итогу успешной сдачи экзаменов обучающемуся выдаётся официальный сертификат от завода Eltex. ⚡Обучение в офисе или онлайн ⚡Опытный преподавательский состав ⚡Лабораторные работы - 50% времени ⚡Обучение юридических и физических лиц Записаться #реклама 16+ eltexcm.ru О рекламодателе
208
17
🤔 Какой синтаксис у заголовков? Заголовки в языках и разметки часто используются для указания ключевой информации, на которую стоит обратить внимание, и они различаются в зависимости от конкретного контекста и языка. Ниже приведены примеры синтаксиса заголовков в различных контекстах: 🚩Заголовки в HTML Поддерживает шесть уровней заголовков, от <h1> до <h6>, где <h1> представляет самый важный заголовок, а <h6> — наименее важный. <h1>Заголовок уровня 1</h1> <h2>Заголовок уровня 2</h2> <h3>Заголовок уровня 3</h3> <h4>Заголовок уровня 4</h4> <h5>Заголовок уровня 5</h5> <h6>Заголовок уровня 6</h6> 🚩Заголовки в Markdown Это язык разметки, который упрощает форматирование текста, особенно для написания документации. Заголовки создаются с помощью символа # перед текстом заголовка. Количество символов # определяет уровень заголовка. # Заголовок уровня 1 ## Заголовок уровня 2 ### Заголовок уровня 3 #### Заголовок уровня 4 ##### Заголовок уровня 5 ###### Заголовок уровня 6 🚩Заголовки в LaTeX Это система подготовки документов, широко используемая для научных и технических документов. В LaTeX заголовки создаются с помощью команд \section, \subsection, \subsubsection и так далее. \section{Заголовок уровня 1} \subsection{Заголовок уровня 2} \subsubsection{Заголовок уровня 3} \paragraph{Заголовок уровня 4} \subparagraph{Заголовок уровня 5} 🚩Заголовки в Языке разметки Wiki Многие вики-движки (например, MediaWiki) используют свои синтаксисы для создания заголовков. В MediaWiki заголовки создаются с помощью равно (=) вокруг текста заголовка. = Заголовок уровня 1 = == Заголовок уровня 2 == === Заголовок уровня 3 === ==== Заголовок уровня 4 ==== ===== Заголовок уровня 5 ===== ====== Заголовок уровня 6 ====== 🚩Заголовки в языках Часто не используются так же, как в разметке, но комментарии могут выполнять схожую роль для организации и документирования кода. Примеры синтаксиса для комментариев-заголовков: Python # Заголовок уровня 1 ## Заголовок уровня 2 ### Заголовок уровня 3 JavaScript // Заголовок уровня 1 // ================= // Заголовок уровня 2 // ----------------- // Заголовок уровня 3 // ~~~~~~~~~~~~~~~~~ Ставь 👍 и забирай 📚 Базу знаний
265
18
🤔 Что такое шифрование? Это процесс преобразования данных в защищённый формат (шифртекст) с использованием алгоритмов и ключей. Оно защищает информацию от несанкционированного доступа. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
259
19
🤔 Зачем использовать Rest , если есть Soup? SOAP (Simple Object Access Protocol) и REST (Representational State Transfer) – это два подхода для обмена данными между клиентом и сервером (API). SOAP появился раньше, но REST стал более популярным, потому что он проще, быстрее и гибче. 🚩Почему REST лучше в большинстве случаев? 🟠REST проще и легче SOAP использует сложные XML-сообщения с заголовками и схемами, что делает запросы более громоздкими. REST использует JSON или XML, что делает его быстрее и удобнее. <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getUser> <id>123</id> </getUser> </soap:Body> </soap:Envelope> Пример запроса в REST (короче и проще) GET /users/123 HTTP/1.1 Host: api.example.com 🟠REST быстрее и легче для веба SOAP требует больше ресурсов, потому что использует XML + сложные заголовки. REST работает по HTTP и использует JSON, который легче парсится в браузере и мобильных приложениях. 🟠REST лучше интегрируется с веб-технологиями SOAP требует специальных библиотек (WSDL, WS-Security). REST использует обычные HTTP-методы: - GET – получить данные - POST – создать - PUT – обновить - DELETE – удалить 🟠REST масштабируемый и кроссплатформенный REST легко работает с JavaScript, мобильными приложениями (iOS, Android), браузерами и фронтендом. SOAP чаще используется в корпоративных системах (банки, госструктуры), но хуже подходит для современных веб-приложений. Ставь 👍 и забирай 📚 Базу знаний
297
20
🤔 Какие типы БД бывают? Базы данных делятся на реляционные (SQL) и нереляционные (NoSQL). Реляционные базы данных (например, MySQL, PostgreSQL) хранят данные в виде таблиц и используют SQL для запросов. Нереляционные базы данных (например, MongoDB) используют разные модели данных (документы, ключ-значение и т.д.), что делает их более гибкими для работы с большими объёмами данных и неструктурированной информацией. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
298