воскресенье, 27 ноября 2011 г.

среда, 24 августа 2011 г.

Книга Архитектура корпоративных программных приложений(Шаблны корпоративных приложений)


Фаулер. М."Архитектура корпоративных программных приложений"("Patterns of Enterprise Application Architecture"), 2006. - 544 с.


Книга об архитектурных шаблонах проектирования для приложений, применяемых в масштабах предприятий.
Автором вводится понятие "корпоративное приложение" и чем оно отличается от других программ, какие проблемы необходимо решить при построении данного вида систем.
Рассматриваются конкретные шаблоны для решения наиболее стандартных задач встречающихся при разработке корпоративных приложений.  

суббота, 2 апреля 2011 г.

Новая книга GoF

Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес "Приемы объектно-ориентированного проектирования. Паттерны проектирования", 2010. - 366 с.

Книга "банды четырёх" -  это скорее справочник, чем книга для чтения от корки до корки. Но читать ее приходится от корки до корки, так как в описании отдельных паттернов встречаются названия новых, которые в свою очередь находятся в следующих разделах и главах. Но после полного прочтения, для закрепления материала нужно еще не раз возвращаться к описанию отдельного паттерна.
Сами паттерны предназначены для решения часто встречающихся задач, возникающих при проектировании и разработке объектно-ориентированного программного обеспечения. Правильное применение паттрена в большинстве случаев решает поставленную задачу, но не гарантирует что задача будет решена наилучшим способом. Также паттерны предназначены для упрощения внесения последующих изменений в код, в связи с новыми или изменившимися требованиями.

четверг, 17 марта 2011 г.

Ошибка expected constructor, destructor, or type conversion before ‘*’ шаблнный метод, вложенный класс

template< class T >
class DblLinkedList{
     ...
private:
     class Node{
          ...
    };
     Node* getNodeByIndex(int index);
};

...

template<class T>
DblLinkedList<T>::Node* DblLinkedList<T>::getNodeByIndex(int index){}

Компилятор выдает ошибку следующего содержания:

expected constructor, destructor, or type conversion before ‘*’

Решение:

template<class T>
typename DblLinkedList<T>::Node* DblLinkedList<T>::getNodeByIndex(int index){}

В данном случае необходимо "подсказать" компилятору что DblLinkedList::Node* это определение указателя на тип, а не ошибочное определение конструктора для класса Node