Специализация
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 в телеграм
Что такое CSS-методы, такие как Atomic CSS или Utility-First CSS (например, Tailwind CSS)?
Atomic CSS и Utility-First CSS — это подходы к написанию стилей, где каждое правило представляет собой отдельное CSS-свойство или утилиту. Например, в Utility-First CSS используются классы, которые определяют конкретные стили, такие как отступы или цвета, что позволяет быстро создавать интерфейсы.
Почему существуют atomic.Value и atomic.Pointer?
atomic.Value и atomic.Pointer позволяют безопасно обновлять данные между потоками без блокировок. Они работают быстрее мьютексов, но поддерживают только определённые типы.
Какие механизмы синхронизации можно использовать, кроме synchronized и Atomic?
ReentrantLock — гибкая блокировка с таймаутами.
Semaphore — ограничение доступа к ресурсу.
CountDownLatch — ожидание завершения N операций.
CyclicBarrier — синхронизация потоков в точке.
Отличие Atomic-классов от synchronized
Atomic-классы (например, AtomicInteger) используют CAS (Compare-And-Swap) для атомарных операций без блокировок. synchronized блокирует весь объект. Atomic не подходит для составных операций (например, check-then-act).
Как работает механизм CAS (Compare-And-Swap) внутри Atomicклассов?
CAS — атомарная инструкция процессора, которая обновляет значение в памяти, только если текущее значение совпадает с ожидаемым (expectedValue). При несовпадении операция повторяется. Это основа Atomic-классов.
Какие примитивы синхронизации (synchronized, Atomic, семафоры) вы использовали?
Как исправить код с CountDownLatch и не-атомарным счётчиком (без AtomicInteger)?
Чем Atomic переменные отличаются от volatile?
Какие методологии организации проекта (FSD, Atomic Design) ты использовал? В чём их отличия?
Как работает Atomic под капотом?
Рейтинг:
2
Сложность:
5
synchronized – для блокировки доступа к общему ресурсу.
Atomic-классы – для атомарных операций (например, AtomicInteger).
Семафоры (Semaphore) – для ограничения доступа к ресурсу с заданным числом потоков.
Рейтинг:
1
Сложность:
6
Чтобы избежать состояния гонки при работе с не-атомарным счётчиком, используйте:
synchronized-блоки для синхронизации доступа к счётчику.
Лок на объекте, общем для всех потоков.
Рейтинг:
2
Сложность:
6
volatile — гарантирует видимость изменений для всех потоков, но не поддерживает атомарные операции (например, i++).
Atomic-классы (AtomicInteger, AtomicBoolean) — обеспечивают атомарность операций (например, incrementAndGet()).
Рейтинг:
2
Сложность:
7
Atomic Design — это методология дизайна, которая делит интерфейс на иерархические уровни: атомы (кнопка, инпут), молекулы (поисковая строка = инпут + кнопка), организмы (шапка сайта), шаблоны и страницы. FSD (Feature-Sliced Design) — это архитектурная методология для frontend-проектов, которая фокусируется на организации папок по бизнес-логике: она делит код на слои (app, pages, features, entities, shared). Ключевое отличие: Atomic Design — это про компоненты, а FSD — про всю структуру проекта, включая логику, состояния и API.
Рейтинг:
5
Сложность:
8
Классы Atomic* используют атомарные инструкции процессора.
Основной механизм — операция CAS (Compare-And-Swap).
Операции выполняются без блокировок.
Это позволяет работать быстрее и масштабируемее под нагрузкой.
Рейтинг:
5
Сложность:
10
Рейтинг:
2
Сложность:
5
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
6