Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Опять ссылки: кое-что о паттернах

Снова жалко закрывать окно браузера. Пару дней уже смотрю про паттерны. Пусть тут полежат ссылки про языки паттернов (системы паттернов).

Сайт Jim Coplien -- http://users.rcn.com/jcoplien/ с кучей ссылок про паттерны и оргпаттерны.

Организационные паттерны agile-разработки: http://users.rcn.com/jcoplien/Patterns/Top10OrgPatterns.html (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). Это суперкраткий обзор паттернов из http://www.amazon.com/gp/product/0131467409/ -- книжка Organizational Patterns of Agile Software Development by James Coplien and Neil Harrison. Онлайн эта книжка тут: http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns?BookOutline. Интересны заметки про организацию против процессов: 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 слайда http://www.dreamsongs.com/NewFiles/FinePointsOfPatternWriting.pdf (паттерны -- это про обучение. Далее советы, как писать хорошие паттерны). Forces -- "расклады". ;) Технология проста, и есть много жанров о ней писать. Но когда речь заходит о жизни людей рядом с технологией, то нужно вспоминать о паттернах. Textual Exlectronic Communication Pattern Language -- сквозной пример презентации. Паттерны имеют смысл только в контексте языка паттернов, иначе это просто "странные фрагменты мысли". Паттерны должны быть написаны с качеством текста не хуже, чем художественная литература, и должны так же вдохновлять и заставлять задуматься. Повторю ссылку на книжку Габриэля Patterns of Software 1996 -- http://www.dreamsongs.com/Files/PatternsOfSoftware.pdf

Язык паттернов комьюнити Jini -- http://www.dreamsongs.com/NewFiles/JiniCommunityPL.pdf -- организационные паттерны (много) типа:
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.cmcrossroads.com/bradapp/docs/patterns-intro.html. Это вполне может быть "главным текстом" на тему паттернов. Коротенький учебник. Сюда же -- pattern FAQ http://g.oswego.edu/dl/pd-FAQ/pd-FAQ.html

Каталог антипаттернов -- http://c2.com/cgi-bin/wiki?AntiPatternsCatalog. Есть книжки на эту тему -- http://www.antipatterns.com/ (в том числе "антипаттерны в управлении проектами"). Подробная статья о том, что такое антипаттерны и что с ними делать -- http://www.antipatterns.com/EdJs_Paper/Antipatterns.html. Антипаттерны SOA -- http://www-128.ibm.com/developerworks/webservices/library/ws-antipatterns/

Метапаттерны -- паттерны как делать паттерны -- http://c2.com/cgi-bin/wiki?MetaPatterns. Однако, там немного сказано. Можно добавить паттерн "паттерн" -- http://c2.com/cgi-bin/wiki?PatternPattern паттерн использования паттерна :)

Гнездо Hillside (от места, где были первые семинары по паттернам) -- http://hillside.net/patterns/. Самые свежие новости по паттернам. Типа 12-й европейской конференции по паттернам EuroPLoP 2007, которая будет в Баварии 4-7 июля 2007г. или где найти юмористические книжки по паттернам (http://www.datingdesignpatterns.com/). Хорошо помнить слова со страницы определения паттерна ((http://hillside.net/patterns/definition.html): 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.

Когда использовать паттерны -- http://c2.com/cgi-bin/wiki?WhenToUsePatternForm (как один из вариантов: 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 и других: http://c2.com/cgi/wiki?TipsForWritingPatternLanguages (типа "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".

Попытка показать систему паттернов Банды четырех на объектах реального мира: http://www2.ing.puc.cl/~jnavon/IIC2142/patexamples.htm -- для учебных целей, чтобы паттерны остались, а детали языковой реализации не были акцентированы.

Внедрение паттернов в организации -- http://st-www.cs.uiuc.edu/~plop/plop97/Proceedings/delano.pdf

Педагогические паттерны -- http://www.pedagogicalpatterns.org/ (и оттуда быстро приходим к http://www.pedagogicalpatterns.org/examples/LearningAndTeaching.pdf, http://csis.pace.edu/~bergin/PedPat1.3.html и всяким другим).
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 6 comments