ФЭНДОМ


Неформальное описание Править

Для каждого элемента модели (листа модели или части модели) указывается его поведение по отношению к рендерингу разными способами, по отношению к форматированию, по отношению к RDBMS, по отношению к валидации. Листы модели -- это стринги, enumы, html multiselectы, booleans, numbers, и т.д.

Многие такие "описания" поведения типичны и не требуют программирования.

Т.е. то, что обычно делает контроллер в MVC, тут бОльшую или всю часть делают такие вот кирпичики-описания. Точнее, немалая часть контроллера вынесена в описания и в обработчики, находящиеся в описаниях. А поскольку описания стандартны по большей части, то контроллер значительно уменьшается.

Короче говоря, Magritte -- аналог XSD/XML Schema, только на порядки лучше, поскольку Smalltalk на порядки более экспрессивен, нежели язык XML Schema.

А шум о том, что Magritte сам себя описывает -- это о том, что Магритовское описание *само* можно отрендерить как набор полей ввода, -- например, на страничке, -- и автоматом ввести в модель с этой странички. Т.е. менять описание. А рендерить его будет описание описания.

Magritte применяется, в частности, в Pier (последний ранее назывался Smallwiki).

MagritteGlorp Править

Полезный пакет -- MagritteGlorp. Позволяет автоматически генерить схемы RDBMS из описаний Magritte, и общаться с базой с помощью описаний Magritte. Требует GLORP. Пример использования MagritteGlorp: постинг by Leon Ramon.

Ссылки Править

Домашняя страница Magritte