Backend
3.95K subscribers
36 photos
711 links
Комьюнити Backend программистов.
Python, Java, Golang, PHP, C#, C/C++, DevOps

Сайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp
Download Telegram
🤔 Какой формат данных обычно используется для обмена данными между клиентом и сервером в веб-приложениях?
Anonymous Quiz
7%
XML
1%
CSV
91%
JSON
0%
YAML
📌 Как работает хеш таблица?

💬 Спрашивают в 7% собеседований

Хеш-таблица: Что это такое и как она работает

🤔 Определение

Хеш-таблица (hash table) — это структура данных, которая позволяет эффективно хранить и извлекать пары "ключ-значение". Она использует хеш-функцию для преобразования ключа в индекс массива, где хранится соответствующее значение.

🤔 Основные концепции

1️⃣ Хеш-функция: Это функция, которая принимает ключ и возвращает индекс массива, где должно храниться значение. Хорошая хеш-функция должна равномерно распределять ключи по всему пространству индексов, чтобы минимизировать количество коллизий.

2️⃣ Коллизии: Это ситуации, когда два разных ключа хешируются в один и тот же индекс. Существуют различные методы разрешения коллизий:

Метод цепочек (chaining): В каждой ячейке массива хранится список (или другая структура данных), содержащий все значения, соответствующие этому индексу.

Открытая адресация (open addressing): При коллизии ищется другая свободная ячейка по определённому алгоритму (например, линейное пробирование, квадратичное пробирование или двойное хеширование).

3️⃣ Размер хеш-таблицы: Количество ячеек (бакетов) в массиве. Оптимальный размер зависит от количества ключей и используемой хеш-функции. Обычно размер выбирается простым числом для уменьшения вероятности коллизий.

🤔 Как работает хеш-таблица

1️⃣ Вставка элемента:

Хеш-функция вычисляет индекс для ключа.

Если ячейка пуста, значение записывается в неё.

Если ячейка занята (коллизия), применяется выбранный метод разрешения коллизий.

2️⃣ Поиск элемента:

Хеш-функция вычисляет индекс для ключа.

Проверяется ячейка по этому индексу.

Если ключи совпадают, возвращается значение.

Если ключи не совпадают (коллизия), применяется метод разрешения коллизий до нахождения нужного ключа или пустой ячейки (что означает отсутствие ключа).

3️⃣ Удаление элемента:

Хеш-функция вычисляет индекс для ключа.

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

🤔 Преимущества и недостатки

🤔 Преимущества:

Быстродействие: Хеш-таблицы обеспечивают амортизированное время выполнения операций вставки, удаления и поиска в среднем за O(1).

Простота использования: Они интуитивно понятны и легко реализуются.

🤔 Недостатки:

Коллизии: Хотя хорошие хеш-функции минимизируют их количество, они всё же могут возникать, снижая производительность.

Память: Хеш-таблицы требуют значительных объёмов памяти для хранения данных, особенно при малой заполненности.

🤔 Применение

Хеш-таблицы широко используются в:

Реализации словарей и ассоциативных массивов.

Кэшировании данных для быстрого доступа.

Реализации множества.

Хранении и управлении сессиями и идентификаторами в веб-приложениях.

🤔 Краткий ответ

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

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🤔 Какой из перечисленных методов используется для удаления ресурса в REST API?
Anonymous Quiz
1%
GET
1%
POST
2%
PUT
96%
DELETE
🤔 Что знаешь о хеш функции?

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

🚩Основные свойства хеш-функции:

🟠 Детерминированность: Хеш-функция всегда должна возвращать одно и то же хеш-значение для одного и того же входного значения.
🟠Равномерное распределение: Хорошая хеш-функция должна равномерно распределять хеш-значения по всему диапазону, чтобы минимизировать количество коллизий.
🟠Быстрота вычисления: Хеш-функция должна быть достаточно быстрой, чтобы не замедлять общую производительность алгоритмов, которые её используют.
🟠Минимизация коллизий: Коллизия возникает, когда два разных входных значения дают одно и то же хеш-значение. Хорошая хеш-функция должна минимизировать вероятность таких случаев.

🚩Применение хеш-функций:

