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

Сайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp
Download Telegram
🤔 Какие основные HTTP методы есть?

- GET – получение данных.
- POST – создание данных.
- PUT – обновление данных.
- DELETE – удаление данных.
Они обеспечивают базовый функционал для взаимодействия клиента и сервера.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 В чем разница между SQL lite и Express SQL?

Это две разные системы управления базами данных (СУБД), каждая из которых имеет свои уникальные особенности, применения и случаи использования.

🟠Архитектура
SQLite
Встраиваемая СУБД: SQLite - это библиотека, которая встраивается непосредственно в приложение. Она не требует отдельного сервера для работы.
Без сервера: Работает без необходимости запуска серверного процесса, что упрощает установку и настройку.
Файловая система: Все данные хранятся в одном файле базы данных на диске.
SQL Server Express
Серверная СУБД: SQL Server Express - это урезанная версия Microsoft SQL Server, требующая установки и запуска серверного процесса.
Клиент-серверная архитектура: Клиенты подключаются к серверу базы данных через сеть.
Разделенные файлы данных и логов: Данные и логи хранятся в отдельных файлах.

🟠Производительность и масштабируемость
SQLite
Легковесная и быстрая: Подходит для приложений с небольшими или средними объемами данных и низкими требованиями к многопользовательскому доступу.
Ограниченная многопользовательская поддержка: Поддерживает ограниченное количество одновременных пользователей, так как блокировки осуществляются на уровне файла.
SQL Server Express
Масштабируемость: Подходит для приложений с высокими требованиями к производительности и поддерживает значительное количество одновременных пользователей.
Многопользовательская поддержка: Обеспечивает управление многопользовательским доступом и параллельностью транзакций.

🟠Функциональные возможности
SQLite:
Основные возможности SQL: Поддерживает основные команды SQL, такие как SELECT, INSERT, UPDATE, DELETE.
Ограниченные возможности: Отсутствие многих расширенных функций, таких как триггеры, хранимые процедуры, сложные типы данных и транзакции с несколькими заявлениями.
SQL Server Express:
Расширенные возможности: Поддержка триггеров, хранимых процедур, полнотекстового поиска, транзакций и других продвинутых функций.
Ограничения по сравнению с полной версией: SQL Server Express имеет ограничения по объему базы данных (до 10 ГБ на одну базу данных) и по использованию ресурсов (до 1 ГБ ОЗУ и 1 процессор).

🟠Установка и развертывание
SQLite
:
Простота установки: Не требует установки, просто включается как библиотека в приложение.
Легкость развертывания: Так как данные хранятся в одном файле, перемещение базы данных сводится к копированию этого файла.
SQL Server Express:
Требует установки: Необходимо установить серверную часть, что может включать несколько шагов настройки.
Администрирование: Требует определенного уровня администрирования для настройки безопасности, резервного копирования и восстановления данных.

🟠Случаи использования
SQLite:
Мобильные приложения: Часто используется в мобильных приложениях (например, Android и iOS) для локального хранения данных.
Встроенные системы: Подходит для встроенных систем и IoT устройств.
Прототипирование и тестирование: Удобен для быстрого создания прототипов и тестирования.
SQL Server Express:
Веб-приложения: Хорошо подходит для небольших веб-приложений и сервисов, особенно на платформе Windows.
Настольные приложения: Используется в настольных приложениях, требующих мощной базы данных.
Учебные цели: Часто используется в образовательных целях для обучения работе с SQL Server.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какие принципы программирования бывают?

