
Всем привет!
Вчера вышел первый урок по курсу. "Основные Архитектурные принципы, на которых стоит FSD"
И там есть очень важная мысль, которую я хочу сюда вынести:
Один из самых главных инструментов Архитектуры на уровне приложения — Инверсия Зависимостей (DI, Dependency Inversion)
Не путать с Dependency Inversion Principle (конкретика всегда зависит на абстракцию)
и с Dependency Injection – инструментом по внедрению зависимостей через конструкторы (или в поля)
Если не знаете, что такое Dependency Inversion — это способ через абстракцию развернуть зависимость.
Что такое зависимость? Это когда карточка пользователя использует api сервис. При изменении api сервиса придётся поменять карточку
Что такое абстракция? Это тип, интерфейс, любая абстрактная сущность языка, не имеющая реализации
Что значит развернуть зависимость? Карточка может определить тип необходимого ей api сервиса. А уже api сервис его реализует. И специальный механизм (Dependency Inejction, или просто руками) на верхнем уровне вложит в пропсы карточки, реализацию api интерфейса
Текстом такое очень сложно описать, смотрите скрин выше. Но это не так важно.
Важно другое: благодаря тому, что мы можем развернуть зависимости, у нас появляется возможность управления направлением зависимостей.
А это значит следующее:
– Мы можем защищать модули друг от друга
– Выстраивать архитектурные границы
– Можем любой модуль сделать независимым и самодостаточным
Именно по этому вторым уроком курса будет большой урок по различным способам реализации DI с Typescript и React. Но даже в открытом доступе у меня есть небольшой урок по DIP (Это чуть более узко) https://youtu.be/QQpJen6Oy5A
Так что, если вы не понимаете, что такое DI, или отрицаете его существование, то вы просто теряете огромное количество возможностей и архитектурных приёмов. Не надо так)
Вчера вышел первый урок по курсу. "Основные Архитектурные принципы, на которых стоит FSD"
И там есть очень важная мысль, которую я хочу сюда вынести:
Один из самых главных инструментов Архитектуры на уровне приложения — Инверсия Зависимостей (DI, Dependency Inversion)
Не путать с Dependency Inversion Principle (конкретика всегда зависит на абстракцию)
и с Dependency Injection – инструментом по внедрению зависимостей через конструкторы (или в поля)
Если не знаете, что такое Dependency Inversion — это способ через абстракцию развернуть зависимость.
Что такое зависимость? Это когда карточка пользователя использует api сервис. При изменении api сервиса придётся поменять карточку
Что такое абстракция? Это тип, интерфейс, любая абстрактная сущность языка, не имеющая реализации
Что значит развернуть зависимость? Карточка может определить тип необходимого ей api сервиса. А уже api сервис его реализует. И специальный механизм (Dependency Inejction, или просто руками) на верхнем уровне вложит в пропсы карточки, реализацию api интерфейса
Текстом такое очень сложно описать, смотрите скрин выше. Но это не так важно.
Важно другое: благодаря тому, что мы можем развернуть зависимости, у нас появляется возможность управления направлением зависимостей.
А это значит следующее:
– Мы можем защищать модули друг от друга
– Выстраивать архитектурные границы
– Можем любой модуль сделать независимым и самодостаточным
Именно по этому вторым уроком курса будет большой урок по различным способам реализации DI с Typescript и React. Но даже в открытом доступе у меня есть небольшой урок по DIP (Это чуть более узко) https://youtu.be/QQpJen6Oy5A
Так что, если вы не понимаете, что такое DI, или отрицаете его существование, то вы просто теряете огромное количество возможностей и архитектурных приёмов. Не надо так)