Федор Щудло "Эволюция Enterprise-архитектур. От MVC до Clean Architecture"

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ต.ค. 2024
  • Слайды: bit.ly/2ZBa9X1
    Расскажу историю развития архитектур enterprise-приложений, начиная от MVC 70-х годов и до Clean Architecture.
    Рассматривая подходы последовательно, гораздо легче понять логику развития, что упрощает понимание каждой отдельно взятой архитектуры.
    Также обговорим различия между архитектурами "Ports and Adapters", "Onion Architecture" и "Clean Architecture", которые многие считают одним и тем же.

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

  • @bormokov
    @bormokov 6 หลายเดือนก่อน +1

    спасибо Федор, на бытовом языке донес идею прос и консов! Респект!

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

    Спасибо, интересно было послушать.

  • @АртемРащепкин-ф4н
    @АртемРащепкин-ф4н 3 ปีที่แล้ว +3

    Федор, приветствую! Неожиданно, полезно и приятно было послушать! Спасибо за доклад!

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

    Паттерны CQRS и specification не противоречат, а наоборот прекрасно друг друга дополняют в vertical slise arch. А понимание докладчиком cqrs как разделение на read и write очень поверхностное

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

    Спасибо, было очень интересно.

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

    Позновательно, спасибо!

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

    Хороший доклад, спасибо!

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

    Слишком базово. Больше похоже на итро книги, а не выводов с нее. Тем не менее спасибо за историческую последовательность архитектур, которую сложить в одну картину не так тривиально :)

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

    Спасибо за доклад. Хорошие вопросы также были заданы.

  • @NN-ii2mb
    @NN-ii2mb 2 ปีที่แล้ว

    Вы перепутали высокую связность с высокой зацепленностью)

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

    И нет, как раз Мартин не понятно рассказывает какие файлы по каким папочкам раскладывать :)

  • @ДенисБосый-ю7р
    @ДенисБосый-ю7р ปีที่แล้ว

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

    • @ДенисБосый-ю7р
      @ДенисБосый-ю7р ปีที่แล้ว

      Адам Смит(специализация) и первый принцип SOLID этому доказательство

  • @dmytroshchotkin2939
    @dmytroshchotkin2939 3 ปีที่แล้ว

    Кстати "эксперимент" весьма занятный.

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

    Ну и самый престарелый паттерн MVC показан очень упрощенно, я бы даже сказал ошибочно упрощенным

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

    Если у заказчика заказать, он перестанет им быть

  • @ИванНикитин-ч7б
    @ИванНикитин-ч7б 2 ปีที่แล้ว

    48:48 Если в ентити ни когда не ложить логику, то это уже будет анемичная модель. А анемичная модель - это злостный антипаттерн. Касательно вопроса ложить или не ложить с данными логику, сам дядюшка Боб в другой книжке не про архитектуру "Чистый код" подробнейшим образом разбирает эту тему. Глава 6 "Объекты и структуры данных", Заключение: "Если в некоторой системе нас прежде всего интересует гибкость в добавлении новых типов данных, то в этой части системы предпочтение отдается объектной реализации. В других случаях нам нужна гибкость расширения поведения, и тогда в этой части используются типы данных и процедуры. Хороший программист относится к этой проблеме без предубеждения и выбирает то решение, которое лучше всего подходит для конкретной ситуации."
    С другой стороны, если код пишет в объект (ентити) и ему для этого нужно проанализировать часть данных этого объекта (то есть по сути быть осведомлённым о смыслах внутренней реализации), то значит этот код должен стать поведением данного объекта, т.е. - превратиться в метод этой ентити. Если же для записи в объект требуется проанализировать другой объект, то такой код должен быть внешней им функцией / чужим методом.
    Код самоизменения объекта должен принадлежать объекту, код взаимодействия объектов должен быть внешним к этим объектам.

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

    Слишком громко

  • @имяфамилия-э7ы2е
    @имяфамилия-э7ы2е 2 ปีที่แล้ว

    Из видео уяснил, что микрософт понимает mvc неправильно 17:00 , роберт мартин говорит, что принцип single responsibility principle понимается неправильно 20:40. Вот такая эволюция архитектур.

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

    Не о чем лекция по правде.