Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что означает принцип открытости/закрытости (Open-Closed)? Как свойства в C# помогают его реализовать?
Принцип открытости/закрытости (OCP) означает, что поведение класса можно расширять, не изменяя его исходный код. Свойства в C# помогают соблюсти этот принцип, позволяя делать данные класса доступными для чтения и модификации извне через четко определённый интерфейс (геттеры и сеттеры), не раскрывая внутреннюю реализацию. Это позволяет гибко настраивать поведение объекта после его создания.
В чём суть принципа Open–Closed и как его применять на практике?
Open–Closed говорит, что класс должен быть открыт для расширения, но закрыт для изменения. Это означает, что новую функциональность лучше добавлять через новые классы, а не переписывать старые. На практике это реализуется с помощью интерфейсов, абстракций, наследования и стратегий. Благодаря этому код становится устойчивым к изменениям и меньше ломается при добавлении новых фич.
Раскройте принцип Open/Closed
Принцип Open/Closed означает, что код должен быть открыт для расширения, но закрыт для изменения. Это значит, что новую функциональность нужно добавлять, не переписывая существующий код. Такой подход снижает риск сломать уже работающую систему. Обычно он достигается с помощью абстракций и полиморфизма. Это делает код устойчивым к изменениям требований.
В чём суть принципа Open–Closed?
Принцип Open–Closed означает, что код должен быть открыт для расширения, но закрыт для изменения. Это значит, что новое поведение добавляется через расширение, а не через правку существующих классов. Такой подход снижает риск поломать уже работающий код. Обычно принцип реализуется через протоколы, наследование и композицию. Он особенно важен при развитии и масштабировании проекта.
Что произойдёт, если забыть вызвать rows.Close() при работе с database/sql?
Если не закрыть rows, соединение может не вернуться в пул. Под нагрузкой это приводит к исчерпанию соединений и “подвисанию” запросов.
Как спроектировать компонент, который безопасно завершает работу при параллельных вызовах Close?
Рейтинг:
5
Сложность:
7
Метод Close должен быть идемпотентным и потокобезопасным. Обычно используется sync.Once, mutex или atomic флаг. Это гарантирует, что ресурс будет закрыт только один раз. Остальные вызовы Close не должны приводить к ошибкам.
Рейтинг:
2
Сложность:
7
Рейтинг:
5
Сложность:
4
Рейтинг:
5
Сложность:
7
Рейтинг:
5
Сложность:
6
Рейтинг:
4
Сложность:
6