GRASP НА ПРИМЕРЕ ANGULAR2 ПРИЛОЖЕНИЯ

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

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

  • @S0ERDEVS
    @S0ERDEVS  4 года назад +6

    24 мая прошел первый вводный стрим по архитектуре на www.patreon.com/soersoft
    Это ежемесячное событие, следующий стрим в июне. Чтобы было понятно какие примерно темы мы обсуждаем на стриме делюсь этим видео...

  • @den_ys
    @den_ys 4 года назад +19

    Это видео не только про MVVM, но и про выход с Vim, Спасибо S0ER помог!

  • @itbeard
    @itbeard 4 года назад +29

    Хочу продолжение)

    • @clickabelno
      @clickabelno 4 года назад +2

      Все хотят! Терпи :p

  • @ЕвгенийВойтенко-й3и
    @ЕвгенийВойтенко-й3и 3 года назад +3

    Спасибо за видео!
    1) В вашей реализации "CRUD" вы не достигаете полиморфизма, т.к. другие классы на вход обязаны будут ждать экземпляры класса "User" (естественно учитывая строгую типизацию в TS и disable any). В этом случае достигнуть передачу нового класса можно только за счет наследования от "User", а не полиморфизма. Для "CRUD" нужно было создавать отдельный интерфейс и реализовывать его "User implements ICrud", и в других частях программы уже ждать на вход или создавать "ICrud", например в компоненте. А еще луче сделать generic "ICrud". Поэтому пример с "User" не удачный для показа полиморфизма, только путает новичков.
    2) Также согласно wiki вы нарушаете принцип "Инверсии зависимостей", т.к. Деталь - компонент, зависит от детали - "User", а не абстракции. Если Деталь - компонент, будет зависеть от детали - "ICrud" или "IUser", то инверсия зависимостей соблюдется.
    Kungs - Never Going Home

    • @bukanaka
      @bukanaka 3 года назад +1

      Что посоветуете в данной теме прочитать/посмотреть?

  • @АлдиярАманбаев-ц6р
    @АлдиярАманбаев-ц6р 4 года назад +3

    Классный формат! Такого материала мало и хотелось бы побольше этого формата. Вот еще алгоритмы на code wars зашли хорошо. Круто, что сказать)

  • @AlexDEVpro
    @AlexDEVpro 11 месяцев назад

    Здравствуйте! Всё круто, спасибо. Но почему поле user (таймкод 6:00) инициализируется в ngOnInit, а не в constructor? Это же инициализация поля класса, она обычно выполняется в конструкторе. Здесь же не нужны @Input'ы для инициализации поля user. Режим strict в TS, вроде бы, должен на это ругнуться.

  • @ilnurryazhapov
    @ilnurryazhapov 4 года назад +6

    Ждем видео по архитектуре ангуляра!

  • @tuku_mann
    @tuku_mann 2 года назад

    Очень интересна тема архитектуры Angular 2+!

  • @ДмитрийПетров-й4ю
    @ДмитрийПетров-й4ю 4 года назад +1

    Очень интересный Грэсп. Я кстати, думал об этом: чтобы определять работу оборудования через нечто подобное + сразу управлять данными + им же распараллелить работу этого оборудования (т.е. изначально заложить архитектуру, пусть не самую скоростную, главное комфортабельное) . Пока, конечно, это всего лишь идеи, но когда то и кабельный телефон с барашком (циферблатом) тоже был какой то очень странной идеей.

  • @blinddeveloper6488
    @blinddeveloper6488 4 года назад +9

    Обезательно сними видео о архитектуре angular2! Кому интересно ставьте лаик!

  • @dz_s
    @dz_s 4 года назад +4

    + за видео об архитектуре ангуляра

  • @DilecRuslanSinkevich
    @DilecRuslanSinkevich 11 месяцев назад

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

  • @killers512
    @killers512 4 года назад +1

    Предложение поменять цветовую схему в Vim'е. Синее на черном (комментарии) не очень разборчивы. И вообще странное использование вима, когда не используются его возможности (удалять по одной букве и т.д.)

  • @IGBasov
    @IGBasov 4 года назад +1

    НЭО-СОЕР ;) Спасибо за видео об архитектуре! Расскажите, пожалуйста, чем рисуете (на что пишите, какой фильтр, ...). Очень интересный эффект

    • @IGBasov
      @IGBasov 4 года назад +1

      Нашел ответ на свой вопрос: это просто маркерная доска, веб камера, фильтрация и инвертирование цветов.

    • @RedkeiGost
      @RedkeiGost 2 года назад

      Судя по форме очков, все-таки Морфиус. Душки чтоб никто не догадался

  • @kurasaored2775
    @kurasaored2775 3 года назад

    Интересно, хочу продолжение :)

  • @SanekIrk
    @SanekIrk 4 года назад +1

    Жду продолжения )

  • @ilnurryazhapov
    @ilnurryazhapov 4 года назад +7

    ангуляр топ

  • @MrKadich
    @MrKadich 4 года назад +2

    Интересно!

  • @diff7829
    @diff7829 4 года назад +1

    Может оффтоп, подскажи, чем рисуешь?

    • @zapiton
      @zapiton 4 года назад

      Маркером на доске, это все снято на видео, уменьшена не прозрачность и добавлен какой-то фильтр скорее всего

  • @dmitrypichugin7449
    @dmitrypichugin7449 4 года назад

    Почему не VS Code?

  • @didishka-p7s
    @didishka-p7s 4 года назад +1

    Привет Soer, ждём продолжение по архитектуре Angular))

  • @d-sevostyanov
    @d-sevostyanov 4 года назад

    В теоретической части про MVC, можно сказать, что используется его "продолжение" MVP (Presenter), а не традиционный MVC?
    Старый-добрый MVC подразумевает использование в более простых системах, где Model напрямую обновляет View, а Controller лишь осуществляет реакцию на действия пользователя (т.е фактически это скорее двумодульная архитектура, где кроме модели выделен модуль обработки действий пользователя). И в этой системе пользователь и правда напрямую обращается к контроллеру, но контроллер может быть вообще не связан с View (как клавиатура и экран монитора).
    Model View Presenter же как раз подразумевает прослойку Presenter между Model и View. Он не только выполняет обработку действий пользователя, вызывая реакции в модели, но и определяет, как из модели данные будут переданы в View. Т.е Presenter является контроллером в обе стороны и является чистым посредником GRASP. Логически смысл Presenter-а получается в адаптации тяжеловесной модели к конкретному отображению.
    Наверное, это излишний пуризм и в сообществе под MVC часто имеется в виду MVP. Но, думаю, в контексте GRASP полезно понимать, что Controller отвечает за обработку действий в одну сторону, что и отделяет его от посредника. А то в некоторых печальных приложениях из него ошибочно делают god-object.
    По поводу MVC vs MVP есть часть в отличной лекции Роберта Мартина: ruclips.net/video/o_TH-Y78tt4/видео.html

    • @S0ERDEVS
      @S0ERDEVS  4 года назад +1

      Вы привели MVC в интерпретации 80-х годов прошлого века, к сожалению идея MVC была очень сильно искажена в последующие годы, особенно в рамках веба.

    • @d-sevostyanov
      @d-sevostyanov 4 года назад

      ​@@S0ERDEVS согласен, что современный MVC (Web MVC) это что-то совсем иное. Но интересная у этого паттерна история выходит. В некоторых статьях и книгах используют старый вариант (как у Дяди Боба), в некоторых современный. Интересно было бы послушать разбор этого злосчастного MVC на примере разных фреймворков: чем современный отличается от MVP, за что же в итоге отвечает контроллер, какие на нем ограничения, где всё-таки располагается бизнес-логика и прочие разночтения. Другими словами, ряд видео об архитектуре очень полезны.

  • @Alexander-ho5xq
    @Alexander-ho5xq 4 года назад +1

    Давай продолжение!)

  • @Armen-Abraamyan
    @Armen-Abraamyan 4 года назад +1

    Идея с графическим планшетом шикарна, только цвета не хватает.

  • @thomwhite4565
    @thomwhite4565 4 года назад +3

    Да! GRASP - из вэри интерестинг!

  • @rayetzki
    @rayetzki 3 года назад

    Огонь

  • @TheUltimatumRus
    @TheUltimatumRus 4 года назад +1

    Почему комментарии темносиние на черном фоне :)

  • @clickabelno
    @clickabelno 4 года назад +5

    Ставлю лайк за то, что похож на Базилио!!)

  • @Armen-Abraamyan
    @Armen-Abraamyan 4 года назад +1

    Морфеус))) лайк

  • @malyna
    @malyna 4 года назад

    + за архитектуру ангуляра

  • @egordoynikov8597
    @egordoynikov8597 4 года назад

    Продолжение!

  • @trebiax7960
    @trebiax7960 4 года назад +3

    Не совсем понятно разделение UserModel и User. Все методы по переименованию и т.п можно было прямо в User и вставлять. К тому же этот постфикс "Model" слишком мне кажется, ибо класс и так подразуемвает под собой модель.
    Второй момент, как я понял, вы хотите вынести UserModel в сервис и инжектить его. Но для чего? В этом мог бы быть смысл, если бы что-то тоже инжектилось в модели. Но как мне кажется, инжектить в модели в корне неправильно. Клиентские "доменные" модели не должны инжектиться с помощью DI. Их должен создавать информационный эксперт, да даже в компоненте её создать будет вполне нормально

    • @DjLeonSKennedy
      @DjLeonSKennedy 4 года назад

      это сделано что бы показать идею саму grasp, понятно так не пишет не кто, тем более современные приложения

  • @mukhammadrustambayev2051
    @mukhammadrustambayev2051 4 года назад +2

    да

  • @MichaelCorse-r8i
    @MichaelCorse-r8i Год назад

    IT-шники -душнилы, все про архитектуру в комментах пишут, и даже никто не обратил внимание на крутые очки)

  • @ВасяПупкин-з4с
    @ВасяПупкин-з4с 4 года назад

    Непонятна целевая аудитория канала. Для опытных программистов ничего нового, а для новичка сильно сложная информация. По моему это раскрутка для контор которые проводят курсы.

  • @zariumsheridan3488
    @zariumsheridan3488 4 года назад +1

    ты сразу на английский переводи. а то какие то зацепления, связности... ничего не понятно. нормальные программеры эти термины только на ангельском знают.

  • @alex_chugaev
    @alex_chugaev 4 года назад +4

    Увы, понятнее не стало, ты остановился на полпути. И раз уж ты остановился на идее рефакторинга модели в сервис, то по сути ты пересказываешь официальную документацию Ангуляр, где все это есть. Неужели есть люди, которые донатят за пересказ оф доки?

    • @S0ERDEVS
      @S0ERDEVS  4 года назад +1

      Где в документации написано про GRASP? Я не видел, можешь ссылкой поделиться?

    • @AndroidsReview
      @AndroidsReview 4 года назад

      @max kolganoff там скорее всего хромакей и черно белый инвертированный эффект

    • @S0ERDEVS
      @S0ERDEVS  4 года назад +3

      @max kolganoff это просто маркерная доска, веб камера, фильтрация и инвертирование цветов.

  • @ИванИванов-т6м3ш
    @ИванИванов-т6м3ш 4 года назад +1

    Я первый

  • @alex_chugaev
    @alex_chugaev 4 года назад +8

    А использовать нормальный редактор и dev сервер ангуляра было сложно? Зачем эти понты с программированием в терминале?

    • @S0ERDEVS
      @S0ERDEVS  4 года назад +4

      Зачем вопросы не относящиеся к теме обсуждения? Тебе есть разница в терминале или редакторе? Видимо, ты слишком много внимания уделяешь "шашечкам", по крайней мере тему видео ты явно не понял, но почему-то разобраться не хочешь.

    • @ilnurryazhapov
      @ilnurryazhapov 4 года назад

      @@S0ERDEVS не слушай его контент топ

  • @vitaliik8315
    @vitaliik8315 4 года назад +1

    Фуфу 4 символьный отступ вместо 2х... :D

  • @andreybazhenov9741
    @andreybazhenov9741 4 года назад

    Соер. в очках не то.

    • @S0ERDEVS
      @S0ERDEVS  4 года назад +1

      Зато глаза не болят от света.

    • @zariumsheridan3488
      @zariumsheridan3488 4 года назад +1

      Подрался наверное с каким нибудь Шарпистом который сказал что Жаба отстой...

  • @stanimir5228
    @stanimir5228 Год назад

    В модели не должно быть такого. Это же модель которая должна отражать реальные бизнес процессы. А вот юзкейз по созданию модели, с названием create, уже может быть.