Подтемы
Чистый код — DRY
13 вопр.
Чистый код — KISS
10 вопр.
Чистый код — Law of Demeter
13 вопр.
Чистый код — именование (Naming)
15 вопр.
Чистый код — PEP8 / ruff / black
12 вопр.
Чистый код — рефакторинг (Refactoring)
13 вопр.
Чистый код — code smells
9 вопр.
Чистый код — SOLID
19 вопр.
Чистый код — YAGNI
14 вопр.
45 вопросов
-
middle theory DRY и "rule of three" — что это и почему «не дублируй» иногда вреднее, чем дублирование?
-
junior theory Что такое Single Responsibility Principle и почему «один класс — одна задача» слишком упрощённая формулировка?
-
senior theory Объясни Liskov Substitution Principle с классическим примером Square/Rectangle. Почему это нарушение LSP?
-
middle theory Что такое "fat interface" и как его исправить по ISP?
-
middle theory YAGNI vs «защита от будущих изменений» — где граница?
-
middle theory Расскажите, как можно применить Dependency Inversion Principle (DIP) при разработке системы логирования. Приведите пример архитектуры, где высокий уровень моду…
-
middle theory Представьте, что у вас есть интерфейс IShape с методами CalculateArea() и CalculatePerimeter(). Класс Square реализует этот интерфейс, но в будущем может появи…
-
middle theory Как вы реализуете Open/Closed Principle (OCP) при добавлении новых типов скидок в систему расчета стоимости заказа? Опишите структуру кода, которая позволяет р…
-
senior theory Объясните, как применение Dependency Inversion Principle (DIP) влияет на архитектуру приложения. Приведите пример реального кода, где DIP улучшает поддерживаем…
-
senior theory Как YAGNI (You Aren't Going to Need It) взаимодействует с принципами SOLID? Приведите пример, где следование SOLID без учёта YAGNI приводит к излишней абстракц…
-
senior theory Какой компромисс между Interface Segregation Principle (ISP) и Single Responsibility Principle (SRP) возникает при проектировании микросервисов? Приведите прим…
-
middle theory Какие правила хорошего naming в коде? Примеры плохого и хорошего. Когда сокращения уместны.
-
junior theory Какие правила PEP 8 чаще всего нарушают? Что делать с автоформаттерами.
-
middle theory Перечисли 5 главных code smells. Как их распознавать и что с ними делать.
-
senior theory Назови 5 техник рефакторинга по Фаулеру. Когда применять, какие риски. Как делать safe-refactor в production коде.
-
middle theory Как вы подходите к рефакторингу кода, написанного в стиле PEP8, но не соответствующего современным стандартам? Каковы ваши приоритеты и чем руководствоваться п…
-
middle theory Как вы подходите к интеграции автоформаттеров в проект? Какие trade-offs вы рассматриваете и чем руководствоваться при принятии решений?
-
middle theory Как вы бы назвали переменную, которая представляет собой идентификатор пользователя в базе данных? Каким образом вы бы определили, что такое хорошее именование…
-
middle theory Как вы бы подходили к именованию функций, которые имеют одинаковый набор параметров, но разную логику? Например, `calculate_total_price` и `calculate_subtotal_…
-
middle theory Как вы бы подходили к именованию констант, которые представляют собой набор правил или ограничений? Например, `MIN_PASSWORD_LENGTH` или `MAX_USERNAME_LENGTH`. …
-
middle theory Опишите сценарий, когда code smell может привести к масштабной проблеме в системе. Приведите примеры и расскажите о том, как их можно предотвратить.
-
middle theory Рефакторинг может привести к появлению новых зависимостей или изменению существующих. Как вы бы описали процесс анализа и минимизации потенциальных воздействий…
-
middle theory Как вы бы описали процесс рефакторинга кода, который включает в себя работу с большими данными? Какие техники рефакторинга вы бы использовали и почему?
-
middle theory Предположим, у нас есть функция `get_user_data()` которая вызывается из нескольких мест в коде. Если мы хотим изменить этот метод, чтобы он теперь возвращает н…
-
middle theory Предположим, у нас есть система, которая использует принципы DRY и имеет много повторяющихся блоков кода. Однако, время от времени нам необходимо добавлять нов…
-
middle theory Предположим, вы пишете функцию, которая парсит XML-документ и возвращает список объектов. Как вы будете организовать этот код, чтобы он был максимально чистым …
-
middle theory Предположим, у вас есть функция, которая выполняет некоторую операцию с данными и может занять время. Как вы будете оптимизировать этот код, чтобы он соответст…
-
middle theory Опишите сценарий, когда Law of Demeter (закон Деметры) может привести к усложнению кода и увеличению связанности между модулями?
-
middle theory Как вы бы решили проблему тестирования класса, который depends на другой класс через интерфейс, но содержит сложные бизнес-логику?
-
middle theory Опишите сценарий, когда принцип YAGNI может конфликтовать с требованием к высокому уровню fault tolerance в системе.
-
middle theory Опишите, как принцип YAGNI влияет на процесс тестирования и профилирования системы.
-
senior theory Представьте, что вы разрабатываете крупную систему с множеством микросервисов, где DRY реализован через общие библиотеки. Однако при масштабировании возникает …
-
senior theory Во время рефакторинга вы заменяете дублирующийся код на общий компонент, но позже обнаруживаете, что в некоторых частях системы он работает некорректно. Объясн…
-
senior theory Представьте, что вы разрабатываете систему, где простота (KISS) может конфликтовать с необходимостью масштабируемости или гибкости. Как вы будете балансировать…
-
senior theory Предположим, вы рефакторите сложный модуль, написанный без учета KISS. Какие конкретные шаги вы предпримете, чтобы упростить его, не нарушая функциональности, …
-
senior theory Как соблюдение Law of Demeter может повлиять на проектирование архитектуры микросервисов, и какие trade-offs возникают при попытке строго следовать этому принц…
-
senior theory Какие failure modes могут возникнуть при строгом соблюдении Law of Demeter в системах с высокой степенью изменчивости (high entropy), и как это влияет на подде…
-
senior theory Представьте, что вы работаете в международной команде, где часть разработчиков говорит на языках с иероглифами или сложными системами письма. Как вы бы подходи…
-
senior theory Как вы бы оценивали баланс между точностью и краткостью в именовании методов, когда требуется передать сложную логику без излишней длины? Приведите примеры, гд…
-
senior theory Вы интегрируете ruff и black в проект с существующим кодом, который частично нарушает PEP8. Как вы будете обрабатывать конфликты между форматтерами, настройку …
-
senior theory При масштабировании проекта с тысячами файлов, как вы будете балансировать между автоматическим соблюдением PEP8 и необходимостью ручного контроля? Какие архит…
-
senior theory Какой code smell может привести к неожиданным побочным эффектам в системе при масштабировании, и как это связано с принципами SOLID? Приведите пример сценария,…
-
senior theory Какой code smell может привести к **technical debt**, который сложно локализовать в больших системах, и как это влияет на **onboarding новых разработчиков**? О…
-
senior theory Как применение принципа YAGNI может повлиять на проектирование систем с высокой степенью модульности при масштабировании до нескольких сотен микросервисов? Опи…
-
senior theory Рассмотрите сценарий, где YAGNI приводит к уязвимости в системе из-за отсутствия реализации проверок на валидность данных. Как это проявляется в failure modes …