18.05.2016

Огляд Шаблонів Мов Program Design

Original: http://www.cs.uni.edu/~wallingf/research/book-review-plopd1.html

Pattern Languages of Program Design

Під редакцією Джеймса О. Коплайн і Дуглас К. Шмідт
Addison Wesley, 1995, 562 сторінок

Відгук:
Eugene Wallingford
Факультет комп’ютерних наук
Університет Північної Айови
Cedar Falls, Айова 50614-0507
wallingf@cs.uni.edu

За останні п’ять років, співтовариство дослідників і практиків виросло навколо ідеї шаблонів. Спочатку досліджували за проектом архітектора Крістофера Александера, шаблони і мови моделі захопити загальну мудрість про хороше дизайні і представити його в літературній формі, яка дозволяє іншим повторно використовувати цей досвід. Кожен шаблон вирішує конкретну проблему проектування в конкретному контексті, обговорюються ті сили, які роблять пошук гарне рішення важко, і являє собою рішення, яке було знайдено, щоб бути успішним в посередництві цих сил. Нічого про шаблони не по своїй природі об’єктно-орієнтована, але переважна більшість роботи в суспільстві моделей включає в себе аналіз OO і дизайн.

За допомогою цієї книги, редактори Джим Coplien і Дуг Шмідт ввести світ в цілому до різноманітних малюнком спільноти. Глави Зразка Мови програми проектування засновані на документах, представлених на Першій щорічній конференції Зразка мов програм, проведених у серпні 1994 року Це був новий вид конференції, де люди представлені не нові дослідження, а “старі” розчини, з них що вони знайшли неодноразово корисні в їх власній практиці програмного забезпечення. Головною особливістю PLoP було використання майстерні письменника замість традиційних паперових презентацій. На семінарах, автори слухали невеликої групи рецензентів обговорюють свої документи, ідеї в ньому, і ефективність їх форми. В результаті, Coplien і Шмідт претензії “Глави в цій книзі, безумовно, одним з найбільш інтенсивно редагованих робіт в сучасній програмної літератури». Це не пусте претензії; кожна глава книги є інформативним, добре написані, і приємно читати.

Розділи 1, 5 і 7 представлені моделі, які, здебільшого, взагалі до поняття розробки програмного забезпечення об’єктно-орієнтованого. У першому розділі, чотири глави розглянуті питання використання шаблонів при розробці систем і повторно використовуваних компонентів. Ці глави також демонструють велику широту картини літератури. Глава 2, за допомогою Riehle і Zullighoven, описує мову шаблонів для проектування структур з точки зору інструментів і матеріалів. Вони екстраполювати цікавою метафори до набору шаблонів проектування, які представляють розуміння конструкції більшості будь-якої структури програми. З іншого боку, глава 1, Адамс, являє собою єдиний шаблон <Функціональність Ala Carte <в простому двох сторінках. Ця модель вирішує делікатне питання про те, як розширити можливості рамки, не приводячи до небажаних компромісів в продуктивності.

Глави в розділі 5 дивитися всередину до питання про класифікацію образів. Два з цих глав зосередитися на різних розмірів, за допомогою яких можуть бути організовані структури, так що відповідні структури можуть бути ідентифіковані за допомогою розробників програмного забезпечення саме в потрібний момент. В цьому розділі, що я знайшов найцікавіше, однак, був каталог Роберта Мартіна шаблонів, які він знайшов у великій тілі існуючого коду. картини Мартіна практичні погляди на види рішень, прийнятих розробниками у всіх великих програмних проектів. Нарешті, в розділі 7 включає в себе моделі при проектуванні окремих об’єктів. що сприяє повторному використанню. Два з цих глав є одними з кращих в книзі. Опис Viljamaa по клієнт-заданим шаблоном самоврядування в главі 26 ясно експлікується вирішення проблеми делегування відповідальності в умовах, коли роль, що об’єкт грає може динамічно змінюватися. У главі 27, Ауер дає мову шаблонів для проектування об’єктів з використанням власного инкапсуляцию. Цей метод призводить до об’єктів, які максимально використовувати повторно в контексті майбутніх підкласів. Ця глава настільки хороша, і адреси така важлива проблема, що вона повинна бути настільною книгою для всіх об’єктно-орієнтованих програмістів.

Розділи 2, 6 і 8 мають справу з шаблонами для розподілених обчислень. Багатство цієї області привело до багатства роботи в шаблоні спільноти з питань синхронізації, паралелізм, інтеграції додатків і обробки подій. Глави в цих розділах представлені зразки, які представляють інтерес навіть для дизайнерів, які не працюють в цій галузі, з яких цей рецензент є одним. Їх цінність виникає з значення форми малюнка, який стимулює обговорення проблем і рішень на рівні, який робить цікаві дизайнерські рішення, явні і відчутна. Багато з цих рішень з’являються, хоча і в дещо різних формах, в інших видах систем, і тому шаблони забезпечують форму натхнення, які не можуть в іншому випадку бути доступні. Серед більш загальнодоступними глав в цих розділах обговорення Месароша з Half-Object Plus Protocol шаблон для розкладання одного об’єкта на декількох хостів таким чином, що є прозорою для користувачів і моделі реактора Шмідта для розпізнавання і диспетчеризації кілька обробників подій в керованої подіями системи.

