🔍
Java 194 вопросов
Тренировать в боте →Java Core (25)
- Как работает механизм try-with-resources? Какие интерфейсы должны реализовывать ресурсы?
- В чём разница между ClassNotFoundException и NoClassDefFoundError?
- Что такое default-метод в интерфейсе и как разрешается конфликт множественного наследования de…
- Что такое sealed классы и как они работают?
- Чем record класс отличается от обычного класса?
- Как работает сопоставление с образцом (pattern matching) для instanceof в Java 16+?
- Что такое текстовые блоки (text blocks) и для чего они используются?
- Что такое switch-выражения (switch expressions) и чем они отличаются от обычного switch?
- Что такое лямбда-выражение и как оно связано с функциональным интерфейсом?
- Как работает вывод типа локальной переменной (var) в Java 10+?
- Что такое API рефлексии? Каковы его плюсы и минусы?
- Что такое аннотации и какие виды политики удержания (RetentionPolicy) существуют?
- Что такое процесс загрузки класса (class loading) и модель делегирования?
- Какой контракт между методами equals() и hashCode()? Что будет, если его нарушить?
- Что такое статический и нестатический вложенные классы? В чём разница?
- Что такое инициализационные блоки (instance и static) и в каком порядке они выполняются?
- Какие существуют модификаторы доступа в Java? Объясните их видимость.
- Как работает ковариантность возвращаемого типа при переопределении методов?
- Что такое утиный тип (duck typing) и поддерживает ли его Java?
- Что такое захват переменной в лямбда-выражении? Какие переменные можно использовать?
- Что такое diamond operator (<>) и для чего он нужен?
- Что такое перегрузка (overloading) и как компилятор разрешает неоднозначности?
- Почему строка "abc".charAt(3) выбрасывает исключение, а "abc".substring(3) возвращает пустую с…
- Как работают аннотации @SafeVarargs и @SuppressWarnings?
- Что такое захват типа (type inference) в дженериках и как работает механизм улучшенного вывода…
Collections (29)
- Как внутри устроен LinkedHashMap и как он поддерживает порядок?
- Что такое ConcurrentHashMap и как изменилась его реализация в Java 8?
- Как работает CopyOnWriteArrayList и когда его целесообразно использовать?
- Что такое BlockingQueue и какие основные реализации существуют?
- В чём разница между SynchronousQueue и LinkedBlockingQueue ёмкостью 1?
- Что такое PriorityQueue и как она реализована?
- Как работает WeakHashMap и в чём её отличие от HashMap?
- Что такое EnumMap и почему она эффективна?
- Что такое IdentityHashMap и для чего она применяется?
- Что такое представления (views) в коллекциях: keySet(), values(), entrySet()?
- Как можно синхронизировать коллекции без использования synchronized коллекций?
- Что такое Queue и Deque? Какие основные операции у Deque?
- Как работает метод computeIfAbsent в Map? Приведите пример.
- Что такое метод merge в Map?
- Что такое Collections.unmodifiableList() и в чём его ограничения?
- Что такое Arrays.asList() и какие у него особенности?
- Как работает HashMap при коллизиях? Когда и почему связанный список превращается в дерево?
- Что такое load factor и initial capacity в HashMap? Как они влияют на производительность?
- Как работает TreeMap? Какая структура данных используется?
- Что такое NavigableSet и какие методы навигации он добавляет?
- Что такое ConcurrentSkipListMap и в каких случаях используется?
- В чём отличие fail-fast и fail-safe итераторов? Приведите примеры.
- Как работает метод forEach в Iterable и чем отличается от for-each?
- Что такое Spliterator и как он используется в Stream API?
- Что такое коллекции с поддержкой random access? Приведите пример.
- Что такое коллекции-оболочки synchronizedXXX и почему они не рекомендуются для высокой конкуре…
- Как работает delayQueue? Где может применяться?
- Что такое LinkedTransferQueue и чем отличается от LinkedBlockingQueue?
- Как работают коллекции из List.of(), Set.of(), Map.of()? Чем они отличаются от unmodifiable ко…
Multithreading (36)
- Что такое happens-before отношение и какие правила его создают?
- Как работает атомарный класс AtomicInteger? Объясните принцип CAS.
- Чем отличаются AtomicInteger, LongAdder и DoubleAdder?
- Что такое ThreadLocal и как он внутри реализован?
- Каков жизненный цикл потока и переходы между состояниями?
- Чем отличается метод interrupt() от установки флага остановки потока?
- В чём разница между submit() и execute() в ExecutorService?
- Как работает ThreadPoolExecutor и какие параметры конфигурации важны?
- Что такое RejectedExecutionHandler? Какие стратегии обработки отказа существуют?
- Что такое ForkJoinPool и как работает work-stealing?
- Что такое CompletableFuture и как он улучшает работу с асинхронным кодом?
- Как обработать исключение в CompletableFuture?
- Что такое StampedLock и в чём его преимущества перед ReadWriteLock?
- Что такое ReentrantLock? В чём отличие от synchronized?
- Что такое Condition и как он используется вместе с Lock?
- Что такое Phaser? Чем он отличается от CyclicBarrier и CountDownLatch?
- Что такое Exchanger и в каких сценариях применяется?
- Что такое дедлок (deadlock) и как его можно обнаружить?
- Что такое livelock и чем отличается от deadlock?
- Что такое голодание (starvation) и как его избежать?
- Что такое race condition? Приведите пример.
- Как работает volatile? Гарантирует ли он атомарность составных операций?
- Что такое Thread Dump? Какую информацию он содержит?
- Что такое пул потоков с фиксированным числом и кэширующий пул? В чём разница?
- Что такое ScheduledThreadPoolExecutor? Для чего нужен?
- Что такое параллельные стримы (parallel streams)? Какой пул потоков они используют?
- Как правильно остановить поток? Почему метод stop() устарел?
- Что такое ReadWriteLock и когда его применять?
- Что такое спин-блокировка (spinlock) и эффективна ли она в Java?
- Что такое ThreadFactory и зачем она нужна?
- Что такое пакет java.util.concurrent.locks? Какие основные классы?
- Может ли конструктор запускать поток? Корректно ли это?
- Что такое ThreadGroup? Актуальна ли она сейчас?
- Что такое AQS (AbstractQueuedSynchronizer) и как он используется?
- Почему методы wait() и notify() определены в классе Object?
- Что такое Future и какие ограничения имеет стандартная реализация?
Spring (34)
- Как работает аннотация @Transactional? Какой механизм AOP используется?
- Какие уровни изоляции транзакций поддерживает Spring?
- Что такое propagation (распространение) транзакций? Какие типы бывают?
- В чём разница между @Component, @Service, @Repository, @Controller?
- Как работают профили Spring (Profiles) и как активировать их?
- Что такое BeanPostProcessor и когда применяется?
- Что такое @Qualifier и @Primary? Когда их использовать?
- Как работает внедрение зависимостей через конструктор, setter и поле? Плюсы/минусы.
- Что такое Spring AOP? Какие ключевые понятия: аспект, advice, pointcut?
- В чём разница между Spring AOP и AspectJ?
- Что такое @ControllerAdvice и @ExceptionHandler?
- Что такое Spring Boot Actuator и какие endpoints предоставляет?
- Чем отличается RestTemplate от WebClient? Почему WebClient предпочтительнее?
- Как работает автоматическая конфигурация в Spring Boot?
- Что такое Spring Data JPA и как создать запрос из имени метода?
- Что такое пагинация и сортировка в Spring Data?
- Как работает механизм кэширования в Spring?
- Что такое Spring Security? Как работает цепочка фильтров?
- Что такое CSRF защита в Spring Security и как она работает?
- Что такое @PreAuthorize и @PostAuthorize?
- Что такое Spring Cloud и какие компоненты вы знаете?
- Как работает SpringBootTest? Какие есть срезы тестирования?
- Что такое @MockBean и @SpyBean в тестах Spring?
- Что такое @Value и как внедрить список значений?
- Что такое @ConfigurationProperties и чем лучше @Value?
- Как обрабатывать исключения в Spring REST контроллерах?
- Что такое ResponseEntity и как с ним работать?
- Как работает аннотация @Async? Что нужно для её использования?
- Что такое Spring Expression Language (SpEL)? Где используется?
- Как работает Event Handling в Spring?
- Что такое Spring Initializr и зачем используется?
- Что такое CORS и как настроить в Spring?
- Что такое Validation в Spring MVC? Как использовать @Valid?
- Как работать с загрузкой файлов в Spring MVC?
JVM (15)
- Что такое код-кэш (code cache) и что произойдёт при его заполнении?
- Что такое Metaspace? Чем отличается от PermGen?
- Какие алгоритмы сборки мусора знаете? Опишите G1.
- Что такое ZGC и каковы его ключевые особенности?
- Что такое утечка памяти в Java и как её обнаружить?
- Что такое Heap Dump и как его проанализировать?
- Что такое JIT-компиляция и какие уровни компиляции существуют?
- Что такое анализ убегания (escape analysis) и как он помогает?
- Что такое безопасная точка (safepoint) и как она влияет на GC?
- Что такое Thread Local Allocation Buffer (TLAB)?
- Что такое Compressed Oops и зачем нужны?
- Как настроить размер кучи JVM? Какие флаги?
- Что такое Native Memory Tracking (NMT)?
- Чем отличается Major GC от Minor GC?
- Что такое Java Object Header и из чего состоит?
Exceptions (7)
- Что такое try-with-resources и какие требования к ресурсам? Каков порядок закрытия?
- Можно ли в блоке finally выбросить исключение? Что произойдёт с предыдущим исключением?
- Что такое цепочка исключений (chained exceptions)? Как её создать?
- Чем отличается throw от throws?
- Что произойдёт, если статический инициализатор выбросит исключение?
- Можно ли перехватить OutOfMemoryError и попытаться восстановиться?
- Какие исключения могут возникнуть при работе с классами и рефлексией?
OOP (8)
- Что такое принцип единой ответственности (SRP)? Приведите пример нарушения.
- В чём разница между композицией и наследованием? Что предпочтительнее?
- Что такое интерфейсы с default-методами? Может ли интерфейс иметь состояние?
- Что такое полиморфизм подтипов? Приведите пример.
- Как избежать нарушения принципа подстановки Лисков?
- Что такое ковариантность возвращаемого типа и контравариантность аргументов?
- Что такое перечисление (enum) с методами и конструкторами? Как реализовать Singleton через enu…
- Что такое внутренние анонимные классы? Какие ограничения?
Stream API (20)
- Как работает reduce()? В чём разница между reduce с identity и без?
- Чем отличается collect() от reduce()?
- Что такое Collector? Как создать свой коллектор?
- Как работает groupingBy с downstream коллектором?
- Что такое flatMap и чем отличается от map?
- Какие операции стрима сохраняют порядок, а какие могут его нарушить?
- Что такое short-circuiting операции в стримах?
- Как работает параллельный стрим? Какие риски при использовании?
- Что такое Optional и как избежать NullPointerException?
- Как преобразовать Optional в Stream?
- В чём разница между forEach и forEachOrdered?
- Какие функциональные интерфейсы вы знаете? Приведите примеры.
- Что делает метод peek()? Можно ли использовать его для модификации элементов?
- Как объединить несколько стримов в один?
- Что такое IntStream.range() и rangeClosed()?
- Как работает Stream.iterate() с предикатом (Java 9)?
- Что такое ленивые вычисления стримов?
- Что такое boxed() в примитивных стримах?
- Почему стримы не могут быть использованы повторно?
- Что такое метод Collectors.teeing() (Java 12)?
Design Patterns (10)
- Что такое паттерн Observer? Как он реализован в Java?
- Что такое паттерн Strategy и как его применить?
- Что такое паттерн Decorator? Приведите пример из Java.
- Что такое паттерн Proxy? Чем отличается от Decorator?
- Что такое паттерн Chain of Responsibility? Где применяется?
- Что такое паттерн Template Method?
- Что такое паттерн Builder? Как реализовать в Java?
- Что такое паттерн Singleton и как безопасно реализовать его?
- Что такое паттерн Factory Method? Чем отличается от Abstract Factory?
- Что такое паттерн MVC? Как он реализуется в Spring?
Testing (5)
- Что такое @DataJpaTest и какие компоненты он загружает?
- Чем отличается Mock от Spy в Mockito? Когда использовать Spy?
- Что такое тестовые контейнеры (Testcontainers) и в чём их преимущество?
- Что такое @Transactional в тестах и как откат работает?
- Что такое BDD (Behaviour-Driven Development) и какие инструменты?
Python 471 вопросов
Тренировать в боте →Python Core (52)
- Какие типы данных в Python являются изменяемыми, а какие неизменяемыми?
- В чём разница между списком (list) и кортежем (tuple)?
- Что такое list comprehension? Приведите пример.
- Как работает *args и **kwargs?
- Что такое срезы (slicing)? Как задать шаг?
- Что такое None и можно ли его переопределить?
- Как работает оператор is? В чём отличие от ==?
- Что такое динамическая типизация?
- Что такое PEP 8? Для чего он нужен?
- Как работает строгая типизация в Python? Можно ли сложить число и строку?
- Что такое f-строки и как они работают?
- Как работает pass, continue, break?
- Что такое лямбда-функция? Пример использования.
- Как работают map, filter, reduce?
- Что такое распаковка (unpacking)? a, b = [1, 2]
- Как работает менеджер контекста with? Для чего нужен?
- Что такое MRO (Method Resolution Order) и как работает?
- Что такое __main__ и конструкция if __name__ == "__main__"?
- Каковы области видимости переменных (LEGB)?
- Что такое глобальные и локальные переменные? Как их изменить внутри функции?
- Как работает оператор моржа (walrus operator) :=?
- Что такое хэшируемость (hashable)? Какие объекты хэшируемы?
- Что такое GIL (Global Interpreter Lock)? Как он влияет на многопоточность?
- Как Python управляет памятью? Что такое сборщик мусора?
- Что такое mutable default argument и почему это проблема?
- Как работает оператор * (звёздочка) при распаковке и при вызове функции?
- Что такое аннотации типов (type hints) и зачем они нужны?
- Что такое bytes и str? Как преобразовать между ними?
- Что такое enumerate? Как получить индекс элемента в цикле?
- Как работает функция zip? Что будет, если последовательности разной длины?
- Как сделать глубокую копию объекта? В чём разница copy vs deepcopy?
- Что такое docstring и как его использовать?
- Что такое модуль и пакет в Python? __init__.py
- Что такое __pycache__ и файлы .pyc?
- Какие есть способы импорта? import X, from X import Y, import X as Z
- Как работают относительные импорты?
- Что такое виртуальное окружение? Как создать и активировать?
- Что такое pip и как установить пакет? requirements.txt vs pyproject.toml?
- Как работают генераторы списков, множеств и словарей (comprehensions)?
- Что такое тернарный оператор в Python?
- Что такое None, False, True? Являются ли они ключевыми словами?
- Как работает функция help()?
- Что такое dir()?
- Что такое id()?
- Как работает функция isinstance()?
- Что такое модуль collections? Какие типы данных предоставляет?
- Как работает модуль itertools?
- Что такое dataclasses? Преимущества над обычными классами.
- Что такое __slots__? Зачем нужны?
- Как работают декораторы @property, @staticmethod, @classmethod?
- Что такое метаклассы в Python? Как создать свой метакласс?
- Чем отличается __new__ от __init__?
Collections (37)
- Как работают списки (list) внутри? Сложность операций.
- Что такое кортеж (tuple) и зачем он нужен?
- Как устроен словарь (dict)? Почему ключи должны быть хешируемыми?
- Что такое set и frozenset? Разница.
- Что такое deque (collections.deque)? Когда использовать?
- Как работает Counter?
- Что такое defaultdict? Пример использования.
- Что такое OrderedDict и чем отличается от обычного dict в Python 3.7+?
- Что такое namedtuple?
- Как объединить два словаря?
- Что такое итератор? Как сделать объект итерируемым?
- Чем отличается итератор от итерируемого объекта?
- Как работает enumerate? Как получить индекс при обходе?
- Что делает zip? Как быть, если длина разная?
- Как отсортировать список? Что делает key?
- Как развернуть список?
- Как удалить дубликаты из списка с сохранением порядка?
- Что такое ChainMap?
- Как работает модуль array? Чем отличается от списка?
- Что такое heapq и для чего используется?
- Как получить пересечение, объединение, разницу множеств?
- Как работает распаковка с помощью * и **?
- Что такое генераторное выражение? Чем отличается от list comprehension?
- Как преобразовать список в строку и обратно?
- Что делает метод .get() у словаря?
- Как объединить два списка без дубликатов?
- Что такое слайсинг списка с шагом? Примеры.
- Как работает метод .pop() у списка и словаря?
- Что делает метод .extend()? В чём отличие от .append()?
- Как проверить наличие элемента в коллекции? Оператор in.
- Как создать пустой словарь, множество, кортеж?
- Что делает метод .update() у словаря?
- Как работает слайсинг с присвоением (list[::2] = [1,2,3])?
- Что такое bytes и bytearray? Разница.
- Как отсортировать словарь по ключам? По значениям?
- Что делает метод .clear()?
- Как преобразовать два списка в словарь?
OOP (44)
- Что такое класс и объект в Python? Как создать?
- Для чего нужен метод __init__?
- Что такое self? Зачем передаётся первым аргументом?
- В чём разница между атрибутом класса и атрибутом экземпляра?
- Что такое наследование? Как создать подкласс?
- Что делает функция super()?
- Что такое инкапсуляция в Python? Как её реализовать?
- Что такое полиморфизм? Пример.
- Как работают миксины (Mixins)?
- Что такое абстрактный класс? Как создать?
- Что такое @classmethod? Пример использования.
- Что такое @staticmethod? Когда применять?
- Как работают свойства (@property)?
- Что такое магические методы? Примеры __str__, __repr__.
- Что такое __call__?
- Как реализовать __iter__ и __next__ для своего класса?
- В чём разница между __eq__, __hash__ и когда их переопределять?
- Что такое __slots__ и зачем?
- Что такое метакласс? Пример использования.
- Как работает MRO при ромбовидном наследовании?
- Как создать дескриптор? Протокол __get__, __set__, __delete__.
- Что такое dataclass? Чем он лучше обычного класса?
- Как работает __slots__ с наследованием?
- Что делает __new__ в сравнении с __init__?
- Как работает наследование от встроенных типов (list, dict)?
- Что такое интерфейсы в Python? Есть ли они?
- Как запретить наследование от класса?
- Что такое композиция против наследования?
- Как создать неизменяемый класс?
- Что такое __del__? Когда вызывается?
- Как работает проверка isinstance() с учётом наследования?
- Что такое утиная типизация (duck typing)?
- Как работают __getattr__ и __getattribute__? Разница.
- Как создать синглтон в Python?
- Что такое протокол итератора? Как сделать объект итератором?
- Как создать контекстный менеджер на основе класса?
- Что такое деструктор в Python? Проблемы с ним.
- Что такое @dataclass? Какие параметры принимает?
- Что такое dunder-методы? Приведите 5 примеров.
- Как работает __slots__ при наследовании?
- Что такое @property.setter?
- Как проверить, является ли класс подклассом другого?
- Что такое перегрузка операторов? Пример.
- Что происходит при вызове метода у экземпляра? Как работает поиск атрибутов?
Exceptions (29)
- Как обрабатывать исключения? try-except-else-finally.
- Как поднять исключение? raise.
- Как создать собственное исключение?
- Что делает except Exception as e?
- В чём разница между except ValueError и except (ValueError, TypeError)?
- Что делает finally? Гарантируется ли его выполнение?
- Как перехватить все исключения? Почему это плохо?
- Что такое контекст исключения (__context__)?
- Что делает raise from None?
- Как работает try/except/else? Когда полезен else?
- Какое исключение возникает при делении на ноль?
- Что такое AssertionError? Как использовать assert?
- Как перехватить исключение по цепочке из модуля, вызвавшего ваш код?
- Что такое предупреждения (warnings)? Как их генерировать?
- В чём разница между try-with-resources в Java и with в Python?
- Как получить стек-трейс исключения?
- Что происходит с памятью при перехвате исключения?
- Можно ли использовать except без указания типа?
- Что делает sys.exc_info()?
- Можно ли использовать return внутри finally?
- Как повторно поднять то же исключение?
- Как проигнорировать исключение?
- Что такое контекстный протокол и связь с исключениями?
- Что делает contextlib.suppress?
- Какие есть встроенные исключения, кроме Exception?
- Можно ли определить несколько блоков except? В каком порядке проверяются?
- Что будет, если в finally возникнет исключение?
- Как работает отладка с использованием pdb при исключениях?
- Что такое ExceptionGroup и except* в Python 3.11?
Generators & Decorators (37)
- Что такое генератор? Как работает yield?
- Как создать генератор списка (list comprehension) и чем он отличается от генератора выражения?
- Что делает yield from?
- Как получить значение из генератора через send()?
- Что такое декоратор? Как написать простой декоратор?
- Как написать декоратор с параметрами?
- Что делает @wraps из functools?
- Как работают классы-декораторы?
- Что такое генератор в виде класса? __iter__ и __next__.
- Что делает itertools.chain?
- Как остановить генератор?
- Что такое корутины на основе генераторов?
- Как работает декоратор @property?
- Что такое @classmethod и @staticmethod? Когда использовать?
- Как декорировать класс?
- Что такое контекстный менеджер на основе генератора (contextlib.contextmanager)?
- Как работают вложенные декораторы? Порядок применения.
- Что делает декоратор @lru_cache?
- Что такое генератор в виде класса с __iter__?
- Как использовать send() для сопрограмм на генераторах?
- Что такое встроенный all() и any()? Какое отношение к генераторам?
- Что делает enumerate? Можно ли задать начальный индекс?
- Как декорировать метод класса, чтобы сохранить self?
- Что делает zip(*iterables) с одной звёздочкой?
- Как написать бесконечный генератор?
- Что такое декоратор, который измеряет время выполнения функции?
- Как передать аргументы в декоратор, если декоратор уже написан как функция?
- Что такое async генератор?
- Как работает выражение-генератор внутри другого выражения?
- Что делает __iter__ и __next__ в генераторе?
- Как остановить генератор с помощью close()?
- Как работает throw() у генератора?
- Что такое декоратор с сохранением состояния (класс-декоратор)?
- Как написать декоратор, который принимает аргументы и сохраняет их?
- Что делает functools.partial?
- Как создавать цепочки генераторов с yield from?
- Что такое декоратор @singledispatch?
AsyncIO (37)
- Что такое asyncio? Когда применять?
- Что такое event loop?
- Как создать корутину? async def.
- Что делает await?
- Чем отличается asyncio.sleep от time.sleep?
- Как запустить корутину? asyncio.run().
- Что такое Task в asyncio?
- Как создать параллельные задачи? asyncio.gather() или create_task().
- Как обрабатывать исключения в асинхронном коде?
- Что такое async for? Для чего?
- Что такое async with?
- Как написать асинхронный генератор?
- Что делает asyncio.Queue?
- Как выполнить блокирующую функцию в asyncio?
- Что такое asyncio.Semaphore?
- Что делает asyncio.wait_for?
- Как отменить задачу?
- Что такое event loop policies?
- В чём разница между asyncio и threading?
- Что такое callback hell и как asyncio помогает?
- Как отлаживать асинхронный код?
- Что делает asyncio.ensure_future?
- Можно ли использовать asyncio с синхронными библиотеками?
- Что такое uvloop?
- Что делает asyncio.shield?
- Как правильно завершить event loop с незавершёнными задачами?
- Что такое асинхронный менеджер контекста для блокировок?
- Как ограничить количество одновременных запросов?
- Что такое aiohttp?
- Как сделать асинхронный таймаут на выполнение группы задач?
- Что такое async comprehension (list, set, dict)?
- Как тестировать асинхронный код?
- Что делать с DeprecationWarning "There is no current event loop"?
- Что такое asyncio.to_thread()?
- Как обрабатывать сигналы в asyncio?
- Что такое structured concurrency в asyncio?
- Как работает asyncio.sleep(0)?
Stdlib (51)
- Как работать с файлами? open, with, режимы.
- Что делает модуль os? Основные функции.
- Для чего нужен модуль sys?
- Как прочитать все строки файла в список?
- Что делает модуль shutil?
- Как сериализовать объекты в Python? pickle/json.
- Чем отличается json от pickle? Безопасность.
- Как сделать задержку в программе? time.sleep vs sched.
- Что такое модуль datetime? Как получить текущее время?
- Как отформатировать дату/время? strftime/strptime.
- Что такое модуль math?
- Как работать с случайными числами? random модуль.
- Что такое модуль re? Основные функции.
- Как парсить аргументы командной строки? argparse.
- Что делает модуль logging? Уровни.
- Как запустить внешнюю программу? subprocess.
- Что делает модуль pathlib?
- Что такое модуль unittest? Как написать тест?
- Как использовать tempfile для временных файлов?
- Что делает модуль csv?
- Как работать с JSON-файлами?
- Что такое urllib?
- Что делает модуль email?
- Как выполнить HTTP запрос без сторонних библиотек?
- Что такое модуль collections? Основные контейнеры.
- Что делает модуль itertools?
- Как использовать functools.lru_cache?
- Что делает модуль threading?
- Что такое multiprocessing? Отличие от threading.
- Для чего нужен модуль queue?
- Что такое модуль copy?
- Как прочитать INI-файл? configparser.
- Что такое модуль io? StringIO, BytesIO.
- Как закодировать/декодировать base64?
- Что делает модуль hashlib?
- Как заархивировать файлы? zipfile, tarfile.
- Что делает модуль glob?
- Что такое модуль struct?
- Как установить таймер? threading.Timer.
- Что такое atexit?
- Как сделать HTTP-сервер на Python из командной строки?
- Что делает модуль textwrap?
- Как использовать модуль statistics?
- Что делает модуль secrets?
- Что такое модуль typing?
- Для чего нужен модуль importlib?
- Что делает модуль pprint?
- Как работать с переменными окружения?
- Что такое модуль platform?
- Для чего нужен модуль gc?
- Как замерить время выполнения кода? timeit.
Django (61)
- Что такое Django? Архитектура MTV.
- Как создать проект Django?
- Что такое приложение (app) в Django? Как создать?
- Что такое миграции? Как создать и применить?
- Для чего нужен manage.py?
- Что такое ORM в Django? Пример запроса.
- Как создать модель? Поле, типы полей.
- Что такое QuerySet? Ленивость.
- Как фильтровать записи? filter, exclude, get.
- Что такое метод save()?
- Что такое Meta-класс внутри модели?
- Что такое связи: ForeignKey, ManyToManyField, OneToOneField?
- Что такое related_name?
- Как сделать запрос с JOIN? select_related и prefetch_related.
- Что такое Django Admin? Как зарегистрировать модель?
- Что такое представления (views)? Function-based vs Class-based.
- Как работают маршруты (URLconf)? path, re_path.
- Что такое шаблоны (templates) и язык шаблонов Django?
- Что такое контекст в шаблонах?
- Как работает наследование шаблонов?
- Что такое статические файлы? Как подключить?
- Как управлять загрузкой файлов (медиа)?
- Что такое Middleware? Как написать свой?
- Как работают сессии и куки в Django?
- Что такое signals? Пример.
- Как выполнять сырые SQL-запросы?
- Что такое менеджеры моделей?
- Как работают транзакции в Django?
- Что такое валидация модели? full_clean().
- Что такое Form и ModelForm?
- Как обрабатывать загрузку файлов через форму?
- Что такое контекстный процессор?
- Что такое CSRF-токен? Как он работает?
- Как использовать кэширование в Django?
- Что такое REST API в Django? Django REST Framework.
- Что такое сериализатор в DRF?
- Как создать ViewSet в DRF?
- Что такое аутентификация и авторизация в Django?
- Как расширить модель пользователя?
- Что такое Django REST Framework simplejwt?
- Как написать кастомную команду manage.py?
- Что такое Generic Views? Примеры.
- Как сделать пагинацию?
- Что такое версионирование API в DRF?
- Как настроить логирование в Django?
- Что такое WSGI и ASGI в контексте Django?
- Как деплоить Django?
- Что такое Django Channels?
- Как обрабатывать ошибки 404 и 500?
- Что такое django-debug-toolbar?
- Как использовать переменные окружения в настройках?
- Что такое QuerySet.annotate() и aggregate()?
- Как работают Q-объекты и F-выражения?
- Что такое ContentType Framework?
- Как управлять порядком миграций при зависимостях между приложениями?
- Что такое декоратор @login_required?
- Как реализовать многоязычность (i18n) в Django?
- Что такое STATIC_ROOT и STATICFILES_DIRS?
- Как использовать select_related и prefetch_related? Когда что выбрать?
- Что такое runserver и почему его нельзя использовать в продакшене?
- Как масштабировать Django приложение?
Flask (39)
- Что такое Flask? Как создать приложение?
- Как работают маршруты? Переменные правила.
- Что такое request и response?
- Как отдать JSON?
- Как обрабатывать методы запроса (GET, POST)?
- Что такое шаблонизатор Jinja2?
- Как передать переменные в шаблон?
- Как сделать редирект?
- Что такое url_for?
- Как обрабатывать статические файлы?
- Что такое контекст приложения и контекст запроса?
- Что такое Flask Blueprint?
- Как создать Blueprint?
- Что такое Flask Extensions? Примеры.
- Как работать с базой данных через Flask-SQLAlchemy?
- Что такое Flask-Migrate?
- Как обрабатывать формы? Flask-WTF.
- Как сделать аутентификацию? Flask-Login.
- Что такое сессии во Flask?
- Что такое app.config?
- Как включить режим отладки?
- Что такое before_request и after_request?
- Как обрабатывать ошибки 404?
- Как прервать запрос с ошибкой? abort().
- Как сделать REST API на Flask?
- Что такое Flask-RESTful?
- Как загружать файлы?
- Что такое application factory?
- Как подключать Middleware (WSGI middleware)?
- Что такое g объект?
- Как сделать потокобезопасный доступ к данным?
- Что такое Flask-SocketIO?
- Как написать тесты для Flask?
- Как обрабатывать CORS?
- Что такое Flask-Admin?
- Как реализовать пагинацию вручную?
- Что такое конфигурация FLASK_APP и FLASK_ENV?
- Как сделать кэширование? Flask-Caching.
- Что такое тестирование с помощью pytest и fixtures?
FastAPI (29)
- Что такое FastAPI? На чём основан?
- Как создать минимальное приложение?
- Что такое Pydantic модели?
- Как задать параметры пути и запроса?
- Как автоматически генерируется документация?
- Что такое Dependency Injection в FastAPI?
- Как настроить подключение к БД?
- Что такое Background Tasks?
- Как работать с формами и файлами?
- Что такое Middleware в FastAPI?
- Как добавить аутентификацию?
- Что такое CORS и как настроить?
- Как возвращать разные статус-коды и ответы?
- Что такое WebSockets в FastAPI?
- Как тестировать FastAPI приложения?
- Что такое OpenAPI и JSON Schema?
- Как обрабатывать ошибки? HTTPException.
- Что такое параметры cookie и header?
- Как реализовать пагинацию?
- Что такое метаданные приложения (title, description)?
- Что такое sub-applications (монтирование)?
- Как использовать асинхронные зависимости?
- Что такое роутеры (APIRouter)?
- Как настроить логгер?
- Что такое lifespan (события запуска/остановки)?
- Как сделать загрузку файлов через UploadFile с валидацией?
- Что такое декораторы @app.exception_handler?
- Как добавить поддержку GraphQL?
- Что такое SQLModel?
Testing (30)
- Что такое pytest? Фикстуры и параметризация.
- Как написать простой тест с pytest?
- Что такое фикстуры (fixtures)? scope.
- Как параметризовать тест? @pytest.mark.parametrize.
- Что такое моки? Когда использовать?
- Как проверить, что исключение вызвано?
- Что такое pytest.mark?
- Как запустить тесты параллельно?
- Что такое unittest? Иерархия TestCase.
- Чем pytest лучше unittest?
- Как проверить содержимое stdout или логов?
- Что такое покрытие кода (coverage)?
- Как пропустить тест?
- Что такое conftest.py?
- Как проверить, что mock вызван с определёнными аргументами?
- Что такое factory boy?
- Как настроить базу данных для тестов?
- Что такое TDD?
- Как запускать тесты в CI/CD?
- Что такое интеграционные тесты?
- Как тестировать REST API?
- Что такое hypothesis?
- Как замерить время выполнения теста?
- Как сделать assert почти с любым выражением?
- Что такое conftest.py на уровне пакета?
- Как использовать моки в pytest через mocker fixture?
- Что такое tox?
- Как тестировать асинхронные функции?
- Что такое freeze gun (freezegun)?
- Какая разница между unit-тестами и end-to-end (e2e)?
DevOps & Tools (25)
- Что такое виртуальное окружение?
- Как управлять зависимостями? pip, Poetry, pipenv.
- Что такое Docker? Как использовать с Python?
- Что такое CI/CD?
- Как работают логи в production?
- Что такое переменные окружения и секреты?
- Что такое Gunicorn?
- Что такое Nginx и зачем он нужен?
- Как мониторить приложение?
- Что такое ASGI сервер? Примеры.
- Как развернуть Python-приложение на облаке?
- Что такое make файл?
- Как организовать конвейер GitHub Actions?
- Что такое линтинг? Flake8, pylint, black.
- Что такое pre-commit hooks?
- Как настроить базу данных PostgreSQL в Docker?
- Что такое 12-факторное приложение?
- Как управлять секретами в production?
- Что такое blue-green deployment?
- Как автоматически масштабировать приложение?
- Что такое Sentry?
- Как реализовать health-check эндпоинт?
- Что такое docker-compose?
- Как использовать .env файлы?
- Что такое Terraform?