🧩 SOLID: ISP - Принцип разделения интерфейса - Interface segregation principle для JavaScript

Поделиться
HTML-код
  • Опубликовано: 22 ноя 2024

Комментарии • 11

  • @zhandosissayev9798
    @zhandosissayev9798 2 дня назад +1

    Я провел тут расследование.
    TS расшифровывается как Timur Shemsedinov)))

  • @dimitro.cardellini
    @dimitro.cardellini 2 дня назад

    Головна мета ISP -- це спростити імплементацію залежності. Одразу із цим стикаєшся на unit-тестах, при чому, це, так би мовити, щоденний бенефіт від ISP.
    А справжній бенефіт, це коли за два роки треба на одному компоненті додати розширений аудіт, то робиш декоратор для маленького інтерфейсу, а не всього, що підтримує імплементація.
    Або коли переносиш старий компонент в новий проект, то просто радієш, що тепер можна не тягти за собою все на світі, а швиденько реалізувати маленький інтерфейс.
    ISP саме про те, щоб було простіше робити реалізації, особливо на пізніх етапах.

  • @Noname-i4f3z
    @Noname-i4f3z День назад

    Здравствуйте подскажите пожалуйста Вы часто писали и говорили, что не используете typescript, а используете .d, файлы для типизации, пожалуйста можете показать в одном уроке просто пример как вот так пользоваться чистым js, с такими .d файлами на большом проекте. Спасибо за внимание

  • @dimitro.cardellini
    @dimitro.cardellini 2 дня назад

    1:25 можуть бути різні підходи в різних мовах програмування, в залежності від властивостей системи типів. Якщо типізація структурна, то кожен клієнт може визначити залежність так вузько, як його треба. Якщо типізація номінальна, то тут вже дійсно треба визначати ролі (або права), і дробити інтерфейси на ролі, але це все одно означає, що певні клієнти будуть змушені залежити від більшого, ніж їм треба.
    2:17 ні, зачеплення зменьшує DIP, він просто його розриває. ISP також, нічого не відкриває для DI, це все вже DIP зробив.

  • @AlexSav
    @AlexSav 4 дня назад

    А посоветуйте утилиту (пакет) для генерации *.d.ts файлов по имеющимся js.

    • @demimurych1
      @demimurych1 3 дня назад

      сам тайп скрипт єто делает. но штука в том, что без обработки результата работы, єто все не имеет никакого смысла.
      как следствие - в любом случае пишешь все руками.

  • @kazbekelmurzaev9600
    @kazbekelmurzaev9600 3 дня назад

    Как же это все сложно, когда не знаешь о чем речь))

  • @dimitro.cardellini
    @dimitro.cardellini 2 дня назад

    10:51 якщо інтерфейсів нема, то їх нема! ;) І ділити тоді нічого. Тоді працюйте за SRP, OCP та DIP.

    • @TimurShemsedinov
      @TimurShemsedinov  2 дня назад

      Нужно думать про интерфейсы, как про форму объектов и про контракты

    • @dimitro.cardellini
      @dimitro.cardellini 2 дня назад

      @@TimurShemsedinov
      та думати можна про що і як завгодно ;) Але для JS принцип ISP просто неактульний, бо залежності в термінах інтерфейсів не декларуються, і відповідність впровадження залежностей до рантайма не перевіряється, то ж клієнти за замовченням не змушені декларувати більше, ніж треба -- бо взагалі не змушені декларувати.
      Або можна вважати, що для JS ISP завжди виконаний ;)