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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
93%
200
3%
400
0%
404
3%
500