«Приведет ли к хорошему дизайну буквальное следование принципу инверсии зависимостей?» -- Не приведёт. Как и буквальное следование любому принципу. IMHO, хорошим я считаю принцип, которому нужно не следовать, а прибегать к нему по необходимости, если это сулит практические и/или стратегические выгоды.
«Принцип инверсии зависимостей имеет право на жизнь, более того, он давно и активно используется в большинстве паттернов проектирования. Мы можем защититься от изменений внешнего мира, путем использования наблюдателей; мы можем «абстрагироваться» от конкретной реализации с помощью стратегий; мы можем связать одну иерархию к другой с помощью адаптеров; мы можем оградить изменения одной части системы от другой с помощью фасадов.» -- Про наблюдателей сказано очень верно. Надеюсь, через некоторое время добавлю кое-что по-существу. Уже немного осталось, основные тесты уже проходят ;-)
«Главная цель большинства паттернов проектирования и хорошего дизайна состоит в следующем: спрятать в одном месте изменяемый аспект системы, реализацию которого можно будет изменить позднее, без воздействия на другие составляющие системы.» -- У меня в блоге в черновиках лежит пост с темой "Ненавидите ли Вы паттерны так, как ненавижу их я?" :-) Любой шаблон ограничен. А паттерны часто проще "изобрести" самому (точнее, вывести их все из общих принципов), чем разобраться в тоннах "макулатуры" о принципах их построения, организации и порядке применения. Всё это напоминает 100-страничный "талмуд" сопромата, в котором рассматривается четыре дифференциальных уравнения при массе различных граничных условий :-) /понятно, что я немного утрирую/ Не проще ли диффуры внимательнее изучить? - Так и с "паттернами". Для меня их место, как и UML - иллюстративность. Хорошо, когда собеседник знает о "Стратегии", "Наблюдателе" и "Декораторе". Если не знает - объяснение займёт несколько больше времени. Да и отослать есть к чему. А вот необоснованное применение шаблонов, склонность к шаблонному же мышлению, приводит подчас, к просто гротескным проявлениям...
Особенно вот за это - "Для меня их место, как и UML - иллюстративность. Хорошо, когда собеседник знает о "Стратегии", "Наблюдателе" и "Декораторе". Если не знает - объяснение займёт несколько больше времени. Да и отослать есть к чему. А вот необоснованное применение шаблонов, склонность к шаблонному же мышлению, приводит подчас, к просто гротескным проявлениям..."
что "паттерны" это просто инструмент, который используется "неосознанно", и вся эта "теория о паттернах" хороша лишь для того, чтобы перейти на "путь осознанности" и на "общий язык".. и не более того...
Паттерны - НЕ УПРОЩАЮТ и НЕ УСКОРЯЮТ разработку.. Они лишь её систематизируют и позволяют "несколько проще" общаться.. Только и всего...
«Приведет ли к хорошему дизайну буквальное следование принципу инверсии зависимостей?»
ОтветитьУдалить-- Не приведёт. Как и буквальное следование любому принципу.
IMHO, хорошим я считаю принцип, которому нужно не следовать, а прибегать к нему по необходимости, если это сулит практические и/или стратегические выгоды.
«Принцип инверсии зависимостей имеет право на жизнь, более того, он давно и активно используется в большинстве паттернов проектирования. Мы можем защититься от изменений внешнего мира, путем использования наблюдателей; мы можем «абстрагироваться» от конкретной реализации с помощью стратегий; мы можем связать одну иерархию к другой с помощью адаптеров; мы можем оградить изменения одной части системы от другой с помощью фасадов.»
-- Про наблюдателей сказано очень верно. Надеюсь, через некоторое время добавлю кое-что по-существу. Уже немного осталось, основные тесты уже проходят ;-)
«Главная цель большинства паттернов проектирования и хорошего дизайна состоит в следующем: спрятать в одном месте изменяемый аспект системы, реализацию которого можно будет изменить позднее, без воздействия на другие составляющие системы.»
-- У меня в блоге в черновиках лежит пост с темой "Ненавидите ли Вы паттерны так, как ненавижу их я?" :-)
Любой шаблон ограничен. А паттерны часто проще "изобрести" самому (точнее, вывести их все из общих принципов), чем разобраться в тоннах "макулатуры" о принципах их построения, организации и порядке применения.
Всё это напоминает 100-страничный "талмуд" сопромата, в котором рассматривается четыре дифференциальных уравнения при массе различных граничных условий :-) /понятно, что я немного утрирую/ Не проще ли диффуры внимательнее изучить? - Так и с "паттернами". Для меня их место, как и UML - иллюстративность. Хорошо, когда собеседник знает о "Стратегии", "Наблюдателе" и "Декораторе". Если не знает - объяснение займёт несколько больше времени. Да и отослать есть к чему. А вот необоснованное применение шаблонов, склонность к шаблонному же мышлению, приводит подчас, к просто гротескным проявлениям...
Согласен. На все 100%
УдалитьЯ начинаю любить Вас почти как Теплякова :-)
Особенно вот за это - "Для меня их место, как и UML - иллюстративность. Хорошо, когда собеседник знает о "Стратегии", "Наблюдателе" и "Декораторе". Если не знает - объяснение займёт несколько больше времени. Да и отослать есть к чему. А вот необоснованное применение шаблонов, склонность к шаблонному же мышлению, приводит подчас, к просто гротескным проявлениям..."
Я ТОЛЬКО сегодня человеку примерно это говорил...
что "паттерны" это просто инструмент, который используется "неосознанно", и вся эта "теория о паттернах" хороша лишь для того, чтобы перейти на "путь осознанности" и на "общий язык".. и не более того...
УдалитьПаттерны - НЕ УПРОЩАЮТ и НЕ УСКОРЯЮТ разработку.. Они лишь её систематизируют и позволяют "несколько проще" общаться.. Только и всего...
"А паттерны часто проще "изобрести" самому"
Удалить- именно так...
А вот "тонны макулатуры" - лишь упрощают "структурирование" и "общение".. Не более того...
"Ненавидите ли Вы паттерны так, как ненавижу их я?"
Удалить-- жду с нетерпением
"Всё это напоминает 100-страничный "талмуд" сопромата"
Удалить-- или электротехники :-) где те же дифуры.. но рассматриваются с "прикладной точки зрения"... с допущениями.. которые далеко не всегда ОБЪЯСНЯЮТСЯ..