Видео про абстракцию и её проблемы
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Видео про абстракцию и её проблемы
В конце февраля я рассказывал в Воронежском сообществе «Глубокий рефакторинг» об абстракции и её проблемах.
Теперь можно посмотреть видео: https://www.youtube.com/watch?v=bPp3lAkuMEY
Теперь можно посмотреть видео: https://www.youtube.com/watch?v=bPp3lAkuMEY
Нравится Yii? Давайте сделаем его лучше!.
Re: Видео про абстракцию и её проблемы
Так абстракцию наругали... а мы все ее используем каждый день. Прям однозначно апеллируете - простота лучше. А что такое простота? Абстракции для простоты и создают.
В основе ООП лежит абстракция. Любой класс - абстракция. Любой класс имеет свой контракт (методы), а значит он что-то инкапсулирует, от что-то абстрагирует.
Я нигде не видел много слоев - максимум 2-3: модуль смотрит наружу интерфейсом - в приложении есть реализация на основе какой-нибудь библиотеки.
Единственная сложность - правильно выделить интерфейс, которым смотрит наружу модуль. Но это и есть центральная задача ООП - определить, какие классы нужно создать и как между ними распределить поведение и данные.
По мне так нужно было сказать: не надо умничать и писать блоги на DDD и все оборачивать в интерфейсы. Отделяете модуль в отдельный репозиторий - покройте интерфейсами.
Вы вот говорите - пишите проще, а как оно проще то и чтоб не говнкод?
В основе ООП лежит абстракция. Любой класс - абстракция. Любой класс имеет свой контракт (методы), а значит он что-то инкапсулирует, от что-то абстрагирует.
Я нигде не видел много слоев - максимум 2-3: модуль смотрит наружу интерфейсом - в приложении есть реализация на основе какой-нибудь библиотеки.
Единственная сложность - правильно выделить интерфейс, которым смотрит наружу модуль. Но это и есть центральная задача ООП - определить, какие классы нужно создать и как между ними распределить поведение и данные.
По мне так нужно было сказать: не надо умничать и писать блоги на DDD и все оборачивать в интерфейсы. Отделяете модуль в отдельный репозиторий - покройте интерфейсами.
Вы вот говорите - пишите проще, а как оно проще то и чтоб не говнкод?
Последний раз редактировалось anton_z 2017.05.05, 15:27, всего редактировалось 4 раза.
Re: Видео про абстракцию и её проблемы
А Буч не староват? Есть Вернон, на 20 лет посвежее будет.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Видео про абстракцию и её проблемы
Простота лучше сложности, а не лучше абстракции. Возможно, где-то я оговорился. Имелось ввиду лишь что абстракция хороша если после её введения становится проще, а не сложнее.
Вернон посвежее, конечно, но если говорить об абстракциях в целом, а не о DDD как об одном из подходов в частности, то лучше постарше книги. Там всё более фундаментально: coupling и cohesion вместо SOLID и всё такое.А Буч не староват? Есть Вернон, на 20 лет посвежее будет.
Нравится Yii? Давайте сделаем его лучше!.
Re: Видео про абстракцию и её проблемы
Капитанское утверждение, нет?)
Ее вроде для этого и придумали. Проблемы начинаются при ее использовании не по назначению. Эта проблема общая для всего.
Например, часто можно услышать - у меня проблемы с проектом из-за фрейморка N. Чаще всего проблема не в фреймворке, а то что он не под это заточен или им неправильно пользовались. Так же и с абстракцией.
На мой взгляд эту проблему можно осветить в статьях и видео про выбор инструментов, определение класса проекта - "маленький, средний, большой". Какой фреймворк и какие паттерны для какого класса проектов лучше подходят. Когда нужно начинать выделять интерфейсы.
Тогда и абстракция превратится в незаменимого помощника.
У вас даже видео называется "Абстракция vs простота".
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Видео про абстракцию и её проблемы
И да и нет. Вроде должны все это понимать, но посмотрите на тучу проектов с паттернами и слоями ради паттернов и слоёв...Капитанское утверждение, нет?)
Как показала практика, отношения к необходимости абстрагировать это имеет не слишком много. Бывают большие проекты с простейшими бизнес-процессами или вообще без них.определение класса проекта - "маленький, средний, большой"
Это старое название. Я его скорректировал в слайдах, но в названии видео организаторы выложили как есть...У вас даже видео называется "Абстракция vs простота".
Нравится Yii? Давайте сделаем его лучше!.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Видео про абстракцию и её проблемы
Обычно видно, если что-то сложное и не влезает в сознание целиком. Если у нас такой случай — абстрагируем так, чтобы влезло. Если всё просто как две копейки, но явно планируется гибкость — абстрагируем гибкие места. Если никакой гибкости не планируется и всё просто как две копейки — не стоит вводить новые проблемы там, где их не было.
Нравится Yii? Давайте сделаем его лучше!.
Re: Видео про абстракцию и её проблемы
Интересное видео, если внимательно слушать, спасибо.
samdark, вы в видео сказали о том что два даже хороших профессионала сделают разные абстракции. Правильно ли я понял, что при этом если эти абстракции решают задачу в рамках необходимого, то значит они обе хороши?
Насколько быстро можно оценить качество чужой абстракции? В видео вы говорите, что нужно много времени поработать с ней, но в тоже время я часто слышал споры после нескольких взглядов на архитектуру проекта о ее качестве.
samdark, вы в видео сказали о том что два даже хороших профессионала сделают разные абстракции. Правильно ли я понял, что при этом если эти абстракции решают задачу в рамках необходимого, то значит они обе хороши?
Насколько быстро можно оценить качество чужой абстракции? В видео вы говорите, что нужно много времени поработать с ней, но в тоже время я часто слышал споры после нескольких взглядов на архитектуру проекта о ее качестве.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Видео про абстракцию и её проблемы
Да. Если задача решена (а задача абстракции всегда борьба со сложностью) и домен при этом не искажён, то абстракция хороша.
Качество оценить быстро не получится. Придётся поработать с этой абстракцией. Ну, кроме совсем мелких штук.
Оценка после взгляда — не верю. Сразу можно понять только про "не как бы сделал я", а не про то, плохо там или хорошо.
Качество оценить быстро не получится. Придётся поработать с этой абстракцией. Ну, кроме совсем мелких штук.
Оценка после взгляда — не верю. Сразу можно понять только про "не как бы сделал я", а не про то, плохо там или хорошо.
Нравится Yii? Давайте сделаем его лучше!.