Показаны сообщения с ярлыком J2EE Core Patterns. Показать все сообщения
Показаны сообщения с ярлыком J2EE Core Patterns. Показать все сообщения

11 нояб. 2009 г.

Карта шаблонов корпоративных приложений

Драфт v0.1, только 1/3 шаблонов.



Планируется еще довольно много фишек:
  1. Расширить набор шаблонов
  2. Гиперссылки на пояснения и первоисточники
  3. Более "тонкие" отношения между шаблонами
  4. Пояснения шаблонов прямо на этой схеме
Мне хотелось бы вопросов и предложений )))

12 окт. 2009 г.

Будущая карта шаблонов корпоративных приложений )))

Будет: Шаблоны корпоративных приложений [Фаулер] + J2EE Core Patterns [Sun] + Data Access Patterns [C. Nock] в огромном цветном pdf для печати. Пока же набросок ))))







10 окт. 2007 г.

J2EE Core Design Patterns: Dispatcher View



Outline карты:

==========================================
Dispatcher View
==========================================

-------------------------------------------------------------
1 Паттерн Dispatcher View [Core J2EE], как и паттерн Service to Worker [Core J2EE], описывает комбинацию других паттернов
каталога CoreJ2EE: Front Controller и View Helper.
Оба этих макро-паттерна описывают различные комбинации контроллера и диспетчера с представлениями и хелперами.
-------------------------------------------------------------

-------------------------------------------------------------
2 Ситуация
-------------------------------------------------------------

2.1 Система контролирует поток выполнения (application workflow или webflow) и доступ к бизнес-данным, из которых создается контент представления.

-------------------------------------------------------------
3 Задача
-------------------------------------------------------------

3.1 Задачи, решаемые шаблоном Dispatcher View - это совокупность задач, решаемых шаблонами Dispatcher и View Helper

3.2 Введение централизованного компонента

3.2.1 для управления контролем доступа

3.2.2 для извлечения данных

3.2.3 для управления представлениями

3.3 Вынос бизнес-логики из представлений

3.4 Разделение бизнес-логики и логики управления представлениями (структурной логики)

-------------------------------------------------------------
4 Требования
-------------------------------------------------------------

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

4.2 Код скриптлетов в представлениях должен быть минимизирован

4.3 Бизнес-логика должна быть инкапсулирована не в представлениях

4.4 Логика управления представлениями относительно простая

4.4.1 основывается на значениях, инкапулированных в запросы

-------------------------------------------------------------
5 Результаты
-------------------------------------------------------------

5.1 Централизация управления, улучшение модульности и возможностей повторного использования

5.1.1 Данный шаблон обеспечивает централизованное пространство для работы системных служб и бизнес-логики во всех запросах.
Так же при использовании централизованного управления можно ввести единую точку обработки ошибок.

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

5.2 Улучшение разделения ролей

5.2.1 Отделение логики форматирования, структурной логики и бизнес-логики уменьшает зависимости разработчиков, выполняющих разные роли, от одних и тех же ресурсов и друг от друга

-------------------------------------------------------------
6 Связанные шаблоны
-------------------------------------------------------------

6.1 Front Controller и View Helper [Core J2EE]

6.1.1 Паттерн Service to Worker является результатом комбинации паттернов View Helper [Core J2EE] и Front Controller [Core J2EE]

6.2 Service To Worker [Core J2EE]

6.2.1 Паттерн Service to Worker является комбинацией паттерна Front Controller с диспетчером и паттерном View Helper. Паттерны Service to Worker и Dispatcher View идентичны относительно включенных в них компонентов, однако отличаются разделением задач между ними. Паттерн Dispatcher View предоставляет отсрочку получения данных до этапа отработки представления. Кроме этого, в управлении представлениями диспетчер выполняет более ограниченную роль, так как выбор представления обычно уже включен в запрос.

6 окт. 2007 г.

J2EE Core Design Patterns: Service To Worker



Outline карты:

-------------------------------------------------------------
1 Паттерн Service to Worker [CoreJ2EE], как и паттерн Dispatcher View [CoreJ2EE], описывает комбинацию других паттернов
каталога CoreJ2EE: Front Controller и View Helper.
Оба этих макро-паттерна описывают различные комбинации контроллера и диспетчера с представлениями и хелперами.
-------------------------------------------------------------

-------------------------------------------------------------
2 Ситуация
-------------------------------------------------------------

2.1 Система контролирует поток выполнения (application workflow или webflow) и доступ к бизнес-данным, из которых создается контент представления.

-------------------------------------------------------------
3 Задача
-------------------------------------------------------------

3.1 Задачи, решаемые шаблоном Service To Worker - это совокупность задач, решаемых шаблонами Dispatcher и View Helper

3.2 Введение централизованного компонента

3.2.1 для управления контролем доступа

3.2.2 для извлечения данных

3.2.3 для управления представлениями

3.3 Вынос бизнес-логики из представлений

3.4 Разделение бизнес-логики и логики управления представлениями (структурной логики)

-------------------------------------------------------------
4 Требования
-------------------------------------------------------------

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

