В Git команды
rebase и merge используются для объединения изменений из разных веток, но делают это по-разному. Основное различие между ними заключается в том, как они сохраняют историю коммитов и как они влияют на структуру репозитория.git merge <branch>Пример
git checkout main
git merge feature-branch
Результат: Создается новый коммит слияния, который объединяет изменения из
feature-branch в main.git rebase <branch>Пример
git checkout feature-branch
git rebase main
Результат: Коммиты из
feature-branch переносятся на вершину main, создавая линейную историю.Merge
Преимущества:
Недостатки:
Rebase
Преимущества:
Недостатки:
Merge
Rebase
Merge объединяет две ветки, создавая новый коммит слияния, сохраняя всю историю коммитов и структуру ветвления. Rebase переносит коммиты текущей ветки на вершину целевой ветки, создавая линейную историю коммитов, что делает историю чище, но изменяет исходные коммиты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Anonymous Quiz
3%
Проверка интеграции системы
4%
Тестирование пользовательского интерфейса
93%
Тестирование отдельных модулей кода
0%
Проверка безопасности
Принцип "открытости/закрытости" (Open/Closed Principle, OCP) — это один из пяти принципов SOLID, разработанных для создания устойчивого и легко поддерживаемого кода в объектно-ориентированном программировании. Принцип был предложен Бертраном Мейером в 1988 году и заключается в следующем:
Классы должны быть открыты для расширения, но закрыты для модификации.
Рассмотрим пример на языке программирования Java.
Без соблюдения принципа 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();
}
}
}Если нужно добавить новый тип фигуры, например, треугольник, придется изменить класс
Shape и метод draw в классе GraphicEditor, что нарушает принцип OCP.С соблюдением принципа 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();
}
}Теперь, если нужно добавить новый тип фигуры, просто создается новый класс, реализующий интерфейс
Shape, и класс GraphicEditor не требует изменений.Принцип "открытости/закрытости" (Open/Closed Principle) означает, что классы должны быть открыты для расширения, но закрыты для модификации. Это позволяет добавлять новые функции без изменения существующего кода, что повышает гибкость, снижает количество ошибок и упрощает тестирование.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Anonymous Quiz
13%
Списки
4%
Словари
4%
Множества
79%
Все вышеперечисленные
Программирование включает множество принципов, которые помогают разработчикам создавать эффективный, читаемый и поддерживаемый код. Вот некоторые из наиболее важных и широко используемых принципов:
Invoice должен обрабатывать только логику, связанную с инвойсами, а не управление базой данных или пользовательский интерфейс.Bird имеет метод fly, то подкласс Penguin не должен его нарушать.- Держите код простым и избегайте сложных решений, когда более простое решение будет работать.
- Пример: Не используйте сложные алгоритмы там, где достаточно простого цикла.
Принципы программирования включают SOLID (SRP, OCP, LSP, ISP, DIP), а также DRY, KISS, YAGNI, Separation of Concerns, Law of Demeter, Fail Fast и Composition over Inheritance. Эти принципы помогают создавать более гибкий, поддерживаемый и качественный код.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
11%
Списки
87%
Хеш-таблицы
1%
Деревья
1%
Очереди
Чистый код — это понятие в программировании, обозначающее код, который легко читать, понимать и поддерживать. Принципы чистого кода помогают разработчикам создавать качественные и устойчивые к изменениям программы. Вот основные характеристики и принципы чистого кода:
int age; // Понятно, что переменная хранит возраст
void calculateAndPrintTotal() {
int total = calculateTotal();
printTotal(total);
}// Calculate the total price including tax
int totalPrice = calculateTotalPrice();
if (isValid) {
process();
} else {
handleError();
} try {
processFile(file);
} catch (IOException e) {
logError(e);
}static final int MAX_USERS = 100;
Чистый код — это понятный, читаемый и поддерживаемый код. Он следит за принципами читаемости, простоты, последовательности, минимизации дублирования, модульности и тестируемости. Чистый код облегчает работу с программой и снижает вероятность ошибок.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Клиент-серверная архитектура — это модель взаимодействия в сетях, где задачи распределяются между поставщиками ресурсов или услуг, называемыми серверами, и потребителями, называемыми клиентами. Это одна из самых распространенных архитектурных моделей в разработке программного обеспечения и сетевых приложений.
Клиент-серверная архитектура — это модель взаимодействия, где клиенты отправляют запросы к серверам, которые обрабатывают эти запросы и возвращают ответы. Она обеспечивает централизованное управление, масштабируемость, разделение обязанностей и безопасность. Примеры включают веб-приложения, электронную почту и базы данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Anonymous Quiz
3%
Только стандартная модель
15%
Кастомная модель с наследованием от AbstractUser
11%
Кастомная модель с наследованием от AbstractBaseUser
71%
Варианты 2 и 3
XML (Extensible Markup Language) — это расширяемый язык разметки, используемый для представления структурированных данных в формате, который легко читается как человеком, так и машиной. XML разработан для хранения и обмена данными между различными системами и платформами.
XML-документ состоит из элементов, атрибутов и текста. Основные компоненты включают:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<!-- Другие элементы -->
</root>
<book>
<title>XML Basics</title>
<author>John Doe</author>
<year>2023</year>
</book>
<book genre="fiction">
<title>XML Basics</title>
<author>John Doe</author>
<year>2023</year>
</book>
<?xml version="1.0" encoding="UTF-8"?>
<library>
<book id="1" genre="fiction">
<title>XML Basics</title>
<author>John Doe</author>
<year>2023</year>
</book>
<book id="2" genre="non-fiction">
<title>Learning XML</title>
<author>Jane Smith</author>
<year>2022</year>
</book>
</library>
XML (Extensible Markup Language) — это язык разметки, используемый для представления структурированных данных. Он позволяет создавать гибкие, читаемые и платформенно независимые документы. XML широко используется для обмена данными между системами и поддерживается множеством технологий и инструментов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
42%
Интерфейс с несколькими методами
51%
Интерфейс с одним абстрактным методом
4%
Интерфейс для работы с базами данных
3%
Интерфейс для работы с сетевыми протоколами
Anonymous Quiz
6%
Рекурсия использует цикл, итерация — рекурсивные вызовы
87%
Рекурсия использует рекурсивные вызовы, итерация — циклы
5%
Рекурсия медленнее итерации
3%
Итерация занимает больше памяти
😁4
📌 Что такое ORM?
💬 Спрашивают в 13% собеседований
🤔 ORM (Object-Relational Mapping) — это техника программирования, которая используется для преобразования данных между несовместимыми системами типов в объектно-ориентированных языках программирования. ORM позволяет разработчикам работать с базами данных, используя объектно-ориентированную парадигму вместо традиционного написания SQL-запросов. Основные функции ORM включают:
1️⃣ Маппинг объектов: ORM сопоставляет классы и их свойства в объектно-ориентированном языке программирования с таблицами и столбцами в реляционной базе данных.
2️⃣ Автоматическое создание запросов: ORM автоматически генерирует SQL-запросы для выполнения операций с базой данных (CRUD - Create, Read, Update, Delete).
3️⃣ Управление связями: ORM обрабатывает отношения между объектами, такие как один к одному, один ко многим и многие ко многим, что упрощает управление связями между таблицами в базе данных.
4️⃣ Кэширование: Многие ORM включают механизмы кэширования, чтобы уменьшить количество обращений к базе данных и улучшить производительность приложения.
🤔 Популярные ORM-фреймворки:
➕ Hibernate (для Java)
➕ Entity Framework (для .NET)
➕ SQLAlchemy (для Python)
➕ ActiveRecord (для Ruby on Rails)
➕ Django ORM (для Django, Python)
Использование ORM упрощает разработку приложений, позволяет избежать ошибок при написании SQL-запросов и делает код более чистым и поддерживаемым.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
💬 Спрашивают в 13% собеседований
Использование ORM упрощает разработку приложений, позволяет избежать ошибок при написании SQL-запросов и делает код более чистым и поддерживаемым.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
12%
Менеджер памяти
29%
Инструмент для работы с потоками данных
51%
Объект для управления ресурсами в блоке кода
8%
Средство для управления базами данных
👍1
Anonymous Quiz
21%
Через обычное наследование классов
15%
Используя миксины
14%
Используя абстрактные базовые классы
50%
Варианты 1 и 3
❤1👍1
Использование HTTPS стало стандартом для большинства современных веб-сайтов, особенно тех, которые обрабатывают конфиденциальную информацию. Это обеспечивает безопасность, доверие пользователей и улучшенные позиции в поисковой выдаче.
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
23%
При высоком числе признаков
28%
При необходимости интерпретации влияния признаков
28%
При большом объеме данных
20%
При высокой нелинейности данных
🤔2
Выбор между Scrum и Kanban зависит от конкретных потребностей и условий вашей команды и проекта. Scrum может быть предпочтителен для проектов с фиксированными сроками и требованиями, требующих регулярных проверок и адаптаций. Kanban лучше подходит для команд, работающих в условиях изменяющихся приоритетов и требующих гибкости в управлении задачами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
6%
GET
21%
POST
73%
PUT
1%
DELETE