Re[5]: Чем хороша книжка Александреску
От: Vermicious Knid  
Дата: 15.04.06 23:55
Оценка: 2 (1) :)
Здравствуйте, alexeiz, Вы писали:

A> Соответственно я их характеризую как действительно полезные и попадающиеся в реальности.


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

И естественно, как и любой другой опыт со стороны применение паттернов не всегда дает хороший результат. Любой инструмент и идиому нужно выбирать и применять с умом. Понимание и знание паттернов иногда позволяет выбрать подходящее архитектурное решение, но это не значит что применять их нужно направо и налево. Кстати зачастую паттерны применяются неосознанно и всплывают в дизайне людей совершенно незнакомых с таким понятием как таковым. Да и вообще паттерн он на то и шаблон/образец, теоретически можно обобщить в паттерн самый разный дизайн. Проблема только в том, что зачастую такой паттерн будет кривым и некрасивым(как и дизайн ). А вот паттерны вроде паттернов GoF это попытка обобщить именно положительный опыт.

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

A>Я бы сказал, что всё кроме мультиметодов из этого списка является действительно полезным и часто применяемым.


Нельзя не согласиться. Не говоря уже о более приземленных вещах, которые очень хорошо описанны в книге.

E>>А вообще интересно, почему тебе кажется, что скорее LISP, а не Prolog?

A>Typelists, head, tail, рекурсивные обработки списков — это Lisp чистой воды.

А вот здесь не совсем согласен. Списки, рекурсивная обработка, head, tail свойственны и для Пролога. Да и мне лично показалось, что реализация всего этого в Loki действительно больше напоминает Пролог, чем Lisp(на момент первого прочтения книги я был знаком и с тем, и с другим).

Почему?
1. Если-бы это был Lisp чистой воды, то вместо head и tail были бы car и cdr.
2. Параметры шаблонов и "переменные" пролога роднит общепринятая практика писать первые заглавными буквами(вторые иначе просто и нельзя записать).
3. Паттерн-мэтчинг(которого кстати нет в Лиспе) Пролога удивительным образом по духу напоминает специализацию в C++.

Но на самом деле конечно ни Prolog, ни Lisp здесь совершенно не причем(тем более что Александреску скорее всего имеет поверхностное знакомство и с тем, и с другим). Typelists из Loki это скорее результат "синтеза" знаний о нескольких функциональных языках, в которых списки являются основной структурой данных, в первую очередь ML и Haskell(оба языка кстати вскользь упоминаются в книге). Конечно речь идет о чисто внешних деталях реализации, так сказать эстетике, поскольку насколько мне известно Александреску вроде бы не пионер в данном направлении программирования на C++. Первые опыты на эту тему скорее всего были "вдохновленны" именно Лиспом.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.