Clean Architecture. Простое объяснение за 10 минут

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ธ.ค. 2024

ความคิดเห็น • 37

  • @Lapteuh
    @Lapteuh ปีที่แล้ว +5

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

    • @stringconcat
      @stringconcat  ปีที่แล้ว +1

      Уже монтирую ;)

  • @rafaelbogaveev8081
    @rafaelbogaveev8081 ปีที่แล้ว +3

    Классное видео!) респект, Сергей!)

    • @stringconcat
      @stringconcat  ปีที่แล้ว

      Спасибо, Рафаэль!

  • @MaximShaybakov
    @MaximShaybakov 11 วันที่ผ่านมา

    Начинает с цитаты Р. Мартина из "чистого кода". Читается кстати легче, чем приходит понимание.

  • @devopsislove
    @devopsislove 26 วันที่ผ่านมา

    Спасибо, качественное видео! Но название, скорее всего, должно содержать "Hexagonal architecture", а то про clean совсем немного и будем досматривать в след. видео.

  • @КонстантинКолибаба
    @КонстантинКолибаба 11 หลายเดือนก่อน

    Плагин - это отдельная сборка ? Тогда все зависимости собираем в корневом приложении , например , используя DI контейнер ? И если требуется подключить другой плагин, то решаем это изменением ссылки из корневого проекта ?

    • @stringconcat
      @stringconcat  11 หลายเดือนก่อน

      В терминах JVM, плагин -- это как минимум maven\gradle submodule. В других экосистемах по-другому. Но не обязательно что плагин живет прямо совсем отдельно, скажем в отдельном репозитории.
      И да, если нужно поменять реализацию, топ меняем ее в корневом приложении

  • @informatik01
    @informatik01 3 หลายเดือนก่อน

    Очень приятное и понятное освещение темы.
    Спасибо!

  • @conacry
    @conacry ปีที่แล้ว +2

    Спасибо за видео! Да, формат с live drawing крут! Единственное, хотелось бы стрелки либо рисовать толще или другим цветом, чтобы были заметнее. Еще интересны два вопроса:
    1. как вы продаете Clean Arch разработчикам? Особенно, которые привыкли "вращать деревья", а не вот это "ваше все"
    2. Как вы продаете Clean Arch бизнесу? Разработка в парадигме занимает много времени на старте, но зато быстрее вносить изменения. Но вот именно долгий старт приходится продавать

    • @stringconcat
      @stringconcat  ปีที่แล้ว +3

      Спасибо большое за обратную связь. Правда, очень приятно читать. Я наверное запилю отдельное видео, но не могу обещать что будет скоро. Поэтому отвечу и здесь.
      Для начала про бизнес. Я за подход, когда "разработчики проффесионалы и сами решат какие применять средства". То есть бизнесу не особо и надо знать пишем ли мы тесты, какую архитектуру или фреймворк использует. Понятно что бизнес лезет со своими рекомендациями когда разрабам тесты писать и какую архитектуру использовать. Но на мой взгляд надо дать понять, что существуют разделения обязанностей. Ну и если доверия с бизнесом уже есть, то он даже и спрашивать не будет.
      С разрабами сложнее. Особенно с теми, кто "деревья крутить" привык. Если вы тимлид и проект новый, то проще всего "ночью" напилить скелет проекта с clear architecture, навставлять туда линтеров, чтобы не сломали и сказать "ну все, эта архитектура дана нам свыше, обсуждение закончено"
      Если проект уже идет -- тут придется искать поддержку у разрабов. ЛУчший путь на мой взгляд обучение (пошарить Поваренную книгу дядюшки боба) и поиск сочувствующих, то есть у кого есть такая же боль как и у вас. И если большинство разрабов посмотрели курс и согласились что вроде как по старому жить уже никакой мочи нет, то можно затевать рефакторинг.
      Если сопротивляются и держаться за свою горячо любимую слоеную архитектуру можно сказать "хорошо, пусть слоенка, но давайте раз и навсегда выясним куда будут направлены зависимости (внутрь бизнеса), давайте разделим слой инфрастуктуры на DataAccess layer и на интеграцию вон с той и другой системой". И вот незаметно проект может начинать hexagonal, хотя вы ниразу не произнесли это слово :)

    • @conacry
      @conacry ปีที่แล้ว

      Огромное спасибо за развернутый ответ!

  • @omnia_ex_nihilo
    @omnia_ex_nihilo ปีที่แล้ว +4

    Огонь!

  • @aleksandrkokin6065
    @aleksandrkokin6065 ปีที่แล้ว +1

    Спасибо, материал огонь!

  • @Vichukano
    @Vichukano ปีที่แล้ว +1

    Почему-то бот не работает.

    • @stringconcat
      @stringconcat  ปีที่แล้ว

      Спасибо что сказали. Мы робота починили, теперь он не отлынивает ;)

  • @andrexxelles
    @andrexxelles ปีที่แล้ว

    Чем слоеная архитектура отличается от чистой ?

    • @inquisitor4894
      @inquisitor4894 ปีที่แล้ว

      Слоеная - размыты границы и не знаешь, что куда пихать.
      Чистая - все правила четко прописаны.
      А вообще это подробно описано в 3х видеороликах данного канала

    • @johnins1646
      @johnins1646 หลายเดือนก่อน

      Направлением импортов, в чистой он противоположный.

  • @sergey8366
    @sergey8366 ปีที่แล้ว +2

    к лешему IoC - даёшь dependency rejection

    • @stringconcat
      @stringconcat  ปีที่แล้ว

      Свободу Монадам, долой засилие процедурщины!
      Partial Function каждому разработчику к 2035 году!

    • @ChannelCheesecake
      @ChannelCheesecake 5 หลายเดือนก่อน

      @@stringconcatмонады ортогональны IoC

  • @АлександрБлажков
    @АлександрБлажков ปีที่แล้ว

    Быстро и доходчиво!

  • @Денис-ж3ф5р
    @Денис-ж3ф5р ปีที่แล้ว

    00:15 clean architecture и что еще?

  • @EyeOfInfinity-t5g
    @EyeOfInfinity-t5g ปีที่แล้ว

    К сожалению в высоконагруженном бекенде все эти красивые архитектуры не очень работают. Точнее работает все, что не вызывает дополнительный оверхед на цпу и память. По факту остается только принцип инверсии зависимостей, а в остальном чем "ближе" нагруженный хендлер к данным, тем лучше.

    • @StormB87
      @StormB87 ปีที่แล้ว

      Если у приложения требования "произовительность -- любой ценой". То есть, все остальные не функциональные характеристики сознательно приносятся в жертву производительности, то конечно clean architecture не подходит.
      Но для большинства приложений, которые мы с вами пишем производительность -- не краеугольный камень, и другие CFRs должны браться в расчет. И то, у типичного приложения можно выделить буквально пару workflow критичных к производительности, которые покрываются СQRS, а для остальных 90 можно использовать и CA

    • @EyeOfInfinity-t5g
      @EyeOfInfinity-t5g ปีที่แล้ว

      @@StormB87 Все просто. Когда нагрузка на сервис, скажем, 200к запросов в секунду, то выдержать ее можно либо раздувая количество подов в кубере, либо выжимая все соки из кода. А поскольку оборудование стоит денег, то всегда выбирается второе. И да, для всех приложений, которые я пишу производительность как раз и есть краиугольный камень. Ну и еще покрытие тестами, т.к. простой в минуту по потерям будет поболее годовой зарплаты всего отдела.

    • @ChannelCheesecake
      @ChannelCheesecake 5 หลายเดือนก่อน

      @@EyeOfInfinity-t5gа смысл считать простой в зарплатах отдела, если каждый работяга получает мизер от реальной стоимости своей работы

  • @ЕвгенийЛозин-з7и
    @ЕвгенийЛозин-з7и ปีที่แล้ว +1

    Жду рассказ про DDD :)

    • @stringconcat
      @stringconcat  ปีที่แล้ว

      ох, самому хочется сделать. Но тут знаете какая проблема: DDD начинается с бизнес-контекстов, с того чтобы работать с экспертами предметной области, и выражать это знание в коде. А тут посмотришь в код, а там процедурщина на 500 строк. И я прямо не знаю как сделать мостик от одного к другому :)
      Вы бы кстати, с чего начали?

    • @ЕвгенийЛозин-з7и
      @ЕвгенийЛозин-з7и ปีที่แล้ว

      @@stringconcatмаловато у меня опыта, но да, нужен список терминов и бизнесс понятий. Потом выявление баундед-контекстов и агрегатов/сущностей/value Object. Но не имея эксперта в домене, это все усложняется.

  • @ЖарасБийсенов
    @ЖарасБийсенов ปีที่แล้ว

    Привет