Что делать с толстыми контроллерами? - Fat Controller Рефакторинг

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

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

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

    Контент пушка, я кайфанул. Особенно показ эволюции кода в диффе

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

      @@RubyToTheCore какой вариант тебе больше всего понравился?

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

    И классно было бы увидеть твое решение по рефакторингу этого приложения

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

      Да, хорошая идея.

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

    Спасибо. Полезное видео.

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

      @@Aluston1783 спасибо! Лайк, подписка

  • @Александр-д9и3з
    @Александр-д9и3з หลายเดือนก่อน +3

    Блин, а я думал щас 40 минут про теток из троллейбуса будут рассказывать и че с ними делать…

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

      скоро будет, подписывайся!

  • @lI-bh5xt
    @lI-bh5xt หลายเดือนก่อน

    Читали статью "Как dhh организует контроллеры" ? Вы так делаете? Сейчас так делают?

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

      @@lI-bh5xt а можешь дать ссылку?

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

    Это ещё ладно, у меня на работе в проекте контроллеры со всей логикой, там прямо в них инжектится uow и совершается вся работа вплоть до чтения или записи бд. Там методы вместе с приватными могут в сумме могут составлять сотни строк кода. Все борюсь с этим, топлю за то чтобы создавать слой бизнес логики, чтобы в контроллерах оставлять только try-catch, обращение к сервису и возврат результата.

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

      бороться с teamlead сложно, если он не разделяет твое видение

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

    А зачем все время пытаться отнести какую то часть кода к какой-то части MVC? У тебя есть набор каких-то классов, например services или interactors и ты четко определяешь зону их отвественности

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

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

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

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

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

      @@SergeiUdalov Так ты и не будешь допускать протекания. У контроллера своя ответственность, у интерактора своя, у презенетера своя и т.д. Не достаточно ли определить ответственности и не завязываться на MVC?

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

      @@IvanRudskikh если мы в интеракторе оперируем объектом params, то к нам протечет логика обработка и подготовки параметров. В интеракторы стоит передавать уже типизированные, валидированные по схеме параметры.

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

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

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

      До поры пока это все не будет влиять на скорость (стоимость) разработки, но много проектов просто не доживает до того периода.

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

      Мы не бизнес. Мы разработчики. А хорошему разработчику важна поддерживаемость кода (не говнокода).

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

      Так им и должно быть пофиг. Они нанимают экспертов, чтобы они грамотно писали код.

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

      @@Deletedeletedelete мы, как хорошие разработчики, должны уметь обосновать, почему мы работаем так или иначе

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

      @@Deletedeletedelete Всё хорошо в меру. Если стремиться к чистоте без всякой меры, можно превратиться в душного коллегу, который саботирует работу, отказываясь аппрувить PR, если он не соответствует его извращённым представлениям о качественном коде.