Максим Аршинов - Быстрорастворимое проектирование

Поделиться
HTML-код
  • Опубликовано: 24 авг 2024
  • Ближайшая конференция - DotNext 2024, 10 - 11 сентября, Москва + online
    Подробности и билеты: jrg.su/x2GKnA
    - -
    Люди учатся архитектуре по старым книжкам, которые писались для Java. Книжки хорошие, но дают решение задач того времени инструментами того времени. Время поменялось, C# уже больше похож на лайтовую Scala, чем Java, а новых хороших книжек мало.
    В этом докладе Максим расскажет о критериях хорошего кода и плохого кода, как и чем мерить. Сделает обзор типовых задач и подходов, разберет плюсы и минусы. В конце даст рекомендации и best practices по проектированию web-приложений.

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

  • @Attosius
    @Attosius 3 месяца назад

    Очень интересный доклад, с интересом посмотрел и прочитал на хабре)

  • @dependencyinjection2966
    @dependencyinjection2966 5 лет назад +10

    Шикарный доклад. Пробую данный подход в скором времени.

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

      Согласен. Вот она - квалификация разработчиков - преподавателей. :great

    • @user-pp7tc2fm4i
      @user-pp7tc2fm4i 4 года назад

      Мл

  • @xelaksal6690
    @xelaksal6690 3 года назад +2

    Тут выжимка десятка лет опыта) Спасибо!

  • @user-kw4kp7eq9m
    @user-kw4kp7eq9m Год назад

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

  • @denis-suleimanov
    @denis-suleimanov 3 года назад +4

    Здравствуйте. К сожалению я для себя так и не понял два вопроса:
    1) Если у наших фич есть какой-то общий кусок кода (например фича: создание сущности и её "детей". И это же создание сущности существует как отдельная фича). Нарушаем DRY? Или делаем условный EntityService куда выносим общий код... и вот уже и хвосты от фич появляются. 1 фича = 1 папка - уже не катит. Или допускается вызывать одну команду из другой? Но опять же фича-папка тут уже не сработает. Разве нет?
    2) Косвенно продолжая предыдущий вопрос: если для фичи нужно вытягивать из базы сет данных - инжеким дб-контекст в каждый хендлер? Пишем таки репозитории? Или дёргаем query из command'a?
    Дисклеймер: я понимаю, что "всё зависит от контекста, от задачи. от сроков..", но хотелось бы получить условные best practice в вакууме, чтобы уже их адаптировать к реальности.

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

    функциональный пайп с общим интерфейсом каждого обработчика :)
    идея красивая и фача папка - ваще зачет )
    реализация пугает своей многословностью

    • @polarbar780
      @polarbar780 4 месяца назад

      Она пугает ровно до того момента, когда вы приходите на проект с 10 летней историей и слоистой архитектурой и любая новая фича может непредсказуемым образом стрельнуть в ногу в каком-то другом участке системы. Бизнес логика размазана слоями по ряду сервисов, контроллеров, сущностей, репозиториев... И смотря на этот цирк с корнями ты точно понимаешь, что так нельзя. И вот в рамках всего этого бардака становится понятно, что то, что предлагает докладчик - must have для энтерпрайз решений.

  • @user-xq8mx4nw2o
    @user-xq8mx4nw2o 3 года назад

    Спасибо, Максим. Доклад крутой. Может тоже самое можно попробовать с Цепочкой ответственности?

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

    Вышел доклад с критикой подхода (я несогласен с критикой), за базовую техническую основу взят доклад Максима. ruclips.net/video/isrl_zJa1GY/видео.html&ab_channel=DotNetRu

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

    "справа хорошо - слева плохо", Странно такое слышать от опытного программиста, не говоря уже о том что код мы пишем не для менеджмента, им не нужен код им нужны фичи, а нам программистам нужен код им с ним дальше работать в отличие от менеджера, и группировать по фичам не всегда хорошо/можно ведь для менеджера просто их реструктуризировать, а с кодом я бы посмотрел как это получиться. Есть подозрение что докладчик сам редко с кодом работает и всё больше теорией занимается, это как некоторые евангелисты микросервисной архитектуры считают её единственно правильным решением, а какие у ней минусы забывают рассказать.

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

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

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

    Вау! Они изобрели Express.js!
    Реально в докладе нету никакой аргументации против нормальной слоеной архитектуры, просто предлагают использовать подход, характерный для Node.js фреймворков, НО!!! Там это применяется из-за ограничений самого js, а не от хорошей жизни.
    Я конечно за альтернативные мнения, но когда их аргументируют. В каких ситуациях подход лучше? Какие ограничения других походов помогает обойти? Как ограничения приносит а проект?

  • @gijduvon6379
    @gijduvon6379 5 лет назад +14

    А репа с примерами не появилась?

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

      по CQRS + .NET Core итак уже есть куча примеров, вот толковый (менее "быстрорастворимый" :) ) github.com/gothinkster/aspnetcore-realworld-example-app

  • @Darellat
    @Darellat 5 лет назад +6

    Расскажите уже функциональщикам про мидлвары. Валидация, логирование, авторизация, обработка ошибок выносится туда, а сервисы и репы спокойно живут себе в чистом виде.
    Анемик домен модел не просто так изобрели, почему он его нарушил так и не объснено.

  • @dependencyinjection2966
    @dependencyinjection2966 5 лет назад +1

    На 5:40 потенциальный Null Reference.