4.2 Код скриптлетов в представлениях должен быть минимизирован

4.3 Бизнес-логика должна быть инкапсулирована не в представлениях

4.4 Бизнес-логика может быть относительно сложной, она основывается на значениях, полученных в run-time

4.5 Логика управления представлениями может быть относительно сложной, с множеством представлений, потенциально отображаемых при одном и том же запросе

-------------------------------------------------------------
5 Результаты
-------------------------------------------------------------

5.1 Централизация управления, улучшение модульности и возможностей повторного использования

5.1.1 Данный шаблон обеспечивает централизованное пространство для работы системных служб и бизнес-логики во всех запросах.
Так же при использовании централизованного управления можно ввести единую точку обработки ошибок.

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

5.2 Улучшение разделения ролей

5.2.1 Отделение логики форматирования, структурной логики и бизнес-логики уменьшает зависимости разработчиков, выполняющих разные роли, от одних и тех же ресурсов и друг от друга

-------------------------------------------------------------
6 Связанные шаблоны
-------------------------------------------------------------

6.1 Front Controller и View Helper [Core J2EE]

6.1.1 Паттерн Service to Worker является результатом комбинации паттернов View Helper [Core J2EE] и Front Controller [Core J2EE]

6.2 Dispatcher View [Core J2EE]

6.2.1 Паттерн Service to Worker является комбинацией паттерна Front Controller с диспетчером и паттерном View Helper. Паттерны Service to Worker и Dispatcher View идентичны относительно включенных в них компонентов, однако отличаются разделением задач между ними. Паттерн Dispatcher View предоставляет отсрочку получения данных до этапа отработки представления. Кроме этого, в управлении представлениями диспетчер выполняет более ограниченную роль, так как выбор представления обычно уже включен в запрос.

11 сент. 2007 г.

J2EE Core Design Patterns: Composite View



По многочисленным просьбам outline карты теперь дается не в виде картинки, а в текстовом.

Outline карты:
1 Ситуация
1.1 Представления содержат информацию из нескольких источников
1.2 Представления состоят из фрагментов (подпредставлений) с разной степенью частоты изменений
1.3 Над одним представлением работают несколько разработчиков
1.3.1 в том числе с разной квалификацией
2 Задача
2.1 Необходимо упростить разработку представлений
3 Требования
3.1 Различные фрагменты (подпредставления) представления могут часто меняются
3.2 Различные представления могут использовать одинаковые фрагменты (подпредставления)
3.3 Если фрагменты (подпредставления) встроены в представление на уровне исходного кода методом копирования-вставки, то поддерживать такое решение сложно
3.3.1 так же такое решение снижает uptime системы, т.к. изменения в подпредставлениях вступят в силу с запозданием
4 Результаты
4.1 Достоинства
4.1.1 Повышается модульность кода и возможности повторного использования подпредставлений
4.1.2 Повышается гибкость модификации содержимого
4.1.2.1 Как на этапе разработки
4.1.2.2 Так и при выполнении
4.1.3 Облегчается управляемость и сопровождение
4.2 Недостатки
4.2.1 Возможные накладные расходы во время выполнения
4.2.2 Компромиссные решения для обеспечения гибкости
4.2.3 Повышенные требования к содержимому подпредставлений
4.2.3.1 при некоторых реализациях подпредставление уже не содержит HTML-документ, а только его фрагмент
4.2.3.2 это необходимо отслеживать
5 Связанные шаблоны
5.1 Composite [GoF]
5.1.1 Composite View является частным случаем шаблона Composite
5.2 View Helper [Core J2EE]
5.2.1 Представление в шаблоне View Helper может использовать Composite View

14 июл. 2007 г.

J2EE Core Patterns: Intercepting Filter


Outline карты:

Карту в увеличенном формате выложил на http://courses.4shared.com в раздел j2ee_patterns.

J2EE Core Patterns: цикл обзоров

Многие блоггеры пишут циклы статей по шаблонам проектирования (design patterns). Но, как правило, они ограничиваются базовыми (core, GoF) шаблонами.
А вот с шаблонами, применяемыми в платформе J2EE, возникает некоторый дефицит русскоязычных внятных описаний.
Посему я решил начать цикл описаний Core J2EE Patterns. Каждый пост из этого цикла будет описанием одного j2ee шаблона. Делать описание я буду в виде mind-map, стуктурном древовидном представлении. Выкладывать же эту карту я буду в png- или jpeg-форматах, если кому понадобиться исходный файл в формате MindJet MindManager 6, обращайтесь.
В качестве основы я буду брать материалы с ресурсов http://www.corej2eepatterns.com/Patterns2ndEd
и http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html, а так же книги Образцы J2EE. К сожалению, это одна из немногих книг на русском языке. Но читать её практически нереально из-за крайне убогого перевода.

Соответственно, на выходе этого цикла получится большая mind-map с русскоязычными описаниями Core J2EE Patterns. Эту карту потом можно будет использовать как шпаргалку и в процессе обучения.
Буду крайне признателен за любые замечания и предложения. В идеале, каждое описание шаблона должно вызвать дисскуссию, в процессе которой наконец-то родится истина )))