?

Log in

No account? Create an account
Второй рефакторинг назрел - Журнал Витуса.
[Друзья] [Свежие записи] [Dreamwidth] [Фото] [Тексты] [Друзья Ирины] [Матерные писатели] [Сообщества] [3 круг]
April 21st, 2008
10:40 pm
[User Picture]

[Link]

Previous Entry Share Next Entry
Второй рефакторинг назрел
Я уже писал о назревшем рефакторинге в Stilllife. С тех пор у меня не было особенно времени заниматься кодом, но вот мысли всякие приходят. Я кажется, начал
понимать какая часть уже написанного кода является универсальным web-application framework, а какая специфична для решаемой задачи. Опять же принцип Сайт это документ сформулровал.

Соответственно, становится понятным соотношение StillLife с MVC-паттерном.

1. Модель - ни разу не реляционная. Скорее более generic OO. Что неприятно. Но очевидно что свойство "однородные объекты могут иметь разный набор атрибутов" востребовано. Отношения между объектами в ER-модель тоже ни разу не укладываются.

2. Функциональность view существенно ограничена по сравнению с текущим MVC. Все что не описывается средствами html+css (вроде формата представления дат) уходит в описание модели.

3. Контроллер - фиксированный. Собственно, модель "сайт это документ" основана на том, что операции, которые людям нужно выполнять над объектами их сайтов в большинстве полностью описываются некоторым замкнутым набором действий вроде команд текстового редактора или набора функций электронной таблицы. Соответственно, набор операций допустимых над конкретным объектом специфицируется в модели.

Осталось придумать синтаксис описания модели чтобы был компактный и удобопонятный, и место для подключения плагинов-нестандартных контроллеров.

Список стандартных контроллеров уже более-менее понятен - объект можно создать (с использованием шаблона-формы), редактировать (им же) переместить (вот тут интереснее) и удалить.

Ах да, совсем забыл. Желающие изучить вопрос возможности установки StillLife на каком-нибудь хостинге могут взять и попробовать запустить на нем вот этот скрипт. Он проверит наличие необходимых модулей и кое-что расскажет про них и про систему. В принципе, на нескольких хостингах, на которых его уже запускали, все модули, имеющие компилируемую часть обычно есть (POSIX, Storable, Math::BigInt, Digest::SHA1). Остальное, в принципе, без проблем ставиться даже на хостинг, куда есть только ftp-доступ.

Tags:

(2 comments | Leave a comment)

Comments
 
[User Picture]
From:tarkhil
Date:April 22nd, 2008 05:17 am (UTC)
(Link)
Фиксированный контроллер - интересная штука. Надо будет повкуривать...
[User Picture]
From:vitus_wagner
Date:April 22nd, 2008 06:47 am (UTC)
(Link)
Это логичным образом вытекает из концепции "Сайт - это документ". Контроллер - несомненно программа. А раз сайт - это документ, то программа, его обрабатывающая, должна быть по отношению к нему внешней и фиксированной.

Фактически паттерн MVC превращается в этом случае в типичный для дексктопа паттерн приложение-скин-документ.
My Website Powered by LiveJournal.com