singalen: (freeman)
А это — мета-метамодель,
Которая описывает метамодель,
Которая описывает синтакс модели,
Которую рисовали в том UML-е,
Который построил Буч.
Tags:
singalen: (Default)
Одно неверное движение языком — и ты в овердизайне.
singalen: (Default)
Это, пожалуй, будет статья.

Клиент-серверная архитектура плюс логика на клиенте и сервере плюс data persistence породили целое семейство потомков паттерна DTO.

Вот, к примеру:
  • "Обычный" DTO: аки пчёлка, переносит данные между клиентом и сервером;
  • Валидируемый (обычно GUI-шный) DTO - DTO, логика поведения/валидации которого вынесена во внешний (stateless) класс;
  • "Недозаполненный" DTO -
    • Identity-only DTO, который нужен только для проверки identity или equality - в таком достаточно заполнить поле id;
      Например, на случай, когда можно передать только id объекта, а можно и готовый объект - когда у нас объекты не закэшированы, и вызываемый код может загрузить их сам, а может воспользоваться уже загруженными.
    • DTO как критерий поиска: это м.б. один DTO или пара DTO, если нужно задать интервал значений;
    В этом случае я, конечно, приспосабливаю DTO к задачам, которые ему изначально не свойственны - с одной стороны. С другой стороны, сущностей становится меньше: мы обходимся без класса XXXSearchCriteria и без лишних сигнатур методов, которым пришлось бы принимать или объект, или id.
  • DTO как предок/интерфейс rich object-а с поведением. Может содержать внутри другой, "обычный" DTO, чтобы не дублировать группу полей.
Ну, ещё Local DTO у Фаулера.
singalen: (Default)
Из переписки в группе agile-ukraine.

Бизнес-логика — это то, что останется от клиентских задач, если убрать компьютеры.

Всё равно у заказа будут строки, НДС будет начисляться по тем же правилам, а кредит нельзя будет выдавать, если кредитуемый сидел в тюрьме.
и так далее )
singalen: (Default)
Как-то пробегал мимо меня чудный документ - правила митингов/обсуждений для софтверных архитекторов.
Он, например, запрещал говорить "твой дизайн/мой дизайн" и требовал говорить "этот/тот/[описательное прилагательное]".
Может, кто-то помнит, как найти, или лучше меня владеет поиском?

MVC

2/9/07 22:57
singalen: (Default)

Originally published at Fiberglass flowers. You can comment here or there.

Got a web reference to an article “Applied MVC Patterns. A pattern language” by Sergey Alpaev.
Model-View-Controller is one of the most complex and pribably the most misinterpreted patterns among GoF’s.

The article is a perfect classification, I recommend it as a must read for everyone who is confused about what is Controller for, and to those who already know it.
Wikipedia article also has some very basic analysis of the pattern.

Tags:
singalen: (Default)
что было вчера )И сделал вывод, что нас ждёт нашествие блондинок со знанием C#.
singalen: (Default)
Нашёл в вебе опубликованную статью-доклад Сергея Алпаева "Applied MVC Patterns. A pattern language", с некоей конференции. В PDF.
Статья великая. Рекомендую всем, кто тщится понять паттерн MVC - что там с чем связано и что нет, и что такое контроллер.
singalen: (2002)
Об CMM и Domain-driven design, наконец исправлено и дополнено ) Из приколов:
(речь об отображении требований на языки со статической и динамической типизацией): "Сегодня я пассажир, а завтра пациент".
singalen: (Default)
Я рассказал о Вавилонском эксперименте.
много )
singalen: (2002)
Владимир Павлов пишет:

25 марта (суббота) в Днепропетровске пройдет эксперимент P-Modeling-2, являющийся развитием эксперимента CMMI-P-SPEM ( http://secr.ru/rus/cmmi-p-spem/ и http://www.vlpavlov.com/ooaood/articles_ru.html ) Цель нового эксперимента - опробовать итеративное применение метода Обратной Семантической Трассировки (ОСТ) как механизма повышения качества моделирования.
Read more... )
upd: исправлен URL на павловский сайт.
singalen: (humpty-dumpty)
Какие мы знаем репозитории design patterns. Ссылки идут in natural order, по-русски — в никаком порядке. А где хомяк собственно GoF-овских паттернов?

Ваши оценки каждого репозитория приветствуются :)
Со своей стороны рекомендую c2.com и фаулеровский блог.

ЗЫ: наконец посмотрел, как в HTML писать тире: — . Есть ещё – , но оно скорее похоже на дефис.
singalen: (humpty-dumpty)
Увидел, что в Википедии написана фигня об exception chaining, исправил.
Интересно, никаких правил не нарушил?
singalen: (Default)

Updated.
15-16
октября небезызвестный Владимир Павлов (ныне R&D manager in Russia небезызвестной фирмы Intel) будет проводить в Днепропетровске репетицию "Вавилонского эксперимента №3". Языком общения будет SPEM.
Требуются добровольцы. Есть время подучить SPEM.
Да, знание CMM/CMMI для репетиции необязательно :)
Я участвовал в одной из версий "эксперимента №2", с UML - было весело. Жаль, не попадаю на эту. Не забудьте определиться с организационной структурой до начала сессии, чтобы не было работы а-ля "кто в лес, кто по дрова".
Текст анонса под катом )
singalen: (Default)
Мысля об исключениях, в дополнение к этому.
Хотя исключения и создают "неявный goto из каждого места кода" (если быть точным - то return), но в том и идея, чтобы сделать их неявными. В корректном коде в этом самом каждом месте были бы if-ы для проверки кодов возврата, return-ы, и, возможно, ещё энное количество строчек - лог и пр.
То есть - исключения являются меньшим злом, и без них код был бы не лучше.
Проблема - научить(ся) писать так, чтобы код функции корректно завершался при выходе из любого места. Для этого нужны стражи ресурсов (см. RAII pattern)... и что ещё? Неужели это решает "проблему исключений"?

P.S. Вот это у Джоэля, кажется, надо перечитать со всеми упоминаемыми статьями.
P.P.S. Ещё сравнение RAII в C++, C# и Java. Java тут, увы, сильно подкачала :)
singalen: (Default)
Джоэл ссылается тут и тут на статью Реймонда Чена, выступающую против исключений. Перечитать со всеми ссылками.
В общем, аргумент насчёт того, что при наличии exceptions отследить глазом все неявные переходы почти невозможно, верен, - если не принимать во внимание инструментальную поддержку.
Java checked exceptions, увы, не имеют аналогов в мейнстриме (как я его вижу; читай - C#, C++). Если рассматривать только код в нотепаде, то да, но - у нас есть IDE и компилятор, который сильно облегчает поиск проблем с checked exceptions. Возможен и компилятор C++, выдающий warnings по образу compile-time ошибок Java с checked exceptions.
С третьей стороны, просто читая код, так-таки не увидишь этих "неявных goto".
Надо посчитать, насколько предупреждения/ошибки компилятора о checked exceptions помогают отличить правильный код от неправильного.

Upd: Добавляю свой старый конспект с нашей локальной тусовки, которую наадеюсь продолжить с осени.

1. Checked vs unchecked exceptions.

Read more... )

March 2023

S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 

Syndicate

RSS Atom
Page generated 18/6/25 21:46

Expand Cut Tags

No cut tags