Видео про абстракцию и её проблемы

Обсуждаем, как правильно строить приложения
Ответить
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Видео про абстракцию и её проблемы

Сообщение samdark »

В конце февраля я рассказывал в Воронежском сообществе «Глубокий рефакторинг» об абстракции и её проблемах.

Теперь можно посмотреть видео: https://www.youtube.com/watch?v=bPp3lAkuMEY
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Видео про абстракцию и её проблемы

Сообщение anton_z »

Так абстракцию наругали... а мы все ее используем каждый день. Прям однозначно апеллируете - простота лучше. А что такое простота? Абстракции для простоты и создают.
В основе ООП лежит абстракция. Любой класс - абстракция. Любой класс имеет свой контракт (методы), а значит он что-то инкапсулирует, от что-то абстрагирует.
Я нигде не видел много слоев - максимум 2-3: модуль смотрит наружу интерфейсом - в приложении есть реализация на основе какой-нибудь библиотеки.
Единственная сложность - правильно выделить интерфейс, которым смотрит наружу модуль. Но это и есть центральная задача ООП - определить, какие классы нужно создать и как между ними распределить поведение и данные.

По мне так нужно было сказать: не надо умничать и писать блоги на DDD и все оборачивать в интерфейсы. Отделяете модуль в отдельный репозиторий - покройте интерфейсами.
Вы вот говорите - пишите проще, а как оно проще то и чтоб не говнкод?
Последний раз редактировалось anton_z 2017.05.05, 15:27, всего редактировалось 4 раза.
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Видео про абстракцию и её проблемы

Сообщение anton_z »

А Буч не староват? Есть Вернон, на 20 лет посвежее будет.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Видео про абстракцию и её проблемы

Сообщение samdark »

Простота лучше сложности, а не лучше абстракции. Возможно, где-то я оговорился. Имелось ввиду лишь что абстракция хороша если после её введения становится проще, а не сложнее.
А Буч не староват? Есть Вернон, на 20 лет посвежее будет.
Вернон посвежее, конечно, но если говорить об абстракциях в целом, а не о DDD как об одном из подходов в частности, то лучше постарше книги. Там всё более фундаментально: coupling и cohesion вместо SOLID и всё такое.
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Видео про абстракцию и её проблемы

Сообщение anton_z »

samdark писал(а): 2017.05.05, 17:36 Простота лучше сложности
Капитанское утверждение, нет?)
samdark писал(а): 2017.05.05, 17:36 Имелось ввиду лишь что абстракция хороша если после её введения становится проще, а не сложнее
Ее вроде для этого и придумали. Проблемы начинаются при ее использовании не по назначению. Эта проблема общая для всего.
Например, часто можно услышать - у меня проблемы с проектом из-за фрейморка N. Чаще всего проблема не в фреймворке, а то что он не под это заточен или им неправильно пользовались. Так же и с абстракцией.

На мой взгляд эту проблему можно осветить в статьях и видео про выбор инструментов, определение класса проекта - "маленький, средний, большой". Какой фреймворк и какие паттерны для какого класса проектов лучше подходят. Когда нужно начинать выделять интерфейсы.
Тогда и абстракция превратится в незаменимого помощника.
samdark писал(а): 2017.05.05, 17:36 Возможно, где-то я оговорился.
У вас даже видео называется "Абстракция vs простота".
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Видео про абстракцию и её проблемы

Сообщение samdark »

Капитанское утверждение, нет?)
И да и нет. Вроде должны все это понимать, но посмотрите на тучу проектов с паттернами и слоями ради паттернов и слоёв...
определение класса проекта - "маленький, средний, большой"
Как показала практика, отношения к необходимости абстрагировать это имеет не слишком много. Бывают большие проекты с простейшими бизнес-процессами или вообще без них.
У вас даже видео называется "Абстракция vs простота".
Это старое название. Я его скорректировал в слайдах, но в названии видео организаторы выложили как есть...
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Видео про абстракцию и её проблемы

Сообщение anton_z »

samdark писал(а): 2017.05.10, 13:35 Как показала практика, отношения к необходимости абстрагировать это имеет не слишком много. Бывают большие проекты с простейшими бизнес-процессами или вообще без них.
А как же тогда определить, абстрагировать или нет? только прототипированием?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Видео про абстракцию и её проблемы

Сообщение samdark »

Обычно видно, если что-то сложное и не влезает в сознание целиком. Если у нас такой случай — абстрагируем так, чтобы влезло. Если всё просто как две копейки, но явно планируется гибкость — абстрагируем гибкие места. Если никакой гибкости не планируется и всё просто как две копейки — не стоит вводить новые проблемы там, где их не было.
AlexeyRay
Сообщения: 2
Зарегистрирован: 2017.08.12, 19:42

Re: Видео про абстракцию и её проблемы

Сообщение AlexeyRay »

Интересное видео, если внимательно слушать, спасибо.

samdark, вы в видео сказали о том что два даже хороших профессионала сделают разные абстракции. Правильно ли я понял, что при этом если эти абстракции решают задачу в рамках необходимого, то значит они обе хороши?

Насколько быстро можно оценить качество чужой абстракции? В видео вы говорите, что нужно много времени поработать с ней, но в тоже время я часто слышал споры после нескольких взглядов на архитектуру проекта о ее качестве.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Видео про абстракцию и её проблемы

Сообщение samdark »

Да. Если задача решена (а задача абстракции всегда борьба со сложностью) и домен при этом не искажён, то абстракция хороша.

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

Оценка после взгляда — не верю. Сразу можно понять только про "не как бы сделал я", а не про то, плохо там или хорошо.
Ответить