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

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 35

  • @Lapteuh
    @Lapteuh Рік тому +5

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

  • @rafaelbogaveev8081
    @rafaelbogaveev8081 Рік тому +3

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

  • @informatik01
    @informatik01 2 місяці тому

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

  • @omnia_ex_nihilo
    @omnia_ex_nihilo Рік тому +4

    Огонь!

  • @aleksandrkokin6065
    @aleksandrkokin6065 Рік тому +1

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

  • @conacry
    @conacry Рік тому +2

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

    • @stringconcat
      @stringconcat  Рік тому +3

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

    • @conacry
      @conacry Рік тому

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

  • @КонстантинКолибаба
    @КонстантинКолибаба 10 місяців тому

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

    • @stringconcat
      @stringconcat  9 місяців тому

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

  • @ИгорьЗыктин
    @ИгорьЗыктин Рік тому

    Clean architecture - one love. Правда на работе не особо могу использовать, там целый зверинец подходов.

  • @АлександрБлажков

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

  • @sergey8366
    @sergey8366 Рік тому +2

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

    • @stringconcat
      @stringconcat  Рік тому

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

    • @ChannelCheesecake
      @ChannelCheesecake 4 місяці тому

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

  • @ЕвгенийЛозин-з7и

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

    • @stringconcat
      @stringconcat  Рік тому

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

    • @ЕвгенийЛозин-з7и
      @ЕвгенийЛозин-з7и Рік тому

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

  • @andrexxelles
    @andrexxelles Рік тому

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

    • @inquisitor4894
      @inquisitor4894 Рік тому

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

    • @johnins1646
      @johnins1646 22 дні тому

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

  • @Vichukano
    @Vichukano Рік тому +1

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

    • @stringconcat
      @stringconcat  Рік тому

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

  • @АлексейКиреев-н7н

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

    • @StormB87
      @StormB87 Рік тому

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

    • @АлексейКиреев-н7н
      @АлексейКиреев-н7н Рік тому

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

    • @ChannelCheesecake
      @ChannelCheesecake 4 місяці тому

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

  • @Денис-ж3ф5р
    @Денис-ж3ф5р Рік тому

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

  • @ЖарасБийсенов
    @ЖарасБийсенов Рік тому

    Привет