🟠Хеш-таблицы: Используются для вычисления индекса массива, где будет храниться значение, связанное с ключом. Это позволяет быстро выполнять операции вставки, удаления и поиска.
🟠Криптография: Криптографические хеш-функции (например, SHA-256, MD5) используются для обеспечения целостности данных, создания цифровых подписей и безопасного хранения паролей.
🟠Контроль целостности данных: Хеш-функции применяются для проверки целостности данных при передаче или хранении, позволяя выявлять ошибки или изменения в данных.
🟠Генерация уникальных идентификаторов: Хеш-функции используются для генерации уникальных идентификаторов (например, UUID), основываясь на входных данных.

🚩Примеры хеш-функций

🟠Простая хеш-функция: Эта функция возвращает остаток от деления длины ключа на размер таблицы. Она проста, но не обеспечивает равномерное распределение.
def simple_hash(key, table_size):
return len(key) % table_size


🟠Хеш-функция для строк (например, DJB2):
def djb2_hash(key):
hash_value = 5381
for char in key:
hash_value = ((hash_value << 5) + hash_value) + ord(char) # hash_value * 33 + ord(char)
return hash_value


🚩Методы разрешения коллизий

🟠Метод цепочек (chaining): В каждой ячейке массива хранится список значений, которые хешируются в один и тот же индекс.
🟠Открытая адресация (open addressing): При коллизии ищется другая свободная ячейка по определённому алгоритму (например, линейное пробирование, квадратичное пробирование или двойное хеширование).

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Какой из перечисленных инструментов используется для управления конфигурацией инфраструктуры как код (IaC)?
Anonymous Quiz
15%
Docker
33%
Kubernetes
39%
Ansible
13%
Prometheus
🤔 Что такое IP?

IP (Internet Protocol) — это основной протокол сетевого уровня, который используется для передачи данных через интернет и другие сети. IP отвечает за маршрутизацию и адресацию пакетов данных, обеспечивая их доставку от отправителя к получателю.

🚩Основные аспекты IP:

Адресация: IP адресация обеспечивает уникальные адреса для устройств в сети, что позволяет им взаимодействовать друг с другом. Существует две версии IP адресации:
🟠Использует 32-битные адреса, что позволяет создать около 4,3 миллиарда уникальных адресов.
🟠Пример IPv4 адреса: 192.168.0.1
🟠IPv6 (Internet Protocol version 6):
🟠Использует 128-битные адреса, что позволяет создать около 340 ундециллионов (3,4×10^38) уникальных адресов.
🟠Пример IPv6 адреса: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

Маршрутизация: IP отвечает за определение пути для передачи пакетов от источника к назначению через сеть, включая множество промежуточных маршрутизаторов. Это позволяет передавать данные через различные сети и соединения.

Фрагментация и сборка: IP может разделять большие пакеты данных на более мелкие фрагменты, чтобы они могли быть переданы через сети с различными ограничениями по размеру пакетов. Получатель затем собирает фрагменты обратно в исходный пакет.

Пакетная передача: IP передает данные в виде пакетов. Каждый пакет содержит заголовок с информацией об адресации и маршрутизации, а также полезную нагрузку с передаваемыми данными.

🚩Основные функции IP:

🟠Адресация устройств: IP предоставляет уникальные адреса для каждого устройства в сети, что позволяет им идентифицировать и находить друг друга.
🟠Маршрутизация пакетов: IP определяет маршрут для пакетов данных через различные сети и маршрутизаторы до их конечного назначения.
🟠Фрагментация и сборка: IP разбивает большие пакеты на более мелкие фрагменты для передачи через сеть и собирает их обратно у получателя.
🟠Проверка целостности: IP включает контрольные суммы для проверки целостности заголовка пакета, но не обеспечивает контроль целостности данных.

🚩Преимущества IP:

🟠Универсальность: IP является стандартным протоколом для передачи данных в интернете и поддерживается всеми сетевыми устройствами.
🟠Гибкость: IP может передавать данные через различные типы сетей и соединений.
🟠Масштабируемость: IPv6 предоставляет практически неограниченное количество адресов для подключения новых устройств к сети.

