TGViewer
Системный Аналитик Системный Аналитик @sys_sa · 19.1K subscribers
Post #494 11.9K
❌ Антипаттерны проектирования ПО (часть 2)

Лавина изменений (Lava Flow)

Неиспользуемый или мертвый код остается в проекте
❔ боязнь сломать существующую систему, отсутствие документации
➡ код, написанный в начале проекта, но не удаленный после изменения требований


Незакрытые соединения (Resource Leak)

Системные ресурсы (например, память или соединения) не освобождаются после использования
❔ошибки в управлении ресурсами, отсутствие тестирования
➡ открытые файловые сетевые соединения, которые не закрываются после завершения работы


Избыточная абстракция (Abstract Obsession)

Усложнение архитектуры за счет добавления ненужных абстракций
❔ желание сделать код более гибким без необходимости
➡ введение интерфейсов и классов для простых операций, которые не требуют такой сложности


Форма, нарушающая контракт (Leaky Abstraction)

Абстракция, которая не скрывает детали реализации, нарушая инкапсуляцию
❔ недостаточно продуманная архитектура, слишком низкий уровень абстракции
➡ библиотека, которая требует от пользователя знания о её внутренней структуре


Необоснованные зависимости (Unnecessary Dependencies)

Модули зависят друг от друга без веской причины
❔плохое планирование, отсутствие модульности
➡ логика бизнес-слоя зависит от UI-компонентов, что затрудняет изменение интерфейса


Перекрестные зависимости (Cyclic Dependencies)

Модули зависят друг от друга, создавая циклические зависимости
❔ недостаточное планирование, отсутствие четкой архитектуры
➡ модуль А зависит от модуля B, который в свою очередь зависит от модуля A


Копипаст (Copy-and-Paste Programming)

Код копируется и вставляется в разных местах без модификации или рефакторинга
❔ спешка, отсутствие времени на рефакторинг
➡ фрагмент кода для обработки ошибок, дублированный в нескольких методах


Неразрешимая взаимозависимость (Circular Dependency)

Два или более модуля зависят друг от друга напрямую или косвенно
❔ непродуманное разделение обязанностей, спешка при разработке
➡ модуль управления пользователями зависит от модуля управления ролями, и наоборот


Черный ящик (Magic Numbers)

Использование в коде числовых значений без пояснения их смысла
❔ недостаток времени на документирование, слабое проектирование
➡ число "7", использованное для обозначения количества попыток, без объяснения причины выбора


Часть 1 👆

📎 Материалы
1. Магическое число (Magic Number)
2. Большой комок грязи
3. Антипаттерн — Золотой молоток (Golden Hammer)
4. Золотой молоток
5. Спагетти-статья о спагетти-коде
6. Автоматы против спагетти-кода
7. God object. Анализ сложных проектов
8. Антипаттерн — Божественный объект (God Object)
9. Антипаттерн — Метод копипаста (Copy and paste programming)
10. Антипаттерны проектирования: Dead End
11. Антипаттерны построения микросервисных приложений в высоконагруженных проектах
12. Что такое антипаттерны? Разбираем примеры
13. Топ-10 антипаттернов при использовании микросервисов
14. 9 анти-паттернов, о которых должен знать каждый программист


⏯ Видео
1. Худшие практики разработки и архитектуры за 12 минут
2. Антипаттерны
3. Антипаттерны (обзор нескольких)


📚 Книги
Типичные ошибки проектирования -- Эрик Аллен

#проектирование #архитектура
  • 🔥 22
  • 👍 10
  • ❤ 5
  • 💩 1
More from @sys_sa
  1. Sep 28, 2026🔼AMQP, MQTT и STOMP: протоколы обмена сообщениями AMQP, MQTT и STOMP — независимые проток…
  2. Sep 26, 2026Как облегчить работу ИТ-аналитика уже сейчас — без долгосрочных перестроек процессов? Обсу…
  3. Aug 28, 2026❓ ICAM (Incident Cause Analysis Method) ICAM (Incident Cause Analysis Method) — метод разб…
  4. Aug 19, 2026🖥 NewSQL NewSQL — класс реляционных СУБД, который совмещает привычный SQL и строгие ACID…
  5. Jul 14, 2026🔼 Server Driven UI (SDUI) Server Driven UI (SDUI) — архитектурный подход, при котором сер…
  6. Jul 7, 2026📊 Сравнение Баз данных и Хранилищ данных ▫️База данных – оперативное хранилище, где содер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →