Перейти к основному содержимому

Чек-лист самопроверки

Разработчику Архитектору Инженеру

Чек-лист самопроверки

  1. Понимаю ли я, что такое зависимость в контексте программного проекта?

  2. Могу ли я отличить прямую зависимость от косвенной?

  3. Умею ли я выявлять зависимости между классами в коде?

  4. Знаю ли я, чем отличается модульная зависимость от библиотечной?

  5. Понимаю ли я, почему жёсткая связь (tight coupling) вредна?

  6. Могу ли я привести пример зависимости данных?

  7. Умею ли я распознавать инфраструктурные зависимости?

  8. Знаю ли я, что такое двунаправленная зависимость и почему она опасна?

  9. Понимаю ли я, как косвенная зависимость может скрывать архитектурные проблемы?

  10. Могу ли я объяснить, почему зависимость от конкретной реализации — это антипаттерн?

  11. Знаю ли я формулировку принципа инверсии зависимостей (DIP)?

  12. Понимаю ли я разницу между DIP и DI?

  13. Могу ли я применить DIP к существующему коду?

  14. Умею ли я проектировать интерфейсы как точки инверсии?

  15. Знаю ли я, когда стоит использовать абстракцию вместо конкретного класса?

  16. Понимаю ли я, почему абстракции не должны зависеть от деталей?

  17. Могу ли я переписать код с жёсткой зависимостью на DIP-совместимый?

  18. Умею ли я выделять общие контракты для разных реализаций?

  19. Знаю ли я, как DIP влияет на тестируемость кода?

  20. Понимаю ли я, как DIP способствует расширяемости системы?

  21. Знаю ли я, что такое Dependency Injection?

  22. Могу ли я перечислить все виды DI (constructor, setter, field, method, property)?

  23. Умею ли я реализовать Constructor Injection в C#?

  24. Умею ли я реализовать Constructor Injection в Java?

  25. Умею ли я реализовать Constructor Injection в Python?

  26. Умею ли я реализовать Constructor Injection в TypeScript?

  27. Понимаю ли я, почему Constructor Injection считается предпочтительным?

  28. Знаю ли я недостатки Setter Injection?

  29. Понимаю ли я, когда допустимо использовать Property Injection?

  30. Знаю ли я, почему Field Injection считается антипаттерном?

  31. Могу ли я объяснить, что такое DI-контейнер?

  32. Знаю ли я, как регистрировать сервисы в .NET DI-контейнере?

  33. Знаю ли я, как регистрировать бины в Spring?

  34. Понимаю ли я разницу между singleton, transient и scoped жизненными циклами?

  35. Умею ли я настраивать DI-контейнер для сложных сценариев?

  36. Знаю ли я, как DI-контейнер разрешает цепочки зависимостей?

  37. Понимаю ли я, как контейнер обрабатывает циклические зависимости?

  38. Умею ли я использовать DI-контейнер для внедрения моков в тестах?

  39. Знаю ли я, как проверить, что все зависимости зарегистрированы корректно?

  40. Понимаю ли я, когда DI-контейнер может быть избыточным?

  41. Могу ли я написать тестируемый код с использованием DI?

  42. Умею ли я заменять реальные зависимости на моки в unit-тестах?

  43. Знаю ли я, как избежать утечек памяти при неправильном управлении жизненным циклом?

  44. Понимаю ли я, как зависимости влияют на производительность приложения?

  45. Умею ли я анализировать граф зависимостей в проекте?

  46. Знаю ли я инструменты для визуализации зависимостей (например, NDepend, Structure101)?

  47. Понимаю ли я, как управлять версиями внешних библиотек?

  48. Умею ли я минимизировать количество транзитивных зависимостей?

  49. Знаю ли я, как обновлять зависимости без нарушения совместимости?

  50. Готов ли я применять эти принципы в реальных проектах и архитектурных решениях?


Освоение главы0%