Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проект умер? или ошибаюсь... 
:(
    Опции темы
ImamMahdi
Дата 15.2.2008, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Я так понимаю, проект умер? Уж больно много времени прошло с момента заморозки разработки...
Может продолжим? Хотя бы обсуждение. Я почитал темы и нашел много пищи для размышлений, но также нашел один большой изъян - практически ни одна тема не имеет логического заверщения :(
PM MAIL   Вверх
Medved
Дата 16.2.2008, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: нет
Всего: 154



продолжай


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Wowa
Дата 16.2.2008, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Продолжать можно. Если разработка снова начнется, то я поддержку.
PM WWW   Вверх
Wowa
Дата 17.2.2008, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Я поместил новость о разработке на http://devnews.ru
PM WWW   Вверх
EsAlexey
Дата 17.2.2008, 13:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.5.2006
Где: Москва

Репутация: 2
Всего: 3



Я сейчас занимаюсь созданием платформы для сайтов на PHP. Могу внести сюда некоторые свои идеи и помочь с разработкой. Моя система основана на описании данных, моделей и отображений с помощью XML. Функциональность подключается с помощью процедур и классов PHP. Главными идеями являются: устранение лишнего PHP-кода, поддержка шаблонов для верстки и облегчение работы с базой данных. Сейчас я веду разработку платформы на основе потребностей при создании интернет-форума.

Платформа строится на основе модели "данные-логика-отображение". Слой данных позволяет удобно описывать структуру базы данных и запросы к ней, в том числе гигантские JOINы. Слой логики описывает  принципы работы пользователя с сайтом: преобразования данных, команды и обработку ввода. Слой отображения строится на основе XHTML, который расширяется специальными тегами и атрибутами для шаблонизации, доступа к данным и вызова команд.

Пример слоя данных (простая таблица в MySQL):
Код

<table name="Forums" plugin="MySqlTable" userinfo="Таблица форумов">
    <field name="id" type="usmallint" primary="autoincrement" userinfo="Идентификатор форума" />
    <field name="idCategory" type="usmallint" userinfo="Идентификатор категории-владельца" />
    <field name="Number" type="utinyint" null="true" userinfo="Номер для сортировки" />
    <field name="Name" type="uvarchar:30" userinfo="Название форума" />
    <field name="Info" type="uvarchar:250" null="true" userinfo="Описание форума" />
    <field name="Visits" type="uint" default="0" userinfo="Сумма посещаемости по всем темам" />
    <index type="unique">
        <field name="idCategory" />
        <field name="Number" />
    </index>
</table>


Пример слоя отображения (главный шаблон сайта):
Код

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dlv="http://works.esalexey.ru/dlv">
<head><title><dlv:block name="Title" /></title></head>
<body>
<dlv:if cond="Session.Member != null">
    <div id="MemberInfoBlock">
    <p>Здравствуйте <dlv:print source="~{Session.Member.Name}" />!</p>
    <p><a href="~{Views.MemberInfo.Url}">Профиль</a> <a href="~{Views.PrivateMessages.Url}">Личные сообщения</a></p>
    </div>
</dlv:if>
<dlv:if cond="Session.Member == null">
    <div id="LoginBlock">
    <form action="~{Commands.Login.Url}" method="post">
    <p><label for="LoginBlock_Name">Имя:</label><br />
    <input name="Name" id="LoginBlock_Name" type="text" /></p>
    <p><label for="LoginBlock_Pass">Пароль:</label><br />
    <input name="Pass" id="LoginBlock_Pass" type="password" /></p>
    <p><label for="LoginBlock_Auto">Автовход:</label><br />
    <input name="Auto" id="LoginBlock_Auto" type="checkbox" /></p>
    <p><button name="Submit" type="submit" value="Submit">Вход</button></p>
    </form>
    </div>
</dlv:if>
<div id="Body">
<dlv:def-block name="Body" />
</div>
</body>
</html>


Пример слоя отображения (дерево форумов по категориям):
Код

<?xml version="1.0" encoding="UTF-8" ?>
<dlv-view xmlns="http://www.w3.org/1999/xhtml" xmlns:dlv="http://works.esalexey.ru/dlv"
    dlv:use-template="Main" dlv:logic="Forums">
<head></head>
<body>
<dlv:use-block name="Title" value="Дерево форумов" />
<dlv:use-block name="Body">
    <table>
        <thead>
            <tr>
                <td>Название</td>
                <td>Тем</td>
                <td>Сообщений</td>
                <td>Посещений</td>
                <td>Последнее</td>
            </tr>
        </thead>
        <tbody>
            <dlv:for-each list="Categories" as="$Category">
                <tr>
                    <td><img dlv:if="$Category.ImageFile != null" src="~{Images[$Category.ImageFile].Url}" /> <dlv:print
                        source="$Category.Name" /></td>
                    <td><dlv:print source="$Category.Topics" /></td>
                    <td><dlv:print source="$Category.Posts" /></td>
                    <td><dlv:print source="$Category.Visits" /></td>
                    <td></td>
                </tr>
                <dlv:recurse sub-list="$Category.SubCategories" />
                <dlv:for-each list="$Category.Forums" as="$Forum">
                    <tr>
                        <td><a href="~{Views.Topics($Forum.id).Url}"><img dlv:if="$Forum.ImageFile != null"
                            src="~{Images[$Forum.ImageFile].Url}" /><dlv:print source="$Forum.Name" /></a></td>
                        <td><dlv:print source="$Forum.Topics" /></td>
                        <td><dlv:print source="$Forum.Posts" /></td>
                        <td><dlv:print source="$Forum.Visits" /></td>
                        <td><a href="~{Views.Topic($Forum.Last.idTopic, $Forum.Last.idPost).Url}"><dlv:print
                            source="$Forum.Last.Name" /></a></td>
                    </tr>
                </dlv:for-each>
            </dlv:for-each>
        </tbody>
    </table>
</dlv:use-block>
</body>
</html>


В итоге программисты будут разрабатывать слои логики и данных. А дизайнеры будут верстать слой отображения без необходимости в умении программировать, при этом имея полный контроль над XHTML-кодом. Слой отображения чем-то похож на XSLT, но является более мощным средством формирования вывода, а также поддерживает списки, деревья и рекурсию данных.

Мне данная платформа нужна для облегчения и ускорения фриланса по созданию сайтов. Платформа выйдет под свободной лицензией, скорее всего под LGPL. Пока я делаю это один, но мне было бы намного удобнее делать это в сообществе. Если вас интересуют мои идеи, то я буду рад присоединиться к вам.
PM WWW   Вверх
Wowa
Дата 17.2.2008, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(EsAlexey @  17.2.2008,  12:24 Найти цитируемый пост)
Пример слоя данных (простая таблица в MySQL):

такой вид принимают все данные, которые ты достаешь из таблицы? Т.е. данные выбранные из таблиц ты перегоняешь в XML?

Добавлено через 1 минуту и 51 секунду
Цитата(EsAlexey @  17.2.2008,  12:24 Найти цитируемый пост)
Пример слоя отображения (главный шаблон сайта):

Цитата(EsAlexey @  17.2.2008,  12:24 Найти цитируемый пост)
<dlv:if cond="Session.Member == null">

где инициализируется Session.Member ?
PM WWW   Вверх
EsAlexey
Дата 17.2.2008, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 4.5.2006
Где: Москва

Репутация: 2
Всего: 3



Я пока привел только часть примеров XML-описаний, остальное находится в стадии разработки. Слой логики я еще не продумал.

Цитата(Wowa @  17.2.2008,  17:12 Найти цитируемый пост)
такой вид принимают все данные, которые ты достаешь из таблицы? Т.е. данные выбранные из таблиц ты перегоняешь в XML?
Это описание таблицы, а не ее содержание. Данное описание необходимо для повышения удобства проектирования базы данных и усиления контроля за структурой данных. Данные из таблиц будут запрашиваться из БД и читаться по одной записи. В случае деревьев - сразу все дерево будет формироваться в памяти PHP в виде массивов и объектов.

Цитата(Wowa @  17.2.2008,  17:12 Найти цитируемый пост)
где инициализируется Session.Member ? 
Пока не знаю где происходит инициализация, но "Session" это глобальный объект (или ассоциативный массив), а "Member" - объект задаваемый с помощью слоя логики. В итоге эта запись позволяет узнать: есть ли объект "Участник" в текущей сессии пользователя.

Запись "~{Images[$Forum.ImageFile].Url}" расшифровывается так:
1. Images - глобальный ассоциативный массив, где ключом являются имена файлов изображений, а значением является объект класса "Изображение".
2. $Forum - переменная из <dlv:for-each />, она описывается и создается в слое логики.
3. ImageFile - поле объекта $Forum, типа string, содержит путь к файлу изображения относительно корневой директории сайта.
4. Класс "Изображение" предоставляет доступ к гиперссылке на файл, которую генерирует относительно корня сайта (в форме "/images/test.png").

Тег "<dlv:recurse sub-list="$Category.SubCategories" />" позволяет рекурсивно повторить содержимое тега "<dlv:for-each list="Categories" as="$Category">", подставив ему массив $Category.SubCategories. Структуру этого дерева удобнее описать на языке C#:
Код

class Category
{
    public string Name;
    public string ImageFile;
    public int Topics;
    public int Posts;
    public int Visits;
    public Category[] SubCategories;
    public Forum[] Forums;
}

class Forum
{
    public int id;
    public string Name;
    public string ImageFile;
    public int Topics;
    public int Posts;
    public int Visits;
    public LastTopic Last;
}

class LastTopic
{
    public int idTopic; // ключ темы
    public int idPost;  // ключ последнего сообщения темы
    public string Name; // название темы
}

PM WWW   Вверх
Mekras
Дата 18.2.2008, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



А где можно ознакомиться с текущим состоянием проекта?
PM MAIL   Вверх
Wowa
Дата 18.2.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(Mekras @  18.2.2008,  09:50 Найти цитируемый пост)
А где можно ознакомиться с текущим состоянием проекта? 

проект был долгое время заморожен. Поэтому единственное место, где можно ознакомиться - это этот форум.
PM WWW   Вверх
ImamMahdi
Дата 18.2.2008, 13:52 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Wowa, я так понимаю, ты руководитель проекта?
Списки участников и обязаностей я видел, но боюсь что они давно невалидны smile

В чем мне кажется основная ошибка в ходе вашей работы. Я когда начал продвигать свою такую же идею, тоже бросился писать код, верстаться классы и набивать их методами, но через некоторое время понял, что теряю свою же собственную мысль. Что-то забывается, что-то преобретает иной смысл. Если к работе подключается новый человек, то для него большая проблема влиться в работу, так как он ничего не знает о проекте или знает очень мало. 

Я вот тут почитал форум и понял, что не хватает одного скомпонованного, полного описания того, над чем ведется работа. Не нашел, где можно почитать о том, что реализовано, что в процессе, что требует переработки или дополнений. Я думаю стоит начать с формирования доки, описания идеи, а потом уже строчить килобайты кода.

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

Что думаете по поводу сказанного мною?
PM MAIL   Вверх
Wowa
Дата 18.2.2008, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(ImamMahdi @  18.2.2008,  12:52 Найти цитируемый пост)
Wowa, я так понимаю, ты руководитель проекта?

ну, типа, больше вроде некому :(


Цитата(ImamMahdi @  18.2.2008,  12:52 Найти цитируемый пост)
Списки участников и обязаностей я видел, но боюсь что они давно невалидны smile

да, это старые  списки. Невалидные уже.


Цитата(ImamMahdi @  18.2.2008,  12:52 Найти цитируемый пост)
Если к работе подключается новый человек, то для него большая проблема влиться в работу, так как он ничего не знает о проекте или знает очень мало. 

Так и есть.. Но работа пока никакая не ведется, а лишь обсуждаем, что и как делать.



Цитата(ImamMahdi @  18.2.2008,  12:52 Найти цитируемый пост)
Вот и в этой теме сразу напостили листингов, хотя по-моему так никто и не определился, будет ли работа над проектом продолжаться. 

ну, как минимум обмен опытом по разработке движка полезен. Есть много интересных идей. Выльется это в итоге в конечный продукт или нет - покажет время. Хотя хотелось бы.


Цитата(ImamMahdi @  18.2.2008,  12:52 Найти цитируемый пост)
Времени прошло много и кто знает, актуальны ли былые наработки.

актуальны. Ничего толком не изменилось в мире. А когда мы пару лет назад начинали, то как раз задумывали всё и XML, и AJAX и прочее...


PM WWW   Вверх
ImamMahdi
Дата 19.2.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Так может давайте для начала создадим некоторую базу знаний по проекту. Опишем что есть, что в реализации, что только планируется. Сформируем какой-то план утвержденных работ. В общем, нужно подобие ТЗ.

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

Как вы смотрите на это?

Это сообщение отредактировал(а) ImamMahdi - 19.2.2008, 16:10
PM MAIL   Вверх
Sardar
Дата 19.2.2008, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Одной ветки достаточно, топики можно закреплять (по важности) и плюсовать в рейтинг.

Проекту не хватает ясно поставленной цели, отсюда почти не возможно спланировать разработку, метрики и т.д.
Цель поощряется вознаграждением, в простейшем случае деньги, иногда причастность к чему то большому. Иначе цель не цениться и не воспринимается всерьёз.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
ImamMahdi
Дата 19.2.2008, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Цитата

Одной ветки достаточно, топики можно закреплять (по важности) и плюсовать в рейтинг.

Написание такой системы - не разработка гостевой книги. Тем будет очень много, потому как обсуждаться должно все, а иначе снова будет много неясных моментов. Если будет много тем, то как не закрепляй, как не старайся, все равно получится помойка, в которой разобрать что-либо будет крайне проблематично.
PM MAIL   Вверх
solenko
Дата 21.2.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 1
Всего: 67



Действительно очень интерестно было бы оживиь тему. Абсолютно согласенс ImamMahdi в том, что нужно форировать ТЗ. Судя по теме Начало работ небыло даже определенности что пишется. Вроде говорили о фремверке, а начали писать набор билиотек.

Даже если работа не выльется в готовый продукт, пользы будет очень много. Сама разработка архитектуры уже добавит опыта которого, лично мне очень не хватает. Так что предлагаю создать тему "что пишем" и начать определяться. А принятые решения просто выносить в отдельный закрытый закрепленный топик (за неимением лучшего варианта в виде системы управления проектом).

Это сообщение отредактировал(а) solenko - 21.2.2008, 15:44


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Vingrad CMS | Следующая тема »


 




[ Время генерации скрипта: 0.1811 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.