Розділ 3 єдиний розділ, який є специфічним для конкретної предметної області, що бізнесу. Як людина з досвідом побудови моделей бізнес-процесів і досвіду, я знайшов цей тонкий розділ з трьох розділів, щоб мати величезний інтерес. Ці глави ще раз демонструють велику широту картини літератури. Глава 11, за допомогою Wake, описує єдиний шаблон для номер рахунку об’єктів. Його коротке обговорення питань, що лежать в основі специфікації, створення і використання цих об’єктів усвідомлених і повне важливих моментів. У розділі 10, Cunningham займає тему гадану простоту <перевірки даних при введенні систем <і ремесел проникливе мову шаблонів одинадцяти, який фіксує фундаментальні знання для збереження цілісності інформації в різноманітній програмної системи.

Розділ 4 розширює тему розробки програм в назві книги в найширшому сенсі, що процесу і організації в розробці програмного забезпечення. Кожна з чотирьох глав в цьому розділі буде представляти великий інтерес для тих, хто бере участь в процесі створення великих програмних систем. Глава 13 Coplien описує мову з сорока двох моделей для породжує розвитку організації програмного забезпечення якості, яка заснована на великому дослідженні успішних проектів програмного забезпечення. Ці моделі охоплюють весь спектр діяльності від розміру організації для компенсації успіху. Глава 14, Футом і Opdyke, представлені моделі, які стосуються питань еволюції в системах об’єктних і як дизайнери можуть полегшити природний потік від прототипу шляхом розширення відповідальності до консолідації зрілих об’єктів в поставляється систему. Whitenack окреслює зачатки мови шаблонів для аналізу вимог в главі 15. І нарешті, в главі 16, Керт повідомляє мову шаблонів, спрямований на “очищенні” фазового аналізу розробки програмного забезпечення. Його твердження полягає в тому, що до створення таких мов патерну, * * Процес аналізу і проектування були настільки важко описати, що конструктивні міркування (наприклад, об’єкти категорії) стали змішуватися в аналізі.

Що стосується книги в цілому, є загальне почуття до всіх восьми розділів, що є рідкістю в більшості збірок доповідей конференції. Тема картини все ще свіжа в суспільстві, і автори всіх тридцяти глав написали шаблонів таким чином, що забезпечує вражаючу одностайність книги. На жаль, це єдність проявляється також у вигляді значної надмірності через глави введень і бібліографії. Описи розповідні шаблонів і натхнення для спільноти розробників програмного забезпечення Олександра насправді надають гарне почуття homeyness до роботи, але повторні бібліографічні записи зробити наступні цитати через робіт важким завданням. Одним з побічних ефектів є те, що документи можуть бути прочитані відносно незалежні один від одного, хоча я хотів би запропонувати істотне читання книги, щоб отримати повний вплив, які моделі можуть запропонувати.

Новизна області також означає, що багато авторів описують моделі, які дуже схожі на інших, описаних в інших частинах тексту. Завдання, яке залишається для картини спільноти є інтеграція різних, але схожих мовах шаблон в когерентні цілісності. Але це завдання не буде легким, так як Керт обговорюється в главі 16. І нарешті, книга демонструє хороший баланс моделей, які не є мовою орієнтованих, але які часто повідомляється в контексті однієї мови (зазвичай Smalltalk або C ++ ).

Coplien і Шмідт зібрали досить чіткий і інформативний огляд роботи, що проводиться в області шаблонів для розробки програмного забезпечення. Вони визнають у своїй передмові, що широке коло проблем і рішень, представлених в цьому першому томі вимагає від читача і що, як наслідок, не всі глави будуть однаково цікаві кожному читачеві. Я згоден з цією оцінкою, але я також згоден з їх підтримку для участі всіх восьми секцій. Після сканування через книгу в перший раз, мій розум мчить з ідеями, які були або посаджені або прокинулися різними паперами в книзі. Ці ідеї вимагали мого другого читання, під час якого я зміг почерпнути значення деяких з глав на набагато більш глибокому рівні. І, якщо у вас є тільки обмежений час, я рекомендую вам прочитати розділ 4 про процес і організації. Це ілюструє підхід картини, захоплює дух вивчення процесу за артефакт, і підходить для читачів всіх верств суспільства. Прочитавши її, ви майже напевно захочете повернутися ще.

About The Author

admin

Comments are closed.