🧩 SOLID: DIP - Принцип инверсии зависимостей - Dependency inversion principle для JavaScript
ฝัง
- เผยแพร่เมื่อ 25 พ.ย. 2024
- 👉 Примеры кода: github.com/How...
👉 Курс по асинхронному программированию: github.com/How...
👉 Курс по Node.js: github.com/How...
👉 Автор: github.com/tsh...
👉 Другие материалы: github.com/How...
Дождался!
Спасибо!
DIP - это плоть от плоти функционального программирования, которую потом стали распространять на прочие концепции.
Достаточно посмотреть на лямбда исчисление, чтобы увидеть там тот самый DIP. При этом сама концепция лямбд появились задолго до машини тьюринга.
тихо, тихо ;)
лямбди та автомати йшли "ніздря в ніздрю".
Лямбда-числення
Алонзо Черч, "An Unsolvable Problem of Elementary Number Theory" (1936).
Кінцеві автомати Тюрінга
Алан Тюрінг, "On Computable Numbers, with an Application to the Entscheidungsproblem" (1936-1937).
то ж ... я б не сказав, що прям аж "задовго" ;)
О, разработческие упанишады продолжаются, значит мир ещё жив.
Было бы здорово, в данном видео увидель разбор примера кода, как правильно реализовать этот паттерн. А то как неправльно, есть код, а как правильно нет кода.
@@DimitarRad так в курсе по паттернам есть по каждому принципу разбор примеров кода, а код в репозитории, ссылка под этим видео, там есть и пример с нарушением и правильный
12:20 - а от і ні! ;) Service Locator порушує DIP, бо компонент (клас) починає залежити від сервіс-локатору, який є абстракцією найнижчого рівня. Саме тому, всі DI рішення, що тягнуть декоратори в класи -- порушують DIP
9:10 - але краще так не робити. Тимур на початку відео каже, що нам треба мати можливість перенести застосунок в інше середовище, наприклад на мобілку, то як раз від всіх особливостей системи краще обстрагуватися.
І насрпавді, існує інший підхід, коли інтерфейсний шар просто імпортує бізнес-логіку -- це цілком дозволено DIP-ом, а у випадку з JS та TS є звичним підходом до структури застосунку.