Головна мета ISP -- це спростити імплементацію залежності. Одразу із цим стикаєшся на unit-тестах, при чому, це, так би мовити, щоденний бенефіт від ISP. А справжній бенефіт, це коли за два роки треба на одному компоненті додати розширений аудіт, то робиш декоратор для маленького інтерфейсу, а не всього, що підтримує імплементація. Або коли переносиш старий компонент в новий проект, то просто радієш, що тепер можна не тягти за собою все на світі, а швиденько реалізувати маленький інтерфейс. ISP саме про те, щоб було простіше робити реалізації, особливо на пізніх етапах.
Здравствуйте подскажите пожалуйста Вы часто писали и говорили, что не используете typescript, а используете .d, файлы для типизации, пожалуйста можете показать в одном уроке просто пример как вот так пользоваться чистым js, с такими .d файлами на большом проекте. Спасибо за внимание
1:25 можуть бути різні підходи в різних мовах програмування, в залежності від властивостей системи типів. Якщо типізація структурна, то кожен клієнт може визначити залежність так вузько, як його треба. Якщо типізація номінальна, то тут вже дійсно треба визначати ролі (або права), і дробити інтерфейси на ролі, але це все одно означає, що певні клієнти будуть змушені залежити від більшого, ніж їм треба. 2:17 ні, зачеплення зменьшує DIP, він просто його розриває. ISP також, нічого не відкриває для DI, це все вже DIP зробив.
сам тайп скрипт єто делает. но штука в том, что без обработки результата работы, єто все не имеет никакого смысла. как следствие - в любом случае пишешь все руками.
@@TimurShemsedinov та думати можна про що і як завгодно ;) Але для JS принцип ISP просто неактульний, бо залежності в термінах інтерфейсів не декларуються, і відповідність впровадження залежностей до рантайма не перевіряється, то ж клієнти за замовченням не змушені декларувати більше, ніж треба -- бо взагалі не змушені декларувати. Або можна вважати, що для JS ISP завжди виконаний ;)
Я провел тут расследование.
TS расшифровывается как Timur Shemsedinov)))
😂
Головна мета ISP -- це спростити імплементацію залежності. Одразу із цим стикаєшся на unit-тестах, при чому, це, так би мовити, щоденний бенефіт від ISP.
А справжній бенефіт, це коли за два роки треба на одному компоненті додати розширений аудіт, то робиш декоратор для маленького інтерфейсу, а не всього, що підтримує імплементація.
Або коли переносиш старий компонент в новий проект, то просто радієш, що тепер можна не тягти за собою все на світі, а швиденько реалізувати маленький інтерфейс.
ISP саме про те, щоб було простіше робити реалізації, особливо на пізніх етапах.
Здравствуйте подскажите пожалуйста Вы часто писали и говорили, что не используете typescript, а используете .d, файлы для типизации, пожалуйста можете показать в одном уроке просто пример как вот так пользоваться чистым js, с такими .d файлами на большом проекте. Спасибо за внимание
1:25 можуть бути різні підходи в різних мовах програмування, в залежності від властивостей системи типів. Якщо типізація структурна, то кожен клієнт може визначити залежність так вузько, як його треба. Якщо типізація номінальна, то тут вже дійсно треба визначати ролі (або права), і дробити інтерфейси на ролі, але це все одно означає, що певні клієнти будуть змушені залежити від більшого, ніж їм треба.
2:17 ні, зачеплення зменьшує DIP, він просто його розриває. ISP також, нічого не відкриває для DI, це все вже DIP зробив.
А посоветуйте утилиту (пакет) для генерации *.d.ts файлов по имеющимся js.
сам тайп скрипт єто делает. но штука в том, что без обработки результата работы, єто все не имеет никакого смысла.
как следствие - в любом случае пишешь все руками.
Как же это все сложно, когда не знаешь о чем речь))
10:51 якщо інтерфейсів нема, то їх нема! ;) І ділити тоді нічого. Тоді працюйте за SRP, OCP та DIP.
Нужно думать про интерфейсы, как про форму объектов и про контракты
@@TimurShemsedinov
та думати можна про що і як завгодно ;) Але для JS принцип ISP просто неактульний, бо залежності в термінах інтерфейсів не декларуються, і відповідність впровадження залежностей до рантайма не перевіряється, то ж клієнти за замовченням не змушені декларувати більше, ніж треба -- бо взагалі не змушені декларувати.
Або можна вважати, що для JS ISP завжди виконаний ;)