Введение в Чистую Архитектуру. Артур Бадретдинов

Поділитися
Вставка
  • Опубліковано 5 жов 2024
  • Рефакторинг God Activity на слои:
    • Чистая архитектура. Ма...
    Ссылка на репозиторий: github.com/Gak... -
    На файл презентации: goo.gl/B558Dn
    Лайвкодинг приложения - переход от "God Activity" к Чистой Архитектуре на примере небольшого приложения: • Чистая архитектура. Ма...

КОМЕНТАРІ • 38

  • @logic7878
    @logic7878 3 роки тому +19

    Пару раз проверял, не включена ли у меня скорость х1.25)
    Докладчик отлично подготовился 👍

    • @ДенисБосый-ю7р
      @ДенисБосый-ю7р Рік тому

      Скорость речи не зависит от подготовки докладчика. Скорее она зависит от того, насколько быстро мыслит докладчик.

  • @p.polunin
    @p.polunin 2 роки тому +1

    Большое спасибо! Поклон! Все предметно и по теме! Зашло короче!

    • @arturbadretdinov
      @arturbadretdinov  2 роки тому

      Отлично, я рад! :)

    • @arturbadretdinov
      @arturbadretdinov  2 роки тому

      Если что, тут можно найти ещё пачку поих докладов, там есть стоящие :) github.com/Gaket/presentations

    • @p.polunin
      @p.polunin 2 роки тому

      @@arturbadretdinov Большое спасибо!

    • @p.polunin
      @p.polunin 2 роки тому

      @@arturbadretdinov как с тобой можно связаться?

  • @ClosiusBeg
    @ClosiusBeg 2 роки тому

    симпатичный мальчик)

  • @ccr_enjoyer
    @ccr_enjoyer 6 років тому +3

    Хорошее объяснение, спасибо

  • @nikenuke
    @nikenuke 4 роки тому +2

    Круто, спасибо!

  • @samuraibudoev5857
    @samuraibudoev5857 2 роки тому +1

    Честно говоря, название доклада создаёт ощущение, что будет именно введение в архитектуру. В моём представлении чистая Архитектура это Роберт Мартин. А тут сразу в глубину специфики Андройда с тонной специфичного сленга. Ожидал чего-то более общего..

    • @samuraibudoev5857
      @samuraibudoev5857 2 роки тому +1

      Но всё равно лайк, хороший доклад

    • @arturbadretdinov
      @arturbadretdinov  2 роки тому +1

      @@samuraibudoev5857 Спасибо! Да, доклад читался на конференции по Андроиду, и я даже не подумал это как-то в название вынести... Но в целом, подход в Андроиде взят от того самого подхода Робина Мартина, тут я не обманул 😅

  • @Oshertech
    @Oshertech 3 роки тому +1

    Спасибо большое

  • @ДмитрийПоздняков-щ6ь

    я понимаю что в 40 мин все не уместишь, но вроде название - введение в чистую архитектуру, а следовало бы назвать "как мы поняли чистую архитектуру в нашем приложении". Т.е. мне, как веб разработчику на php не понятно ничего. Есть слои, зачем они? Для чего, какие проблемы решают? В принципе понятие слоя не дается. Как по мне - основная проблема в том, что докладчик оперирует терминами, но не дает их определение, из за этого путаница

    • @alicenNorwood
      @alicenNorwood 3 роки тому

      +++, php-шнику не понятно ничего...

    • @ДмитрийПоздняков-щ6ь
      @ДмитрийПоздняков-щ6ь 3 роки тому +2

      @@alicenNorwood php это тот инструмент, которым я решаю текущие задачи в данный момент, до этого был опыт разработки и на c# и на c++. Если вы опытный разработчик, то понимаете, что язык - всего лишь один из инструментов. Но по вашему комментарию видно что, неуместный сарказм - все, на что вы способны

    • @alicenNorwood
      @alicenNorwood 3 роки тому

      @@ДмитрийПоздняков-щ6ь это не сарказм

    • @НикитаПрокопенко-г5о
      @НикитаПрокопенко-г5о 3 роки тому +3

      Речь идёт о всех классических C-подобных ООП языках, PHP и Java в одной корзине. Непонятно, чем PHP выделяется в этом плане? Странный вопрос "Есть слои, зачем они?", да и по-моему во всех фреймворках/движках сейчас около-MVC архитектура, что и является одним из примеров расслоённой архитектуры (Model, View, Controller), так что термины вполне себе general, касающиеся всех.

    • @arturbadretdinov
      @arturbadretdinov  3 роки тому +3

      @@ДмитрийПоздняков-щ6ь, спасибо за фидбек. Вы правы, доклад ориентирован на андроид разработчиков, а в нашей области это уже достаточно распространённый подход. В то же время, всё начало доклада посвящено описанию решаемых проблем. Спагетти код, god activity, тестируемость... Или ваш вопрос был в контексте задач каждого слоя? Вроде, и об этом рассказывал...
      У меня есть видео, где после аналогичной теоретической вводной я разбиваю приложение на слои. Посмотрите вторую половину видео, может, она ответит на ваши вопросы: ua-cam.com/video/8ATEB0ZzelQ/v-deo.html
      Успехов!

  • @вапвапвапвапва-ж1и

    33:14 сам говорит что 100 методов в репозитории ок, а сам показывал слайд где это не ок 3:13

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

    зачем столько специфических терминов для объяснения интерфейсно уровневого взаимодействия..такое ощущение что прогеры как заключенные создают отдельную языковую культуру..чтобы непосвященный ничего не понял в их воровских делах

  • @arturbadretdinov
    @arturbadretdinov  6 років тому +3

    Часто возникает вопрос о том, нужны ли различные модели одной сущности для каждого слоя?
    Этот вопрос обсуждается в блоке QA: 35:39
    Вдобавок, цитата ответа Дядюшки Боба:
    "Other folks have worried that the net result of my advice would be lots of duplicated code, and lots of rote copying of data from one data structure to another across the layers of the system. Certainly I don’t want this either; and nothing I have suggested would inevitably lead to repetition of data structures and an inordinate of field copying", источник: 8thlight.com/blog/uncle-bob/2011/11/22/Clean-Architecture.html

    • @grandlagging0zero175
      @grandlagging0zero175 3 роки тому

      Доброго времени суток. Не могли бы вы скинуть ссылку на чат?

  • @agostev12
    @agostev12 3 роки тому +1

    Вроде как на схеме дяди Боба интерактор зависит от интерфейса презентера, а не наоборот как у вас.

    • @arturbadretdinov
      @arturbadretdinov  3 роки тому

      Спасибо за комментарий. Если вы имеете в виду оригинальную концентрическую схему из его статьи (blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html), то в ней слой контроллеров / презентеров (зелёный) зависит от слоя Use Cases (красного). В нашем случае интеракторы играют роль юзкейсов, и поэтому, именно презентер зависит от интерактора.

    • @arturbadretdinov
      @arturbadretdinov  3 роки тому +1

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

    • @agostev12
      @agostev12 3 роки тому +1

      @@arturbadretdinov По правилу зависимотей да не должен интерактор зависеть от конкретного презентера, но может зависеть от интерфейса который будет реализован уже конкретным презентером. Если посмотреть на картинку где показан Flow of control там четко указано что UseCase содержит(обычная стрелочка) UseCase Output Port некий интерфейс который будет впоследствии реализован презентером(белая стрелочка). Получается если делать с точки зрения Дяди Боба то именно интерактор должен управлять презентором, а не наоборот. Презентер вроде как вообще не должен зависеть от интерактора а работать с неким Response объектом данные которого кладутся интекртором

  • @lefteriseleftheriades7381
    @lefteriseleftheriades7381 3 роки тому

    where can i find the english version of the talk?

    • @arturbadretdinov
      @arturbadretdinov  3 роки тому +1

      Hi! Unfortunately, I have only a Russian version :(

  • @alla2662
    @alla2662 3 роки тому +8

    "как работает женский мозг"? нуу, так себе начало. а как работает мужской мозг почему нет видео?

    • @arturbadretdinov
      @arturbadretdinov  3 роки тому

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

    • @arturbadretdinov
      @arturbadretdinov  3 роки тому

      Ссылку выше прикладывали:
      ua-cam.com/video/0BxckAMaTDc/v-deo.html

  • @arturbadretdinov
    @arturbadretdinov  4 роки тому +1

    Некоторое время назад я записал видео о том, как можно приложение с God Activity разбить по слоям, с использованием MVP в качестве слоя презентации. Если вам интересна эта тема - можете взглянуть :)
    ua-cam.com/video/8ATEB0ZzelQ/v-deo.html

  • @AlexeiCheban
    @AlexeiCheban 3 роки тому +1

    Чем больше кругов тем больше жопень которую прийдеться решать

    • @arturbadretdinov
      @arturbadretdinov  3 роки тому

      Да, поэтому мы остановились на трёх :) В докладе рассказываются 4, но внутренние 2 зачастую объединяют.

  • @gladkazoya8020
    @gladkazoya8020 4 роки тому +3

    ua-cam.com/video/0BxckAMaTDc/v-deo.html
    ссылка на видео про женский мозг