Какая стояла задача?
В любых скриптах (будь то блог или система управления контентом) разделяют административную часть и клиентскую. Написание новых сообщений осуществляется в своём окружении, независимо от конечного представления. С одной стороны это понятно: стилистически легче поменять дизайн (шаблон) сайта, не затрагивая админку. Но меня такое положение дел не очень устраивает, и вот почему. Представим, например, типичную ситуацию написания сообщения. Что вы видите? Поля ввода для заголовка, текста сообщения, тегов и прочего малозначительного. Более - ничего. Какая-то изолированность: ни подглядеть что уже написано тобою ранее, ни сослаться на определённые сообщения, набранные по теме. Приходится совершать лишние движения, а там уже и нить мысли потерялась.
Идея заключается в том, чтобы совместить конечное представление блога (именно такой тип скрипта рассматривается) и возможности по управлению содержимым. Никаких админок, никакой двусмысленности. Всё на виду.
Кстати можно заметить, что существует некоторая параллель с добавлением записей на форуме (я про быстрое добавление): когда цепочка разговоров на ладони, делать замечания и предложения естественно.
Итак, во главе угла подход, его развивать я и буду в дальнейшем. А потому ничего грандиозного не намечается. Скрипт блога будет наипростейшим: один пользователь, сообщения+категории+теги+комментарии. Писать буду (продолжать) на scheme.
Что сделано?
А сделано ровно вот что:
1) Предметная область включает собственно сообщения (дата, название, тело), комментарии (дата, ссылка-на-сообщение, автор, домашняя страница, почтовый ящик, тело).
2) Для каждой сущности там где это необходимо реализованы операции: создание (сообщение, комментарий), чтение (сообщение, комментарий), изменение (сообщение), удаление (сообщение, комментарий).
3) На типичной странице для каждого блока информации (например, блок сообщения) имеются ссылки на операции из п.2
4) Почти все операции реализуются с помощью использовании технологии Ajax (фреймворк - prototype). Подгрузка данных и форм редактирования происходит порционно и в фоне.
5) Поля textarea растягиваются при вводе, что позволяет видеть весь набранный текст целиком.
Ниже изображены скриншоты работающего блога:
Какие планы?
Второй технический релиз внесёт новшества в виде: (а) категорий и (б) построения страниц (и блоков) на основе шаблонов. Кроме того в голову пришла мысль о динамической подгрузке более ранних сообщений (которые изначально не видны) внизу страницы: задействуя либо скроллинг, либо какой-нибудь элемент управления. То есть было бы неплохо сделать так: скролишься вниз, а там появляются ранее написанные сообщения (совсем как в Google Reader).
Кому интересно, вот тарбол.
В любых скриптах (будь то блог или система управления контентом) разделяют административную часть и клиентскую. Написание новых сообщений осуществляется в своём окружении, независимо от конечного представления. С одной стороны это понятно: стилистически легче поменять дизайн (шаблон) сайта, не затрагивая админку. Но меня такое положение дел не очень устраивает, и вот почему. Представим, например, типичную ситуацию написания сообщения. Что вы видите? Поля ввода для заголовка, текста сообщения, тегов и прочего малозначительного. Более - ничего. Какая-то изолированность: ни подглядеть что уже написано тобою ранее, ни сослаться на определённые сообщения, набранные по теме. Приходится совершать лишние движения, а там уже и нить мысли потерялась.
Идея заключается в том, чтобы совместить конечное представление блога (именно такой тип скрипта рассматривается) и возможности по управлению содержимым. Никаких админок, никакой двусмысленности. Всё на виду.
Кстати можно заметить, что существует некоторая параллель с добавлением записей на форуме (я про быстрое добавление): когда цепочка разговоров на ладони, делать замечания и предложения естественно.
Итак, во главе угла подход, его развивать я и буду в дальнейшем. А потому ничего грандиозного не намечается. Скрипт блога будет наипростейшим: один пользователь, сообщения+категории+теги+комментарии. Писать буду (продолжать) на scheme.
Что сделано?
А сделано ровно вот что:
1) Предметная область включает собственно сообщения (дата, название, тело), комментарии (дата, ссылка-на-сообщение, автор, домашняя страница, почтовый ящик, тело).
2) Для каждой сущности там где это необходимо реализованы операции: создание (сообщение, комментарий), чтение (сообщение, комментарий), изменение (сообщение), удаление (сообщение, комментарий).
3) На типичной странице для каждого блока информации (например, блок сообщения) имеются ссылки на операции из п.2
4) Почти все операции реализуются с помощью использовании технологии Ajax (фреймворк - prototype). Подгрузка данных и форм редактирования происходит порционно и в фоне.
5) Поля textarea растягиваются при вводе, что позволяет видеть весь набранный текст целиком.
Ниже изображены скриншоты работающего блога:
Создание нового сообщения
![]() |
| При создании сообщения подгрузилась форма с полями Заголовок и Тело |
Редактирование сообщения
![]() |
| Подгруженная форма заполнена существующими данными |
Представление сообщения (генерируется сообщение и относящиеся к нему комментарии)
![]() |
| Само сообщение и список относящихся к нему комментариев |
Создание комментария
![]() |
| Форма для комментария включает автора, его домашнюю страницу, почту и сам текст комментария |
Какие планы?
Второй технический релиз внесёт новшества в виде: (а) категорий и (б) построения страниц (и блоков) на основе шаблонов. Кроме того в голову пришла мысль о динамической подгрузке более ранних сообщений (которые изначально не видны) внизу страницы: задействуя либо скроллинг, либо какой-нибудь элемент управления. То есть было бы неплохо сделать так: скролишься вниз, а там появляются ранее написанные сообщения (совсем как в Google Reader).
Кому интересно, вот тарбол.




8 комментариев:
Довольно интересно звучит и заманчиво, но с одной стороны это вносит новизну, индивидуальность и поразительность, а с другой, не кажется ли тебе мой друг, что это нагромаздит общую структуру?
Возможно нет, а возможно да, что ж с радостью слежу за развитием проекта.
Не стоит цели сделать что-то навороченное и неповоротливое. Напротив, нужен простой инструмент для постинга сообщений. Отсутствие администраторской части (а по сути её интеграция в конечное представление) облегчает задачу: всего лишь появляются дополнительные ссылки к каждому информационному блоку ("Создать новое сообщение", "Удалить", "Редактировать"). Никакой сложности не видно. Даже на уровне кода всё выглядит просто и последовательно. Scheme - функциональный язык, а структура скрипта такова, что представляет собой сценарий работы: сначала делаем вот это, потом это и т.д. Поэтапность линейная, понятная пятикласснику.
Наверное, 1й увиденный мной блог, где в комментариях нет спама :)
Хорошо пишете. Учились где-то или просто с опытом пришло?
Наткнулся случайно на Ваш блог. Теперь стану постоянно просматривать. Надеюсь, не разочаруете и дальше :)
Наткнулся случайно на Ваш блог. Теперь стану постоянно просматривать. Надеюсь, не разочаруете и дальше :)
Круто. И не поспоришь ведь :)
У меня одного какие-то проблемы с кодировкой в комментариях? Вместо ответов - одни знаки "?"
Отправить комментарий