Специализация
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 в телеграм
Какие паттерны программирования знаешь?
Паттерны проектирования — это проверенные временем шаблоны решения типичных задач. Они делятся на три основные категории:
Порождающие (например, Singleton, Factory, Builder).
Структурные (например, Adapter, Decorator, Proxy).
Поведенческие (например, Observer, Strategy, Command).
Что такое поведенческие паттерны?
Поведенческие паттерны проектирования фокусируются на улучшении взаимодействия между объектами и организации их ответственности. Эти паттерны помогают создать гибкие и удобные в обслуживании системы, обеспечивая решение проблем взаимодействия и распределения обязанностей.
Опиши, как реализовать продвинутые паттерны обработки ошибок в Rust, такие как комбинация Result с пользовательскими типами ошибок и цепочка операторов ? для лаконичной обработки ошибок
Пользовательские типы ошибок (enum) позволяют точно описывать различные сценарии ошибок, а комбинация Result с ? обеспечивает компактную и читаемую обработку ошибок. Это помогает передавать ошибки через стек вызовов и обрабатывать их на верхнем уровне.
Какие архитектурные паттерны применяются в Android-приложениях на Kotlin?
На Android часто используют MVVM (Model-View-ViewModel) с LiveData/StateFlow, MVI (Model-View-Intent) для unidirectional data flow и Clean Architecture с разделением на слои (Domain, Data, Presentation). Реже применяют MVP, но MVVM и MVI лучше интегрируются с корутинами и Jetpack-библиотеками.
Какие паттерны проектирования вы применяли в реальных проектах?
В проектах часто применял Strategy для выбора алгоритма отправки уведомлений (Email, SMS, Push), Factory для создания репозиториев в зависимости от конфигурации, Decorator для динамического добавления логирования и проверок, Repository + Unit of Work для абстракции доступа к данным, а также Observer для событийной обработки (кэш-инвалидация при изменении сущностей).
Как реализовать гарантированную доставку сообщений между микросервисами (паттерны Outbox, Saga)?
Какие антипаттерны существуют для аварийного завершения программы?
Какие классовые паттерны проектирования ты знаешь и используешь?
Какие антипаттерны ты знаешь?
Что такое "лингвистические паттерны" (naming patterns, code smells)?
Рейтинг:
2
Сложность:
5
Основные паттерны:
Outbox: Сохранение сообщений в БД в рамках транзакции перед отправкой
Saga: Оркестрация распределённой транзакции через последовательность событий с компенсациями
Рейтинг:
1
Сложность:
9
Антипаттерны включают: использование os.Exit в середине логики, панику без восстановления (recover), игнорирование ошибок и отсутствие обработки сигналов завершения. Они усложняют тестирование, читаемость и устойчивость программы.
Рейтинг:
3
Сложность:
8
Часто используемые классовые паттерны: Singleton, Factory, Decorator, Adapter, Observer. Например, Singleton для shared instance, Factory для создания объектов, Decorator для добавления поведения.
Рейтинг:
2
Сложность:
7
Частые антипаттерны: Massive View Controller, God Object, Singleton overuse, Force unwrapping, Tight coupling. Например, помещать всю логику в ViewController или злоупотреблять синглтонами.
Рейтинг:
2
Сложность:
7
Лингвистические паттерны — это соглашения по именованию сущностей в коде, которые улучшают читаемость (например, CamelCase для классов). Code smells — это симптомы в коде, которые указывают на потенциальные проблемы дизайна (например, длинные методы или дублирование кода).
Рейтинг:
3
Сложность:
9
Рейтинг:
3
Сложность:
8
Рейтинг:
3
Сложность:
7
Рейтинг:
3
Сложность:
5
Рейтинг:
2
Сложность:
7