Шаблоны

Версия от 16:48, 3 августа 2016; Admin (обсуждение | вклад) (Шаблоны для программного обеспечения)

Язык шаблонов (pattern language) – подход, метод которого описывается в разбивке на "паттерны" (шаблоны), но нет метамодели, описывающей связь этих паттернов типы этих паттернов (т.е. ничего не говорится о разделении работ, продуктов, организации и языков как в SME). Термин предложен архитектором Christopher Alexander и популяризован в его книге "A Pattern Language".

Организационные шаблоны

  • Организационные паттерны agile-разработки (unity of purpose, engage customers, domain expertise in roles, architect controls product, destibute work evenely, function owner and component owner, mercenary analyst, architect also implements, firewalls, developer controls process). Это суперкраткий обзор паттернов из книги Organizational Patterns of Agile Software Development by James Coplien and Neil Harrison (читать онлайн). Интересны заметки про организацию против процессов: We strive to make these patterns exemplary in the strongest Alexanderian sense. Most of the patterns will be structural in nature; they are organizational patterns, not process patterns. We believe this is fundamentally important because organizational structure reaches deeper than process does, and because structure is more in line with the Alexanderian formulations for good patterns. We will certainly suffer the occasional departure from this philosophy.
  • 48 организационных паттернов: Fearless Change: Patterns for Introducing New Ideas (Hardcover) by Mary Lynn Manns and Linda Rising в Амазоне.
  • Как писать паттерны Ричарда Габриэля24 слайда (паттерны – это про обучение. Далее советы, как писать хорошие паттерны). Forces – "расклады". Технология проста, и есть много жанров о ней писать. Но когда речь заходит о жизни людей рядом с технологией, то нужно вспоминать о паттернах. Textual Exlectronic Communication Pattern Language – сквозной пример презентации. Паттерны имеют смысл только в контексте языка паттернов, иначе это просто "странные фрагменты мысли". Паттерны должны быть написаны с качеством текста не хуже, чем художественная литература, и должны так же вдохновлять и заставлять задуматься. Книга Габриэля "Patterns of Software", 1996
  • Внедрение паттернов в организации
  • Язык паттернов комьюнити Jini – организационные паттерны (много) типа
    • Make a Standard
    • Context: A member of the Jini Community developing a new service.
    • Problem: How does a community member pursue a product idea that requires some degree of standardization to succeed?
    • Force: A member or coalition of members decide that there might be a market for a new service.
    • Force: The member or coalition believes that the creation of the market requires a standards-like ratification process to help convince other companies to create complementary products.
    • Force: The requirements specified by the SCSL on all community members.
    • Therefore: The member or coalition engages the community process or creates one for ratifying specifications to some level of community standard.
    • Known Uses: Normal business practice, IETF, Visa International.
  • http://www.enterpriseintegrationpatterns.com/

Шаблоны для программного обеспечения

Эрих Гамма и др. (GOF) определили 23 объектно-ориентированных паттерна. Они разбиты на три класса:

Порождающие Структурные Поведенческие
  • Абстрактная фабрика
  • Строитель
  • Фабричный метод
  • Прототип
  • Одиночка
  • Адаптер
  • Мост
  • Компоновщик
  • Декоратор
  • Фасад
  • Приспособленец
  • Прокси
  • Цепочка обязанностей
  • Команда
  • Интерпретатор
  • Посредник
  • Хранитель
  • Наблюдатель
  • Состояние
  • Стратегия
  • Шаблонный метод
  • Посетитель

Файл:Patterns.pdf

См. также

Педагогические шаблоны

Антипаттерны

Основная статья: Антипаттерн

Антипаттерн (англ. anti-pattern) — неэффективный и рискованный подход к решению часто встречающихся проблем. То, как поступать не надо, но как всё равно все, всегда и повсюду поступают.

Метапаттерны

См. также

  • Сайт Jim Coplien с кучей ссылок про паттерны и оргпаттерны.
  • Гнездо Hillside (от места, где были первые семинары по паттернам). Самые свежие новости по паттернам. Типа 12-й европейской конференции по паттернам EuroPLoP 2007, которая будет в Баварии 4-7 июля 2007г. или где найти юмористические книжки по паттернам. Хорошо помнить слова со страницы определения паттерна: Alexander could have written a 1-sentence definition of what a pattern is, or an essay, but instead he wrote a 550-page book to do it. Because the concept is hard.
  • Когда использовать паттерны (как один из вариантов: Principle: Do X; Advice: If A then do X; Pattern: To balance f(A, B, C, ...) do X. Или It must be a solution to a problem in a context;You must be able to tell the problem solver what to do, how to solve the problem; It must be a mature, proven solution (RuleOfThree); It must contribute to human comfort or quality of life; It must be something you didn't invent yourself (BuschmannsLaw); The solution should build on the insight of the problem solver, and can be implemented a million times without ever being the same twice; It cannot be formalized or automated (if it can be formalized or automated, then do that instead of writing it as a pattern); It should have a dense set of interacting forces that are independent of the forces in other patterns. Writing a pattern should probably be hard; if it's too easy to write, it may not be a pattern, or you haven't thought hard enough about the forces.
  • Подсказки для писателя паттернов от Ward Cunningham, Jim Coplien и других (типа "Individual patterns in a pattern language should encapsulate their own forces. That makes each pattern independent, so it can be applied independently of other patterns (without too much concern for the big picture at any given point). Good patterns should always be like this, but it's particularly important when the pattern is in a pattern language".
  • Попытка показать систему паттернов Банды четырех на объектах реального мира для учебных целей, чтобы паттерны остались, а детали языковой реализации не были акцентированы.