Основные принципы:
- SOLID для ООП.
- DRY (Don't Repeat Yourself) для избежания дублирования кода.
- KISS (Keep It Simple, Stupid) для упрощения решений.
- YAGNI (You Aren't Gonna Need It) для минимизации ненужного кода.


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

В реляционных базах данных SQL используется несколько видов операций JOIN для объединения строк из двух или более таблиц на основе связанных столбцов. Каждая из этих операций предназначена для определенных сценариев. Основные виды JOIN включают:

🟠INNER JOIN
INNER JOIN возвращает строки, которые имеют совпадающие значения в обеих таблицах. Это наиболее часто используемый тип JOIN.
Использование: Для извлечения данных, которые имеют соответствующие записи в обеих таблицах.

🟠LEFT (OUTER) JOIN
LEFT JOIN (или LEFT OUTER JOIN) возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если нет совпадения, то результаты из правой таблицы будут NULL. Использование: Когда необходимо получить все данные из одной таблицы и только соответствующие данные из другой.

🟠RIGHT (OUTER) JOIN
RIGHT JOIN (или RIGHT OUTER JOIN) возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Если нет совпадения, то результаты из левой таблицы будут NULL. Использование: Когда необходимо получить все данные из правой таблицы и только соответствующие данные из левой.

🟠FULL (OUTER) JOIN
FULL JOIN (или FULL OUTER JOIN) возвращает все строки, когда есть совпадение в одной из таблиц. Если совпадения нет, то возвращаются NULL для соответствующей таблицы. Использование: Для получения всех данных из обеих таблиц, независимо от совпадений.

🟠CROSS JOIN
CROSS JOIN возвращает декартово произведение двух таблиц, то есть каждая строка из первой таблицы соединяется с каждой строкой из второй таблицы. Использование: Когда требуется комбинировать все строки из двух таблиц без учета связи.

🟠SELF JOIN
SELF JOIN это особый случай JOIN, где таблица соединяется сама с собой. Обычно используется с псевдонимами таблиц для различения различных экземпляров одной и той же таблицы. Использование: Для сравнения строк внутри одной таблицы.

🚩Примеры использования

🟠INNER JOIN
Для получения списка студентов и их курсов.
🟠LEFT JOIN
Для получения всех сотрудников и их проектов, даже если у сотрудника нет проекта.
🟠RIGHT JOIN
Для получения всех проектов и сотрудников, даже если у проекта нет назначенного сотрудника.
🟠FULL JOIN
Для получения полной информации о студентах и курсах, включая тех, кто еще не записан на курс или курсы, на которые еще никто не записан.
🟠CROSS JOIN
Для создания всех возможных комбинаций продуктов и категорий.
🟠SELF JOIN
Для нахождения пар сотрудников из одной таблицы с одинаковыми менеджерами.

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

Это процесс автоматической доставки изменений кода в производственную среду после тестирования. Цель – обеспечить быстрое и безопасное внедрение новых функций.

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

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

🟠INNER JOIN
Выбирает только те строки, у которых есть совпадения в обеих таблицах. Если в одной из таблиц нет соответствующего значения, строка не попадет в результат.

🟠LEFT JOIN (или LEFT OUTER JOIN)
Возвращает все строки из левой таблицы, а из правой – только совпадающие. Если в правой таблице нет совпадения, в итоговом наборе будут NULL-значения.

🟠RIGHT JOIN (или RIGHT OUTER JOIN)
Возвращает все строки из правой таблицы, а из левой – только совпадающие. Если в левой таблице нет соответствующего значения, в результате появятся NULL.

🟠FULL JOIN (или FULL OUTER JOIN)
Возвращает все строки из обеих таблиц. Если в одной из таблиц нет соответствующей записи, подставляются NULL.

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

Это архитектурный паттерн, разделяющий логику приложения на три слоя:
- Model – данные и бизнес-логика.
- View – пользовательский интерфейс.
- ViewModel – связывает данные и интерфейс.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🤔 Какая разница между аутентификацией и авторизацией?

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

🚩Аутентификация (Authentication)

Она подтверждает, что пользователь является тем, за кого он себя выдает.

🟠Цель
Убедиться, что пользователь действительно тот, кем он себя называет.

🟠Методы аутентификации
Пароли: Пользователь вводит пароль, который проверяется на соответствие сохраненному в системе.
Биометрические данные: Отпечатки пальцев, распознавание лица, голосовая идентификация.
Токены: Аппаратные устройства или программные токены, генерирующие одноразовые коды.
Сертификаты: Использование цифровых сертификатов для проверки подлинности.
Многофакторная аутентификация (MFA): Комбинация нескольких методов (например, пароль + одноразовый код).

🟠Пример
Вход в систему с помощью имени пользователя и пароля.

🚩Авторизация (Authorization)

Она контролирует доступ к ресурсам и действиям на основе уровня доступа пользователя.

🟠Цель
Определить, какие действия пользователю разрешено выполнять и к каким ресурсам он имеет доступ.

🟠Методы авторизации
Ролевое управление доступом (RBAC): Назначение ролей пользователям, каждая из которых имеет определенные права доступа.
Управление доступом на основе атрибутов (ABAC): Использование атрибутов (например, время дня, местоположение) для определения прав доступа.
Списки контроля доступа (ACL): Определение конкретных прав доступа для каждого ресурса и пользователя.

🟠Пример
После входа в систему (аутентификации) пользователь может иметь доступ только к определенным разделам или функциям приложения, в зависимости от его роли (авторизация).

🚩Основные различия

🟠Цель
Аутентификация: Подтвердить личность пользователя.
Авторизация: Определить, к каким ресурсам и действиям пользователь имеет доступ.

🟠Когда происходит
Аутентификация: Первым шагом перед предоставлением доступа к системе.
Авторизация: После аутентификации, для контроля доступа к ресурсам и действиям.

🟠Основные вопросы
Аутентификация: Кто вы?
Авторизация: Что вам разрешено делать?

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from easyoffer
💡 В EasyOffer 2.0 появится фильтрация вопросов по грейдам и типам интервью!

📊 Например, вот вероятности ТОП-30 вопросов, которые задают на HR-скрининге Python-разработчику уровня Middle/Senior. Данные основаны на 53 реальных интервью.

97% Какие у тебя зарплатные ожидания
73% Какие у тебя есть вопросы
44% Какие критерии при выборе будущей работы
41% Расскажи о себе
38% Почему ищешь работу
35% Расскажи про свой опыт
35% Расскажи про проект на предыдущей работе
32% Почему уволился с предыдущей работы
29% Где территориально сейчас живешь/находишься
23% Есть ли другие предложения по работе
17% Есть ли военный билет
17% Почему хочешь сменить работу
17% Как проводишь свободное время
17% Расскажи про задачи на предыдущей работе
17% Сколько коммерческого опыта работы с Python
17% С какими БД работал
14% Находишься ли в активном поиске работы
14% С каким стеком работаешь
14% Почему решил откликнуться на нашу вакансию
14% Какой текущий статус поиска работы
11% Почему решил стать программистом
11% С какими фреймворками работал
11% Какую зарплату получал на предыдущей работе
11% Работаешь ли в настоящий момент
11% На какой грейд себя оцениваешь
11% Как быстро можешь приступить к работе после получения офера
11% Расскажи про свои pet-проекты
8% Какие знаешь типы данных в Python
8% Что такое декоратор в Python
8% Что ищешь на новой работе

🚀 Скоро стартует краудфандинговая кампания, которая поможет ускорить разработку EasyOffer 2.0.
Первые спонсоры получат уникальные лимитированные награды!

📢 Если вам это интересно, подписывайтесь на канал 👉 этот телеграм канал
🤔 Что известно про уровни изоляции?

Уровни изоляции транзакций (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE) предотвращают такие проблемы, как грязные чтения, фантомные записи и потерянные обновления.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 В чём различие между LeftJoin , RightJoin и InnerJoin ?

В SQL, JOIN операторы используются для объединения строк из двух или более таблиц на основе логического отношения между ними. Вот различия между LEFT JOIN, RIGHT JOIN и INNER JOIN:

🟠`INNER JOIN`
INNER JOIN возвращает только те строки, которые имеют совпадения в обеих таблицах, участвующих в соединении.
SELECT A.*, B.*
FROM TableA A
INNER JOIN TableB B ON A.id = B.id;


🟠`LEFT JOIN` (или `LEFT OUTER JOIN`)
LEFT JOIN возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если совпадений нет, результат всё равно будет включать строки из левой таблицы с NULL значениями для столбцов из правой таблицы.
SELECT A.*, B.*
FROM TableA A
LEFT JOIN TableB B ON A.id = B.id;


🟠RIGHT JOIN (или RIGHT OUTER JOIN)
RIGHT JOIN возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Если совпадений нет, результат всё равно будет включать строки из правой таблицы с NULL значениями для столбцов из левой таблицы.
SELECT A.*, B.*
FROM TableA A
RIGHT JOIN TableB B ON A.id = B.id;


INNER JOIN
SELECT Employees.name, Departments.dept_name
FROM Employees
INNER JOIN Departments ON Employees.dept_id = Departments.dept_id;


LEFT JOIN
SELECT Employees.name, Departments.dept_name
FROM Employees
LEFT JOIN Departments ON Employees.dept_id = Departments.dept_id;


RIGHT JOIN
SELECT Employees.name, Departments.dept_name
FROM Employees
RIGHT JOIN Departments ON Employees.dept_id = Departments.dept_id;


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🤔 Какие есть паттерны в объектном проектировании?

Существуют три группы паттернов:
- Порождающие (Singleton, Factory).
- Структурные (Adapter, Proxy).
- Поведенческие (Observer, Strategy).


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

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

🚩Функции

🟠Определение многоконтейнерного приложения
Docker Compose использует YAML-файл (docker-compose.yml) для описания всех контейнеров (сервисов), которые составляют ваше приложение. В этом файле можно указать образы, настройки сети, монтируемые тома и переменные окружения.

🟠Управление зависимостями
Позволяет указать зависимости между сервисами, что обеспечивает правильный порядок запуска контейнеров.

🟠Запуск и остановка сервисов
С помощью простой команды docker-compose up можно запустить все контейнеры, указанные в docker-compose.yml. Команда docker-compose down останавливает и удаляет все контейнеры, сети и тома, созданные up.

🟠Поддержка масштабирования
Можно легко масштабировать сервисы (запускать несколько экземпляров одного контейнера) с помощью команды docker-compose up --scale.

🚩Пример использования

docker-compose.yml для веб-приложения, состоящего из веб-сервера и базы данных:
version: '3'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- db

db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql

volumes:
db_data:


🚩Команды

🟠docker-compose up
Создает и запускает все контейнеры, указанные в docker-compose.yml.
🟠docker-compose down
Останавливает и удаляет все контейнеры, сети и тома, созданные docker-compose up.
🟠docker-compose ps
Показывает статус запущенных контейнеров.
🟠docker-compose logs
Выводит логи всех контейнеров.
🟠docker-compose exec [service] [command]
Выполняет команду в запущенном контейнере.

🚩Плюсы

Упрощение разработки
Легко настроить и запустить все необходимые сервисы для разработки.
Легкость в использовании
Простота в управлении многоконтейнерными приложениями с помощью нескольких команд.
Унификация окружения
Единый файл конфигурации для разработки, тестирования и производства, что снижает вероятность ошибок из-за различий в конфигурациях.
Масштабируемость
Легко масштабировать отдельные сервисы приложения.

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

Хеш-функция преобразует данные в хеш-код фиксированной длины. Она используется для индексирования и проверки целостности данных. Эффективность хеш-функции влияет на производительность структур данных, таких как хеш-таблицы.

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

Принцип "открытости/закрытости" (Open/Closed Principle, OCP) — это один из пяти принципов SOLID, разработанных для создания устойчивого и легко поддерживаемого кода в объектно-ориентированном программировании. Принцип был предложен Бертраном Мейером в 1988 году и заключается в следующем:

🚩Что это означает

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

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

Без соблюдения принципа OCP
public class Shape {
public void drawCircle() {
// рисуем круг
}

public void drawSquare() {
// рисуем квадрат
}
}

public class GraphicEditor {
private Shape shape;

public GraphicEditor(Shape shape) {
this.shape = shape;
}

public void draw(String shapeType) {
if (shapeType.equals("circle")) {
shape.drawCircle();
} else if (shapeType.equals("square")) {
shape.drawSquare();
}
}
}


С соблюдением принципа OCP
public interface Shape {
void draw();
}

public class Circle implements Shape {
@Override
public void draw() {
// рисуем круг
}
}

public class Square implements Shape {
@Override
public void draw() {
// рисуем квадрат
}
}

public class GraphicEditor {
private Shape shape;

public GraphicEditor(Shape shape) {
this.shape = shape;
}

public void draw() {
shape.draw();
}
}


🚩Плюсы

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

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

Упрощение тестирования
Легче тестировать новые компоненты отдельно, не затрагивая и не изменяя существующие.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🤔 Какие есть уровни изоляции транзакций?

Уровни изоляции:
- READ UNCOMMITTED – минимальная изоляция, допускаются грязные чтения.
- READ COMMITTED – предотвращает грязные чтения.
- REPEATABLE READ – защищает от повторного чтения.
- SERIALIZABLE – полная изоляция, максимальная защита.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Что можешь рассказать про 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
🤔 Что такое HTTP?

Это протокол передачи гипертекста. Используется для обмена данными между клиентами и серверами в интернете. Версия HTTPS включает шифрование для безопасности.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какие знаешь принципы ООП?

Объектно-ориентированное программирование (ООП) базируется на нескольких ключевых принципах, которые помогают создавать гибкие, понятные и легко поддерживаемые программы.

🟠Абстракция (Abstraction)
Абстракция заключается в выделении значимых характеристик объекта и игнорировании незначимых. Это позволяет создавать упрощенные модели реальных объектов.

🟠Инкапсуляция (Encapsulation)
Инкапсуляция скрывает внутренние детали объекта и позволяет взаимодействовать с объектом только через определенные методы. Это защищает данные от некорректного использования и облегчает изменение и поддержку кода.

🟠Наследование (Inheritance)
Наследование позволяет создавать новые классы на основе существующих. Новый класс (наследник) получает все свойства и методы родительского класса и может добавлять новые или изменять существующие.

🟠Полиморфизм (Polymorphism)
Полиморфизм позволяет объектам разных классов обрабатывать запросы одинаковым образом. Это достигается через переопределение методов в наследуемых классах и интерфейсы.

🟠Композиция (Composition)
Композиция предполагает создание объектов других классов внутри данного класса. Это позволяет использовать функциональность существующих классов, не создавая зависимостей через наследование.

🟠Агрегация (Aggregation)
Агрегация - это специальный вид композиции, который позволяет одному объекту быть частью другого с возможностью существования вне этого объекта. Агрегация описывает "имеет" отношения.

🚩Важность принципов ООП

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

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🤔 Какие существуют нормальные формы в SQL?

Нормальные формы (1NF, 2NF, 3NF, BCNF) устраняют избыточность и повышают целостность данных, минимизируя повторяющиеся данные в таблицах.

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