Николай Алименков - Парадигмы ООП

Поделиться
HTML-код
  • Опубликовано: 9 ноя 2024

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

  • @ligat-rome
    @ligat-rome Год назад +2

    00:00:00 Начало приветствие
    00:01:52 Дисклеймер
    00:02:29 Как мы пришли к этой теме
    00:03:10 Интерфейсы. Как и когда их использовать
    00:09:46 Наследование, особенности и минусы. Что будет если переборщить с наследованием...
    00:17:42 Инкапсуляция
    00:21:47 Обзор SOLID принципов
    00:27:07 Обзор DRY, KISS, YAGNI
    00:28:09 DAO Разделение хранилища и бизнес логики
    00:31:18 Схема DAO и Сервисы
    00:33:32 Почему не надо надеется на фреймворки
    00:35:32 Почему используя все перечисленное не достаточно чтобы просто так написать хороший код
    00:35:32 Вопросы и ответы

  • @michaelskidan9719
    @michaelskidan9719 7 лет назад +5

    Спасибо докладчику, разъяснил, зачем и когда нужен DAO.

  • @rusly76
    @rusly76 7 лет назад +11

    Насчет "наследование зло". Автор рассматривает частный случай, когда наследуешь свой класс от некоего левого (например из сторонней библиотеки), и при этом этот класс может в будущем непредсказуемо меняться (например, при обновлении библиотеки). Однако тут проблема вовсе не в наследовании, а в использовании любой вещи, которую ты не можешь контролировать по той или иной причине. Если наследовать от своих собственных классов или от классов своей команды, где любые изменения известны и контролируются, то пользы гораздо больше чем потенциального вреда.

  • @stokitko
    @stokitko 11 лет назад +4

    Николай Алименков xpinjection.com/coaches рассказал про проблемы граммотного применения ООП в Java. До этого было несколько встреч клуба анонимных программистов xpinjection.com/uadevclub (30, 31 и 32 встреча), и этот доклад можно считать сжатым в час вводом в тему.
    Очень много практических советов - я прям во время просмотра открыл проект и переписал пару классов над которыми долго колебался :)

    • @stokitko
      @stokitko 11 лет назад

      ***** всё верно, и подробнее это отхоливарилось в четырёхчасовой 31й встрече. Есть видео.
      ИМХО презентации Николая не хватает визуализации, из-за этого возникает много недопонимания.
      С интерфейсами я считаю примерно так: они не помешают в любом случае: их легко создавать и перерефакторивать. А от некоторых редких проблем могут уберечь. Особенно это касается реально энтерпрайзнутых легаси проектов.
      Про темплейт метод Николай уже ответил в этом видео на вопрос из зала. Template Method легко преобразовывается в Стратегию.

    • @stokitko
      @stokitko 11 лет назад

      ***** ага, понятно. Тогда, да, темплит метод имеет смысл

  • @romandzhadan5546
    @romandzhadan5546 3 года назад

    Алименков Top as always

  • @igordmitriev9003
    @igordmitriev9003 10 лет назад

    Скажите пожалуйста, а слайды можно где-то взять??

  • @Aurus11
    @Aurus11 7 лет назад +10

    Хорошо рассказывает про очередное правильное ООП, все это конечно хорошо, но столкнувшись с реальностью (сроки/деньги/менеджмент) все эти правильные методологии рассыпаются как карточный домик...

    • @michaelskidan9719
      @michaelskidan9719 7 лет назад +2

      Правильно делает, что капает на мозги общественности и лицам, принимающим решения.

    • @1Virkom
      @1Virkom 6 лет назад +6

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

  • @alexandrspodin3972
    @alexandrspodin3972 2 года назад +1

    на 25:55 dependency inversion principle: не заботиться о создании объектов самостоятельно, а получать откуда-то? Вы серьёзно?
    и как это соотносится с действительной формулировкой:
    Модули верхних уровней не должны импортировать сущности из модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.
    Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

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

      По сути, это принцип о том, что везде должны быть интерфейсы, то что зависимости должны откуда-то приходить это Dependency injection скорее всего

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

      більше dto і трансформеров

  • @ЮрийМахалов-л5б
    @ЮрийМахалов-л5б 9 лет назад +15

    Тупое добавление везде интерфейсов противоречит KISS.
    В дельфях property есть с 90ых годов.
    Если бы до этого не знал принципы ООП то, из этого доклада не понял бы о чём речь.

    • @michaelskidan9719
      @michaelskidan9719 7 лет назад

      Противоречит или нет, это ещё вопрос. Например, переменные в языке по умолчанию могут быть финальные, а могут и не быть, а написание "лишнего" слова в любом случае будет "нарушением принципа KISS". Тут уде речь должна идти про особенности языка.
      Насколько я понимаю, интерфейсы нужны для того, чтоб 1) использовать статическую типизацию без кастинга 2) иметь возможность присвоить значение в виде объекта нескольким переменным разных типов, не наследуемых один из другого, и при этом 3) обойтись без множественного наследования полей объектов и тел методов. Были ли в дельфях интерфейсы?

    • @drovoseg
      @drovoseg 5 лет назад +7

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

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

    Только он заговорил про KISS, YAGNI и что в 90% случаев тебе не понадобиться новый тип пользователя, как вдруг, кто бы мог подумать, начал говорить о DAO слое, который очень нужен, чтобы завтра, вдруг, срочно можно было легко сменить базу данных.

    • @drovoseg
      @drovoseg 5 лет назад +3

      Он же сказал дальше что это не главная причина.

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

    все ок. но как можно actor называть актером???

  • @yaroslavulanovych1001
    @yaroslavulanovych1001 8 лет назад +25

    Смешной чувак. Наследование это плохо, потому что если унаследоваться от класа не предназначенного для наследования, могут возникнуть проблемы. Design for inheritance or else prohibit it, не? В джаве по умолчание класы не final и всем влом писать этот final, а потом приходят чуваки, как этот, наследуются от чего попало и плачутся, что у них все сломалось и наследование зло. Я чистил картошку, порезался. Ножи зло. Шел, наступил на банан упал. Бананы зло.

    • @alexanderlitviakov4324
      @alexanderlitviakov4324 7 лет назад +3

      такое. в начале сказал, что вы можете много с чем не согласится

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

      диванний аналітик 😂

  • @петрзадунайский
    @петрзадунайский 9 лет назад +2

    Это что собрание инопланетян? Вообще ничего не понял...