🚩Недостатки IP:

🟠Безопасность: IP сам по себе не предоставляет механизмов для шифрования или аутентификации данных, что делает его уязвимым для атак.
🟠Отсутствие гарантии доставки: IP не гарантирует доставку пакетов, их последовательность или целостность данных, полагаясь на протоколы более высокого уровня, такие как TCP, для обеспечения надежности.

🚩Взаимодействие с другими протоколами

IP работает в комбинации с другими протоколами, чтобы обеспечить полное взаимодействие в сети:
🟠TCP (Transmission Control Protocol): Работает поверх IP и обеспечивает надежную передачу данных, проверку ошибок и управление потоком.
🟠UDP (User Datagram Protocol): Также работает поверх IP, но не обеспечивает надежность, что делает его подходящим для приложений, требующих высокой скорости и низкой задержки, таких как потоковая передача и игры.
🟠ICMP (Internet Control Message Protocol): Используется для передачи диагностических и управляющих сообщений, таких как запросы ping.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой из следующих протоколов обычно используется для передачи данных в REST API?
Anonymous Quiz
2%
FTP
2%
SMTP
95%
HTTP
1%
POP3
🔥1
🤔 Что такое Web Sockets (веб сокет)?

WebSockets (веб-сокеты) — это коммуникационный протокол, предоставляющий возможность устанавливать постоянное, двустороннее соединение между клиентом (обычно веб-браузером) и сервером через один TCP-соединение. Это позволяет обмениваться данными в реальном времени с минимальной задержкой и без необходимости повторного открытия соединения для каждого обмена сообщениями, как это происходит в традиционных HTTP-соединениях.

🚩Основные характеристики WebSockets:

🟠Двусторонняя коммуникация: WebSockets поддерживают полноценную двустороннюю (или full-duplex) коммуникацию, что позволяет как клиенту, так и серверу отправлять данные в любое время без необходимости инициирования запроса.
🟠Постоянное соединение: После установления WebSocket-соединение остается открытым, что значительно уменьшает задержки, связанные с установлением новых соединений, характерных для HTTP-запросов.
🟠Меньший накладной расход: WebSockets используют меньше заголовков по сравнению с HTTP-запросами, что делает передачу данных более эффективной и менее затратной по времени и ресурсам.
🟠Протокол: WebSocket протокол стандартизирован в RFC 6455 и поддерживается большинством современных веб-браузеров. Соединение начинается с обычного HTTP-запроса, который затем "обновляется" до WebSocket-соединения через HTTP-заголовок Upgrade.

🚩Как работает WebSocket:

🟠Установление соединения: Клиент отправляет HTTP-запрос с заголовком Upgrade: websocket на сервер, указывая на желание перейти к протоколу WebSocket. Сервер отвечает подтверждением, если поддерживает WebSockets, и соединение устанавливается.
🟠Передача данных: После установления соединения клиент и сервер могут обмениваться данными в обе стороны по мере необходимости. Сообщения передаются как фреймы (frames), которые могут содержать текстовые или бинарные данные.
🟠Закрытие соединения: Соединение может быть закрыто любой стороной в любой момент времени с отправкой соответствующего фрейма закрытия.

🚩Применения WebSocket:

🟠Реальное время: Приложения, требующие обновлений в реальном времени, такие как чаты, системы обмена сообщениями, онлайн-игры, торги на биржах.
🟠Потоковая передача данных: Веб-сокеты идеально подходят для приложений, передающих данные в реальном времени, таких как спортивные трансляции или финансовые данные.
🟠Уведомления и оповещения: Приложения, отправляющие мгновенные уведомления пользователям, например, социальные сети или системы мониторинга.
🟠Коллаборативные инструменты: Инструменты для совместной работы, такие как совместное редактирование документов или доски с заметками.

Преимущества WebSocket:
🟠Эффективность: Меньший накладной расход и постоянное соединение делают WebSockets более эффективными для приложений, требующих частого обмена данными.
🟠Скорость: WebSockets обеспечивают более низкую задержку, что делает их идеальными для приложений, работающих в реальном времени.
🟠Простота использования: WebSockets имеют простой API, который легко интегрируется с современными веб-приложениями.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🤔 Какой из следующих типов баз данных лучше всего подходит для анализа больших данных?
Anonymous Quiz
41%
Реляционные базы данных
14%
Документные базы данных
16%
Ключ-значение базы данных
28%
Колонковые базы данных
🤔 Расскажи про https

HTTPS (HyperText Transfer Protocol Secure) — это расширение протокола HTTP, используемое для безопасного обмена данными между веб-браузером и веб-сервером. HTTPS обеспечивает конфиденциальность, целостность и аутентичность передаваемых данных, используя шифрование, аутентификацию и проверку целостности.

🚩Основные аспекты HTTPS

🟠Шифрование: HTTPS использует шифрование для защиты данных, передаваемых между клиентом и сервером. Шифрование делает данные нечитаемыми для посторонних, предотвращая их перехват и кражу. Это достигается с помощью протоколов SSL (Secure Sockets Layer) и его преемника TLS (Transport Layer Security).

🟠Аутентификация: Аутентификация подтверждает, что клиент и сервер являются теми, за кого они себя выдают. Это предотвращает атаки типа "человек посередине" (man-in-the-middle attacks). Аутентификация осуществляется с помощью цифровых сертификатов, которые выдаются доверенными центрами сертификации (Certificate Authorities, CA).

🟠Целостность данных: Целостность данных гарантирует, что данные не были изменены во время передачи. Это достигается с помощью хеш-функций и контрольных сумм, которые проверяются на каждой стороне соединения.

🚩Как работает HTTPS

🟠Инициация соединения: Клиент (например, веб-браузер) инициирует соединение с сервером, отправляя HTTPS-запрос.

🟠Обмен сертификатами: Сервер отправляет клиенту свой цифровой сертификат. Сертификат содержит публичный ключ сервера и информацию о центре сертификации.

🟠Проверка сертификата: Клиент проверяет подлинность сертификата, используя список доверенных центров сертификации. Если сертификат действителен, клиент продолжает установку защищённого соединения.

🟠Установка сеансового ключа: Клиент и сервер договариваются о сеансовом ключе, используя асимметричное шифрование. Этот ключ будет использоваться для шифрования данных в течение сеанса.

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

🚩Преимущества HTTPS

🟠Безопасность: HTTPS защищает данные от перехвата и подделки, что особенно важно для передачи конфиденциальной информации, такой как пароли и номера кредитных карт.

🟠Доверие пользователей: Наличие HTTPS повышает доверие пользователей к веб-сайту, так как современные браузеры отмечают сайты с HTTPS как безопасные.

🟠SEO (Поисковая оптимизация): Поисковые системы, такие как Google, отдают предпочтение сайтам с HTTPS и могут ранжировать их выше в результатах поиска.

🟠Соответствие стандартам: Многие нормативные акты и стандарты требуют использования HTTPS для защиты данных, например, GDPR в Европейском Союзе.

🚩Как настроить HTTPS

🟠Получение сертификата: Приобретите SSL/TLS сертификат у доверенного центра сертификации (CA) или используйте бесплатные сертификаты, такие как Let's Encrypt.

🟠Установка сертификата: Установите полученный сертификат на веб-сервер. Процесс установки зависит от используемого веб-сервера (например, Apache, Nginx, IIS).

🟠Настройка перенаправлений:Настройте сервер так, чтобы все HTTP-запросы перенаправлялись на HTTPS.

🟠Обновление ссылок и ресурсов: Убедитесь, что все ссылки и ресурсы на сайте используют HTTPS, чтобы избежать смешанного контента (mixed content), когда части страницы загружаются по HTTP.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🤔 Какой из следующих инструментов используется для управления версиями в разработке?
Anonymous Quiz
3%
Docker
94%
Git
1%
Jenkins
1%
Kubernetes
🤔 Что можешь рассказать про HTML?

HTML (HyperText Markup Language) — это основной язык разметки, используемый для создания и структурирования веб-страниц. HTML позволяет создавать веб-страницы с текстом, изображениями, ссылками, формами и другими элементами, которые могут быть отображены в браузере. Он является фундаментом веб-технологий и работает в тандеме с CSS (Cascading Style Sheets) и JavaScript для создания полноценных веб-приложений.

🚩Основные аспекты HTML:

Структура документа: HTML-документ состоит из различных элементов, каждый из которых представлен тегами. Теги определяют, как различные части документа должны быть отображены в браузере.
🟠 <!DOCTYPE html>: Определяет тип документа и версию HTML.
🟠 <html>: Корневой элемент документа.
🟠<head>: Содержит метаданные о документе, такие как теги <title>, <meta>, стили и скрипты.
🟠 <body>: Содержит видимую часть документа, включая текст, изображения, ссылки и другие элементы.

Элементы и теги: HTML использует теги для определения различных элементов. Теги обычно идут в парах: открывающий тег <tag> и закрывающий тег </tag>. Некоторые теги являются самозакрывающимися, например, <img /> и <br />.
🟠<h1> - <h6>: Заголовки различных уровней.
🟠 <p>: Параграф текста.
🟠<a>: Гиперссылка.
🟠 <img>: Изображение.
🟠<ul>, <ol>, <li>: Ненумерованные и нумерованные списки и элементы списка.
🟠<table>, <tr>, <td>: Таблицы и их элементы.

Атрибуты: Теги могут иметь атрибуты, которые предоставляют дополнительную информацию о элементе. Атрибуты записываются внутри открывающего тега и имеют формат имя="значение".
🟠href для <a>: Указывает URL, на который ведёт ссылка.
🟠src для <img>: Указывает путь к изображению.
🟠alt для <img>: Описывает изображение для поисковых систем и пользователей с ограниченными возможностями.

Формы: HTML позволяет создавать интерактивные формы для сбора данных от пользователей. Формы могут содержать различные типы полей ввода, такие как текстовые поля, радиокнопки, чекбоксы и кнопки отправки.
🟠 <input>: Общее поле ввода. Атрибут type определяет тип ввода (например, text, password, email).
🟠<textarea>: Многострочное текстовое поле.
🟠 <select> и <option>: Выпадающий список.
🟠 <button>: Кнопка.

🚩Преимущества HTML:

🟠Простота использования: HTML легко изучить и использовать. Он не требует сложных инструментов для написания или редактирования.
🟠Совместимость: HTML поддерживается всеми веб-браузерами, что обеспечивает кроссплатформенность и широкую доступность.
🟠Расширяемость: HTML можно расширять с помощью CSS и JavaScript для создания более сложных и интерактивных веб-страниц.
🟠Стандартизация: HTML является стандартом, поддерживаемым W3C (World Wide Web Consortium), что обеспечивает его надежность и предсказуемость.

🚩Как используется HTML:

🟠Создание веб-страниц:
Основное применение HTML — это создание веб-страниц и веб-приложений. Каждый веб-сайт, который вы посещаете, использует HTML для структурирования своего контента.
🟠Электронные письма:
HTML также используется для создания форматированных электронных писем с текстом, изображениями и ссылками.
🟠Документация и справочные системы:
HTML используется для создания интерактивной документации и справочных систем, которые могут включать текст, ссылки, изображения и другие элементы.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Какой из следующих HTTP методов используется для создания нового ресурса?
Anonymous Quiz
7%
GET
83%
POST
10%
PUT
1%
DELETE
🤔 Что такое спринт в scrum?

Спринт в Scrum — это короткий период, когда команда выполняет задачи для достижения целей проекта, используя методологию Scrum для управления разработкой программного обеспечения.

🚩Основные характеристики спринта:

🟠Фиксированная продолжительность: Спринты обычно длятся от одной до четырех недель. Продолжительность спринта выбирается командой и остается постоянной на протяжении всего проекта. Это позволяет команде планировать и оценивать объем работы, который они могут выполнить за каждый спринт.

🟠Определенный объем работы: Перед началом спринта команда проводит планирование спринта (Sprint Planning), где определяет цели спринта и выбирает задачи из бэклога продукта (Product Backlog), которые будут выполняться в текущем спринте. Эти задачи формируют спринт-бэклог (Sprint Backlog), который включает в себя все элементы работы, необходимые для достижения целей спринта.

🟠Цель спринта: Каждому спринту ставится конкретная цель или набор целей, которые должны быть достигнуты по завершению спринта. Цель спринта помогает команде сосредоточиться на достижении конкретного результата.

🟠Ежедневные встречи (Daily Scrum): В течение спринта команда проводит ежедневные короткие встречи (обычно 15 минут), называемые Daily Scrum, чтобы обсудить прогресс, выявить препятствия и скорректировать план работы. Эти встречи способствуют синхронизации работы команды и быстрому выявлению и устранению проблем.

🟠Инкремент продукта: По завершении каждого спринта команда должна предоставить работоспособный инкремент продукта, который соответствует критериям готовности (Definition of Done). Инкремент — это завершенный, протестированный и готовый к использованию кусок продукта, который добавляется к предыдущим инкрементам.

🟠Ретроспектива спринта (Sprint Retrospective): После завершения спринта команда проводит ретроспективу, чтобы обсудить, что прошло хорошо, что можно улучшить и какие изменения нужно внести в следующий спринт. Ретроспектива помогает команде постоянно совершенствовать процесс работы.

🟠Обзор спринта (Sprint Review): Команда проводит обзор спринта, чтобы продемонстрировать заинтересованным сторонам (stakeholders) выполненную работу и получить обратную связь. Это помогает проверить, соответствуют ли результаты ожиданиям и требованиям, и при необходимости внести изменения в бэклог продукта.

🚩Преимущества спринтов в Scrum:

🟠Повышение предсказуемости: Фиксированная продолжительность спринтов и четкие цели помогают улучшить предсказуемость процесса разработки и управления проектом.
🟠Увеличение гибкости: Команда может адаптироваться к изменениям и быстро реагировать на новые требования, так как бэклог продукта постоянно обновляется и приоритеты могут меняться от спринта к спринту.
🟠Улучшение качества: Регулярные проверки и тестирование инкрементов продукта помогают выявлять и устранять дефекты на ранних стадиях разработки.
🟠Командная работа и вовлеченность: Спринты способствуют улучшению коммуникации и взаимодействия внутри команды, повышают уровень вовлеченности и ответственности каждого члена команды за результат.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Что такое git-flow?

Git-flow — это модель ветвления в Git, предложенная Винсентом Дриссеном, которая структурирует разработку, упрощает выпуск версий и поддерживает стабильность проекта.

🚩Основные компоненты git-flow

🟠Основные
master: Эта ветка содержит стабильные и готовые к выпуску версии продукта. Каждый коммит в master должен представлять собой релизную версию.
develop: Эта ветка используется для интеграции всех новых разработок. Она содержит последний готовый к выпуску код, но ещё может быть нестабильной.

🟠Поддерживающие
feature: Эти ветки создаются для разработки новых функций. Они ответвляются от develop и сливаются обратно в develop после завершения работы. Например, feature/новая-функция.
release: Эти ветки создаются для подготовки нового релиза. Они ответвляются от develop, и после завершения всех необходимых исправлений и тестирования сливаются в master и develop. Например release/1.0.0
hotfix: Эти ветки используются для срочных исправлений в стабильной версии продукта. Они ответвляются от master и после завершения работы сливаются в master и develop. Например, hotfix/исправление-ошибки.

🚩Как это используется:

🟠Создание новой функции:
Создайте ветку feature от develop.
Разработайте новую функцию.
Слейте feature ветку обратно в develop.

🟠Подготовка к новому релизу:
Создайте ветку release от develop.
Проведите финальное тестирование и внесите мелкие исправления.
Слейте release ветку в master и develop.
Создайте тег для новой версии на master.

🟠Срочные исправления:
Создайте ветку hotfix от master.
Исправьте проблему.
Слейте hotfix ветку в master и develop.
Создайте тег для новой версии на master.

🚩Плюсы

🟠Организация: Четкое разграничение между стабильной версией и текущей разработкой упрощает управление проектом.
🟠Параллельная разработка: Легкость создания и слияния веток способствует одновременной работе над несколькими функциями.
🟠Поддержка релизов: Обособленные ветки для подготовки релизов и срочных исправлений упрощают управление версионностью.

