![]() |
![]() |
![]() |
|
OFF: Архитектура движка Mista Engine 2.0 | ☑ | ||
---|---|---|---|---|
0
Волшебник
03.03.10
✎
12:01
|
Предлагается обсудить архитектуру нового движка форума.
Пока остановились на трёхслойной архитектуре MVC (Model - View - Controller). Обсуждаем изолированность слоёв, интерфейсы классов. Платформа: язык PHP 5, веб-сервер Apache 2, СУБД MySQL 5. Присоединяйтесь к обсуждению. Книга знаний: Mista Engine 2. Документация движка Книга знаний: Mista Engine 2. Тем, кто хочет принять участие |
|||
1
Волшебник
03.03.10
✎
12:02
|
ещё ссылка: http://ru.wikipedia.org/wiki/MVC
|
|||
2
Дикообразко
03.03.10
✎
12:02
|
ИМХО
не взлетит |
|||
3
Волшебник
03.03.10
✎
12:02
|
(2) Почему?
|
|||
4
Дикообразко
03.03.10
✎
12:03
|
(3) эволюция ... как то естественнее и проще ;)
а о v2 ты уже кажется 2 или 3 года мечтаешь |
|||
5
Aleksey_3
03.03.10
✎
12:05
|
Странно в описании есть классификация "База знаний", а "Книга знаний" нет? КЗ уже не будет?
|
|||
6
acsent
03.03.10
✎
12:05
|
(0) Даже репозитория не открыли. Не взлетит
|
|||
7
CPU0
03.03.10
✎
12:10
|
(0) я бы принял участие, но только в роли отвечаеющего за безопасность исходного кода
|
|||
8
Дикообразко
03.03.10
✎
12:11
|
(7) а кто же ломать то будет, тогда?
|
|||
9
CPU0
03.03.10
✎
12:13
|
(8) смысловая нагрузка, помимо оффтопа, в твоем вопросе какая?
|
|||
10
Волшебник
03.03.10
✎
12:14
|
(4) Мы никуда не торопимся.
(5) с КЗ разговор отдельный. Думаем пока. (6) Открыли уже. (7) Тебя уже посчитали. |
|||
11
Asmody
03.03.10
✎
12:14
|
(6) это дело техники
|
|||
12
Fragster
гуру
03.03.10
✎
12:17
|
я всегда делал так - все классы сами определяют полномочия и предоставляют данные, файлы страниц только выводят данные, запрашивая у классов данные, все запросы и формы идут в один handler.php который уже вызывает методы классов соответствующие запросам
|
|||
13
Ksandr
03.03.10
✎
12:18
|
Готов потестить
|
|||
14
acsent
03.03.10
✎
12:18
|
(11) Да, но даже самы великие дела начинаются с первых шагов. А он пока не сделан
|
|||
15
Ksandr
03.03.10
✎
12:18
|
Ну и юзабилити обсудить))
|
|||
16
acsent
03.03.10
✎
12:20
|
(10) Кто координатор проекта?
|
|||
17
IKSparrow
03.03.10
✎
12:20
|
Отстой.
Не всё простое гениально. Не всё гениальное юзабельно. |
|||
19
Волшебник
03.03.10
✎
12:22
|
(12) Это понятно.
Например, файл index.php выглядит так: require_once("Controller.Topics.php"); Controller.Topics::getList(); файл topic.php выглядит так: require_once("Controller.Topics.php"); Controller.Topics::getItem(); |
|||
20
Волшебник
03.03.10
✎
12:23
|
(14) Пройдись по первой ссылке в сабже, там уже создано хранилище и дана инструкция, что поставить, как подключиться.
|
|||
21
Волшебник
03.03.10
✎
12:23
|
(16) Sakura
|
|||
22
Asmody
03.03.10
✎
12:25
|
(20) только в хранилище пока ничего нет :)
|
|||
23
Волшебник
03.03.10
✎
12:27
|
(22) Это уже дело техники. Первый шаг сделан, репозиторий есть.
|
|||
24
Волшебник
03.03.10
✎
12:36
|
Нашёл довольно познавательную статью об архитектуре "Model-View-Controller"
http://www.rsdn.ru/article/patterns/modelviewpresenter.xml |
|||
25
Дикообразко
03.03.10
✎
12:37
|
(9) прямая... взгляд изнутри и снаружи всегда разный
|
|||
26
Волшебник
03.03.10
✎
12:48
|
У нас тут разногласия появились, какой вариант выбрать MVC или MCV:
1. Model-Controller-View View принимает запросы от пользователя и вызывает Контролыча, который вызывает Model. Обратные вызовы запрещены. Преимущества: строгая послойная архитектура. Недостатки: View фактически управляет процессом, хотя по логике это должен делать Контролыч. 2. Model-View-Controller Запросы от пользователя принимает Контролыч, который вызывает Model и Форматыча (View). Архитектура слоёв несколько нарушается, но зато Контролыч действительно рулит. Вам какой вариант больше нравится? |
|||
27
ДРАКОННИК-2
03.03.10
✎
12:50
|
Аш не верится, неужели Стас за эти годы таки изучил PHP?
|
|||
28
Волшебник
03.03.10
✎
12:52
|
(27) Не скажу, что изучил на 100%, но теперь я знаю гораздо больше, чем в 2003 году, когда начинал программировать форум.
|
|||
29
ДРАКОННИК-2
03.03.10
✎
12:53
|
лучшее - враг хорошего (((
|
|||
30
13hero
03.03.10
✎
12:54
|
(0) > Платформа: язык PHP 5, веб-сервер Apache 2, СУБД MySQL 5.
Надо так: язык Python, веб-сервер nginx, СУБД Postgesql. |
|||
31
ЗлобнийМальчик
03.03.10
✎
12:55
|
(26) что значит "обратные вызовы запрещены"? как View узнает что отбражать?
|
|||
32
Волшебник
03.03.10
✎
12:57
|
(30) Кому надо?
(31) В варианте 1 View вызывает Controller и получает от него результат, который отображает. Controller не может вызывать View |
|||
33
13hero
03.03.10
✎
12:58
|
(32) Тому кто хочет создать что-то современное и интересное.
|
|||
34
ЗлобнийМальчик
03.03.10
✎
12:58
|
(32) изменилась модель. Как это будет отбражено во View?
|
|||
35
Волшебник
03.03.10
✎
13:00
|
(34) Тут написано:
Active Model (активная модель) - Модель имеет возможность оповестить Представление о том, что в ней произошли некие изменения, и Представление может эти изменения отобразить. Как правило, механизм оповещения реализуется на основе паттерна Observer (обозреватель), Модель просто бросает сообщение, а Представления, которые заинтересованы в оповещении, подписываются на эти сообщения, что позволяет сохранить независимость Модели как от Контроллера так и от Представления, не нарушая тем самым основного свойства паттерна. Классической реализацией паттерна MVC принято считать версию именно с активной Моделью. |
|||
36
ЗлобнийМальчик
03.03.10
✎
13:04
|
(35) так все таки:
(32) >> В варианте 1 View вызывает Controller и получает от него результат, который отображает или (35)>> Модель просто бросает сообщение, а Представления, которые заинтересованы в оповещении, подписываются на эти сообщения определитесь что ли? |
|||
37
Волшебник
03.03.10
✎
13:14
|
(36) Речь идёт о разных вещах.
В варианте 1 View получает запрос от пользователя (!) и вызывает Controller, который вызывает Model с заданием выбрать свежие данные. Если же требуется автоматически обновлять данные без запроса пользователя (например, автообновление веток на мисте), то View подписывается на событие через Слушателя. Когда произошли изменения в данных Model генерирует событие, которое ловит Слушатель и вызов транслируется в View, заставляя его обновить представление. |
|||
38
Asmody
03.03.10
✎
13:15
|
(34) изменилась в каком смысле? структура поменялась или данные?
|
|||
39
Fragster
гуру
03.03.10
✎
13:16
|
(35) d dt,t 'nj ytghbvtybvj
|
|||
40
Fragster
гуру
03.03.10
✎
13:16
|
(35) в вебе это неприменимо без костылей
|
|||
41
Asmody
03.03.10
✎
13:18
|
(37) [View подписывается на событие через Слушателя] - ой! мы в веб-среде, кто на кого подписывается? вся эта веселая компания живет только во время обработки запроса, потом умирает и вновь возрождается для обработки следующего запроса.
а если делать "подписывается" и "события", то это - асинхронный сервер и апачу с php там делать нечего |
|||
42
DUDE
03.03.10
✎
13:18
|
Классикой проектирования вроде является MVC, именно контроллер определяет вывод (использование того или иного представления) и логику обработки, сваливать это на представление не совсем верно.
Советую книгу "Банды четырех" "паттерны проектирования". http://ru.wikipedia.org/wiki/Образы_разработки (40) Это реализовано в рамках серверов приложений, например, sun application server и подобным. |
|||
43
DUDE
03.03.10
✎
13:19
|
Для веб-приложений на j2ee - mvc - классика.
|
|||
44
Волшебник
03.03.10
✎
13:20
|
(41) Слушатель интегрируется в View (JS-процедура, вызываемая по таймеру). Загруженная страница существует (живёт) на клиенте.
|
|||
45
Fragster
гуру
03.03.10
✎
13:26
|
(42) там постоянное двунаправленное соединение идет... пока websockets тока хромой поддерживается, а через ajax - слишком накладно
|
|||
46
Advan
03.03.10
✎
13:52
|
А может не надо - форум работает при таком потоке очень шустро, грузит мало, имеет немало нестандартных и удобных настроек, и вообще второго такого нет.
А изменения не всегда к лучшему... |
|||
47
Zixxx
03.03.10
✎
13:55
|
(0) Почему PHP а не ASP?
|
|||
48
ERWINS
03.03.10
✎
13:58
|
напиши на 8.2 (улыбка)
|
|||
49
Волшебник
03.03.10
✎
14:01
|
(46) Дело в том, что текущий движок стал неуправляемым. Вносить в него изменения уже не рекомендуется. В одном файле могут встречаться 5 языков: PHP, SQL, JavaScript, HTML, CSS... Оформление идёт вперемешку с программным кодом. Удивительно, что это ещё работает.
Страшные атавизмы уродуют программный код. Например, чтобы всего лишь развернуть текущий движок мисты на другом сайте, нужно постараться. А поменять структуру разделов 1С/IT/LIFE вообще нереально, потому что она зашита в программный код многих модулей. Если миста не хочет застыть в развитии, нужен новый движок. Кроме того, новый движок можно будет легко разворачивать на любом сайте и в Рунете появится много сайтов а ля миста, посвящённых совсем другим темам. |
|||
50
Advan
03.03.10
✎
14:02
|
(49)Первая заповедь программиста - работает - не трож!
|
|||
51
ERWINS
03.03.10
✎
14:03
|
(49) не появится....
движков тысячи.... так почему идея 8.2 не нравится? |
|||
52
Волшебник
03.03.10
✎
14:06
|
(47) Ну это скорее вопрос религии. Для ASP требуется Windows-хостинг, который обычно дороже. Программные продукты закрыты и стоят денег, а в связках типа LAMP все компоненты открыты и бесплатны. Кроме того, можно будет брать какие-то наработки из существующего Mista-движка.
(50) Так и делаем. Разрабатываем новый движок, не трогая текущий. Потом организуем конвертацию базы и вуаля - миста уже на новом движке. (51) Движков тысячи, но мистовский один. Про 8.2: ты лицензии посчитай. |
|||
53
ERWINS
03.03.10
✎
14:08
|
(52) только в этом дело?
|
|||
54
Волшебник
03.03.10
✎
14:12
|
(53) Это основной вопрос, если уж на то пошло. Следующий вопрос - дизайн, потом открытый вопрос с производительностью. На текущей мисте в час пик может быть 100 запросов в секунду. Опять же Windows-хостинг... Глючность платформы, закрытый программный код, зависимость от фирмы "1С" и её релизов.
|
|||
55
Дикообразко
03.03.10
✎
14:15
|
(52).2 не верю
|
|||
56
Дикообразко
03.03.10
✎
14:15
|
+(55) а интерфейс на время переход сохранить будет можно?
|
|||
57
Aswed
03.03.10
✎
14:23
|
В тестеры принимаете?
|
|||
59
AndreyFAN
03.03.10
✎
14:26
|
всегда восхищался людьми, которые между собой профессионально разговаривают о чем-то, что для меня почти "тёмный лес", всегда радуюсь возможности хоть поприсутствовать молча рядом, послушать.
Смотрел код старого движка, получал удовольствие от кусков, которые понял... От комментариев вообще под стол. Вот очередная тема МЦВ и МВЦ... Закладка. Вечером буду "просвещаться" ВР, дерзай. Удачи в перестройке. |
|||
60
kot_bcc
03.03.10
✎
14:27
|
(57) Нечего тестить пока:) Как только появятся первые файлы - репозиторий станет открыт для скачивания без регистраций - тестируйте.
|
|||
61
ERWINS
03.03.10
✎
14:27
|
В тестеры принимаете?.
|
|||
62
Волшебник
03.03.10
✎
14:29
|
(56) Интерфейс планируется точно такой же, может быть с минимальными изменениями. На новом движке пользователь сможет выбрать любимый дизайн из десятков возможных, или даже реализовать свой собственный.
|
|||
63
Волшебник
03.03.10
✎
14:30
|
(59) TOP-10 комментариев из index.php текущего движка мисты
//TODO: хочу избавиться от этого изврата //генерим случайное число (честно, уже не помню зачем) //закомментировано, чтобы не тормозить форум //больше 50 нельзя - вандализм. Поставлю 10 //TODO: перевести на JavaScript. Пусть этой фигней занимается браузер клиента //АТАВИЗМ - неэффективный файловый кэш. Вместо него хорошо работает кэш в виде таблицы типа MEMORY //Шаг влево, шаг вправо - задействовать кеш не получится и придется выбирать ветки из базы //АТАВИЗМ. Когда-то было. Потом убрали //"почти" случайное число - одноразовый пропуск //Непредусмотренный месяц |
|||
64
Aswed
03.03.10
✎
14:31
|
(62) Дай бог свершится такое, и удачи в столь благом деле.
|
|||
65
AndreyFAN
03.03.10
✎
14:32
|
(63) Да, да, я про это!
Ну просто сказка!!! "генерим число, не помню зачем" Улыбает ещё как! |
|||
66
nop
03.03.10
✎
14:33
|
(2) обязано взлететь, модель хорошую выбрали.
|
|||
67
kot_bcc
03.03.10
✎
14:57
|
(41) libevent?
|
|||
68
Asmody
03.03.10
✎
14:58
|
предлагаю вернуться к (26), т.е. к дискуссии об архитектуре. собственно сейчас мы пришли к тому, что рассматривать или нет клиентскую сторону как часть двига или нет.
|
|||
69
Дикообразко
03.03.10
✎
15:00
|
а функция Анти-БД у движка будет?
|
|||
70
Asmody
03.03.10
✎
15:00
|
(67) что libevent? не, если ты возьмешься написать не-браузерного клиента, то это только "за".
|
|||
71
Asmody
03.03.10
✎
15:01
|
(69) если будут идеи как ее реализовать
|
|||
72
Волшебник
03.03.10
✎
15:01
|
(69) Конечно. Движок будет иметь антивандальное исполнение.
|
|||
73
Asmody
03.03.10
✎
15:02
|
(72)+ из титанового сплава
|
|||
74
kot_bcc
03.03.10
✎
15:18
|
+(73) с наполнением стружкой обеднённого урана
|
|||
75
kot_bcc
03.03.10
✎
15:37
|
(68) А смысл спорить, если есть хороший компромиссный вариант? Я хоть и был виновником самого спора - спорил только формально. Для вящей завязки, так сказать:)
|
|||
76
Волшебник
03.03.10
✎
16:10
|
(68) Если мы некоторые фичи делаем через AJAX, то рассматриваем. Хочется часть нагрузки переложить на клиента, чтобы обеспечить удобства для пользователей (минимум перезагрузок страницы целиком), минимизировать нагрузку на сервер. Делать это нужно очень осторожно в связи с зоопарком клиентских браузеров и клиентских устройств.
|
|||
77
kot_bcc
03.03.10
✎
17:45
|
+(75) Я, собсно, забыл компромисс обрисовать. Компромисс такой:
1. Разработка ведётся в рамках модели MVC 2. В рамках MVC из желательных в обязательные требования переносится выдача результатов в форматах (не важно, каких именно, можно зараннее выбрать один) XML. 3. Аналогично п.2 для json-строк 4. При наличии потребностей и возможностей (грубо - если кому надо будет) - отдельным подпроектом разрабатывается RIA, использующее п.2 и п.3. Необязательно полностью новое, то есть эти возможности можно будет, например, встраивать и в стандартный вывод MVC (html). 5. Волки сыты. 6. Овцы целы. |
|||
78
Волшебник
03.03.10
✎
17:47
|
(77) Я за.
|
|||
79
acsent
03.03.10
✎
17:48
|
(76) Надеюсь поддерживать IE6 не собираетесь?
|
|||
80
kot_bcc
03.03.10
✎
17:57
|
Была недавно статистика по мисте от ВР. IE от 4 до 9:) Это судьба:)
|
|||
81
Волшебник
03.03.10
✎
17:59
|
(80) Предлагаю написать так. Движок форума рассчитан на последние официальные стабильные версии браузеров. Предыдущие версии браузеров не поддерживаются.
|
|||
82
Лефмихалыч
03.03.10
✎
18:00
|
(4) еще как взлетит - у пучка костылей единственная возможная эволюция = снести всё нафиг и переписать правильно. (63) - тому ярчайшее доказательство
|
|||
83
kot_bcc
03.03.10
✎
18:22
|
(81) Даже не знаю, куда бы это написать, и как быть с тем обидным фактом, что у браузеров (за исключением нетскейпа) пока еще нет _последних_ версий:)
ЗЫ Раздел требований в Книга знаний: Mista Engine 2. Документация движка уже соответствует итогам сегодняшней дискуссии:) |
|||
84
Волшебник
03.03.10
✎
18:28
|
(83) Последние на данный момент, т.е. текущие. Или такие версии, которые по умолчанию предлагаются для скачивания на официальной странице браузера компании-разработчика.
|
|||
85
Снежный человек
03.03.10
✎
18:33
|
Волшебник, исправь глюки в пда интерфейсе. Матвеев тебе список давал.
|
|||
86
Волшебник
03.03.10
✎
18:45
|
Internet Explorer 8
http://www.microsoft.com/rus/windows/internet-explorer/ Mozilla Firefox 3.6 http://www.mozilla-europe.org/ru/firefox/ Opera 10.50 http://www.opera.com/ Apple Safari 4 http://www.apple.com/ru/safari/download/ Google Chrome 4 http://www.google.ru/chrome |
|||
87
Волшебник
03.03.10
✎
18:45
|
(85) Не горит
|
|||
88
КапЛей
03.03.10
✎
19:00
|
что из этого выйдет? покажите пример!
|
|||
89
Волшебник
03.03.10
✎
19:06
|
(88) Вот тут есть пример: http://www.forum.mista.ru
|
|||
90
Генератор
03.03.10
✎
19:14
|
а фреймворки будут использоваться? мне например symfony понравился, недавно ознакомился на досуге
|
|||
91
КапЛей
03.03.10
✎
19:16
|
(89) баян... не очень впечатляет...
|
|||
92
Прыгун
03.03.10
✎
19:17
|
Сакура вроде и дубу движок форума писать собралась. Не разорвется то?
|
|||
93
b_ru
03.03.10
✎
19:41
|
vBulletin, smf такие прекрасные форумные скрипты...
|
|||
94
kot_bcc
03.03.10
✎
19:45
|
(90) собсно, Zend MVC Framework - ближе некуда к PHP-то. Только это лирика. Фреймворки - штука, по обыкновению, тяжеловесная. Во всех смыслах. Задача не настолько двадцатидвухсантиметрова, чтобы использовать фреймворки. Насколько я понял предыдущие выступления, конечно:)
|
|||
95
Волшебник
03.03.10
✎
20:37
|
(92) У неё личный интерес.
(93) И такие баянистые... Уже весь интернет на подобных движках. Тошнит... |
|||
96
Advan
03.03.10
✎
21:51
|
(81)Частенько от клиентов выходишь - а там такой зоопарк...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |