О чём вебинар
Вы узнаете себя? Ваш код через полгода превращается в тёмный лес? В проекте есть класс на 2000 строк, который отвечает за всё на свете? Вы боитесь что-то менять, потому что непонятно, что сломается? В коде встречаются except: pass, магические числа и вложенные циклы, которые тормозят систему? Если да – этот вебинар для вас.
Мы разберём 10 самых частых антипаттернов в Python: глобальные переменные, God Object, Spaghetti Code, наследование ради наследования, Primitive Obsession, except: pass, копипасту, магические числа, квадратичную сложность и over-engineering. По каждому пункту покажем плохой код, объясним, почему это проблема, и дадим готовый рефакторинг, который можно применить завтра.
В результате вы научитесь распознавать антипаттерны, получите готовые рецепты по их устранению, сможете аргументированно обсуждать качество кода с коллегами и унесёте с собой чек-лист из 10 пунктов для ежедневной работы.
Цели вебинара:
Научить распознавать 10 самых частых антипаттернов в Python-коде на ранних стадиях, чтобы предотвращать их появление в проектах.
Дать готовые и применимые на практике рефакторинг-решения для каждой описанной проблемы.
Сформировать у участников системное мышление: понимание не только «как написать», но и «как написать правильно, чтобы код жил долго».
Предоставить чек-лист для самостоятельного аудита кода, который можно использовать в повседневной работе.
Содержание
1. Введение. Что такое антипаттерн и чем он отличается от бага. Цена технического долга: как антипаттерны замедляют разработку и демотивируют команду. Принцип работы вебинара: плохой код → разбор проблемы → рефакторинг.
2. Структурные антипаттерны. Глобальные переменные и изменяемое состояние на уровне модуля: почему это убивает тестируемость и предсказуемость. Решение: внедрение зависимостей (Dependency Injection). God Object (Божественный объект): один класс, который знает и умеет всё. Нарушение принципа единственной ответственности (SRP). Решение: разделение на узкие специализированные классы. Spaghetti Code (спагетти-код): смешивание HTTP-слоя, бизнес-логики и SQL-запросов в одном месте. Решение: слоистая архитектура (контроллер → сервис → репозиторий).
3. ООП-антипаттерны. Наследование ради наследования: глубокие иерархии, методы-заглушки и нарушение принципа подстановки Барбары Лисков (LSP). Решение: композиция вместо наследования, паттерн Стратегия. Primitive Obsession (одержимость примитивами): использование строк, словарей и чисел вместо типизированных объектов. Потеря автодополнения, валидации и смысловой нагрузки. Решение: dataclasses, Pydantic-модели, Enum.
4. Кодовые антипаттерны. Except: pass – молчаливое проглатывание исключений. Почему это убивает отладку и скрывает критичные ошибки. Решение: логирование и осмысленная обработка ошибок. Copy-Paste Programming – дублирование кода в нескольких местах. Риск рассинхрона при изменениях. Решение: вынесение общей логики в функции/классы, принцип DRY. Магические числа и строки – непонятные константы в коде. Решение: именованные константы и перечисления (Enum). Вложенные циклы с квадратичной сложностью (O(n²)). Почему они тормозят систему на больших данных. Решение: использование хеш-таблиц (множества и словари) для поиска за O(1). Over-Engineering (избыточное проектирование) – абстракции и паттерны там, где достаточно простой функции. Решение: принцип KISS (Keep It Simple, Stupid).
5. Заключение и Q&A. Итоговый чек-лист из 10 антипаттернов и их решений – шпаргалка для ежедневной работы.
Другие разделы
Для кого
Разработчик