🚩Минусы:

🟠Сложность: Может быть избыточным для небольших проектов с небольшими командами.
🟠Требования к дисциплине: Требует строгого соблюдения правил для обеспечения стабильности и непрерывности разработки.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🤔 Какой из следующих инструментов используется для автоматизации развертывания приложений?
Anonymous Quiz
74%
Ansible
20%
Eclipse
3%
MySQL
2%
Photoshop
🤔 Что такое http?

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

🚩Основные компоненты HTTP:

🟠Клиент и сервер
HTTP работает по модели клиент-сервер. Клиент, например, веб-браузер, инициирует запросы к серверу, который предоставляет доступ к запрашиваемым ресурсам.

🟠URI (Uniform Resource Identifier)
Используется для идентификации ресурсов. Наиболее распространенным типом URI является URL (Uniform Resource Locator).

🟠Методы HTTP
Определяют действия, которые клиент хочет выполнить над ресурсом. Основные методы включают:
GET: Запрос данных с сервера.
POST: Отправка данных на сервер для обработки.
PUT: Обновление ресурса на сервере.
DELETE: Удаление ресурса с сервера.

🟠Статус-коды
Серверы возвращают клиентам статус-коды, чтобы сообщить о результате обработки запроса. Например, 200 (OK) означает успешное выполнение запроса, а 404 (Not Found) — что ресурс не найден.

🟠Заголовки HTTP
Несут метаданные о запросе или ответе, такие как тип содержимого (Content-Type), длина содержимого (Content-Length), информация об авторизации и так далее.

🟠Сообщения HTTP
Состоят из запроса от клиента и ответа от сервера, каждый из которых включает стартовую строку, заголовки и тело сообщения.

🚩Как это используется:

🟠Веб-серфинг
Каждый раз, когда пользователь вводит URL в адресной строке браузера или нажимает на ссылку, браузер отправляет HTTP-запрос к серверу, который возвращает HTML-страницу.

🟠API
HTTP широко используется для взаимодействия между различными системами через RESTful API. Программы могут отправлять HTTP-запросы для получения данных или выполнения действий на удаленных серверах.

🟠Мобильные приложения
Большинство мобильных приложений взаимодействуют с серверными частями через HTTP, запрашивая и отправляя данные, которые отображаются пользователю.

🟠Загрузка файлов
HTTP используется для скачивания файлов из Интернета.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🤔 Какой из следующих форматов используется для обмена данными в веб-приложениях?
Anonymous Quiz
96%
XML
2%
JPEG
1%
MP3
2%
PNG
🤔 Что такое "Сложность алгоритма"?

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

🚩Виды сложности

🟠Временная сложность
Оценивает, сколько времени требуется алгоритму для выполнения задачи в зависимости от размера входных данных. Обычно выражается в терминах асимптотического анализа, таких как O(n), O(log n), O(n^2) и т.д., где n — размер входных данных.

🟠Пространственная (памятная) сложность
Оценивает объем памяти, который алгоритм потребляет во время выполнения. Также выражается в асимптотических терминах, например, O(1), O(n), O(n^2).

🚩Асимптотический анализ

Основным инструментом для анализа сложности алгоритмов является асимптотический анализ, который позволяет оценить поведение алгоритма при больших значениях n:

🟠O-большое (Big O)
Характеризует верхнюю границу времени выполнения алгоритма. Например, если временная сложность алгоритма составляет O(n), это означает, что время выполнения увеличивается линейно с ростом размера входных данных.
🟠Ω-большое (Omega)
Характеризует нижнюю границу времени выполнения.
🟠Θ-большое (Theta)
Оценивает точное время выполнения, если верхняя и нижняя границы совпадают.

🚩Практическое применение

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

🚩Примеры

🟠Сортировка
Алгоритмы сортировки имеют разную сложность. Например, сортировка пузырьком имеет временную сложность O(n^2), в то время как быстрая сортировка имеет среднюю временную сложность O(n log n).
🟠Поиск
Для поиска элемента в отсортированном массиве алгоритм бинарного поиска имеет временную сложность O(log n), что значительно быстрее линейного поиска с O(n).

Ставь
👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3