Анонс: Signalsy Platform Framework (open source)… coming soon!
Приветствую читателей моего блога. Позволю себе сделать небольшой анонс. В последнее время я работаю над достаточно большим проектом, игровой он-лайн платформой для разработчиков браузерных игр AGPsource Game Platform (кстати, проект открытый, присоединяйтесь, уже вышла версия 3.1). Разработка достаточно интересная и нетривиальная в архитектурном плане. Попробовав ее в реальных условиях, в том числе и под достаточной нагрузкой (например, мы сделали на нем одно приложение для сети вКонтакте, пока там 20 тыс. пользователей, но их количество увеличивается постоянно), мы поняли, что архитектура достаточно хорошая. Но движок, конечно, проект большой и сложный, попробовав применить его в других проектах, не очень игровых, стало ясно, что требуется все то же, но более легкое, простое и быстрое. Да и хотелось внести кое-какие изменения в основу проекта, переделать узкие места.
Так родился наш второй проект - Signalsy Platform Framework. Вкратце - это небольшая и гибкая платформа для разработки и поддержки веб-проектов, основанная на сигнальной (Signal/Slot, но, конечно, модифицированной, о реализации в библиотеке ezComponents мы уже писали) архитектуре. Похоже, мы первые в мире, кто сделал подобное для веб-а! Внутри, кроме нашего небольшого набора базовых компонент, лежит Zend Framework, так что разрабатывать можно с учетом всех его возможностей. По сути, это замена традиционной модели MVC (как ее понимают в ZF), но внутри, в компонентах и логике конкретного приложения, конечно, можно придерживаться любых паттернов и приемов построения архитектуры. Signalsy лишь заменяет слой обработки URL и добавляет возможности Signal/Slot-архитектуры в ваше веб-приложение.
Вам интересно? Следите за анонсами, читатели блога первыми узнают все подробности проекта. Мы также открыты для заинтересованых разработчиков - для сообщества вместе с анонсом будет открыт специальный портал для взаимодействия. Подробности будут в течении нескольких дней...
Сделайте нормальную браузерную игру по НАРУТО! Пожалуйста! У людей куча идей, а знаний нет. Если что, с идеей помочь могу не только я, но и куча фанов, да и вы на таком брэнде сделаете кучу денег!
Здравствуйте, Александр.
Довольно таки давно являюсь подписчиком вашего блога и так уж сложилось что в данный момент занимаюсь как раз разработкой серверной части одного приложения для Вконтакте. Это мой первый опыт работы в этой сфере, поэтому сделал я всё предельно просто — есть набор экшенов, по которым клиентское приложение должно взаимодействовать с сервером (сохранение и получение ранее сохранённых данных, ну и взаимодействие с серверами Вконтакти через так называемые «secure-запросы») — вообщем лажа )) Обработчики экшенов представляют собой набор скриптов лежащих в public_html. Это типа контроллеры. Есть так же набор классов, для взаимодействия с БД — типа модель. Классы модели подключаются в каждом контроллере (скрипте) — вообщем всё предельно просто.
Читая эту статью (а так же эту — http://mmo.wheemplay.com/?p=38… не до конца правда ))) ужаснулся сложности вашего проекта… один ZF известный своей мегаобъёмностью и ООПешностью чего стоит… роутинг… боже, зачем он здесь. Неужели для того чтобы запихать во flash набор ссылок к экшенам нужно использовать роутинг ? Эти ссылки кроме flash-программиста никто никогда не увидит… и вообще фишка типа ЧПУ для меня является весьма сомнительным приемуществом — типа её проще запомнить… http://lekarna.ru/2009/08/13/evolyucioniruet-li-nash-mozg/ — запомните такое ? ))
Хотя ладно, это всё лирика и я так сказать пришёл с миром (т.е. не с критикой). Меня собственно заинтересовала технология Signal/Slot (очень похоже, как мне кажется на паттерн Observer).
Что даёт эта технология ? Есть ли явные приемущества (именно технологии) по сравнению с моей реализацией (возможно она примитивна, и я узнаю об этом позже, если проект разойдётся))) ? Каковы показатели производительности вашего фреймворка, вы считаете их приемлемыми (хотя возможно вопрос риторический, ведь вы обеспечиваете ему коммерческую поддержку) ?
Александр — по описанию конечно процесс достаточно большой, но в реальности (а исходный код можно посмотреть) все достаточно просто и очень даже быстро, а текущий фреймворк так еще быстрее. Громоздкость ZF здесь также почти не играет роли — в нем громоздки, по сути, только два компонента — MVC и формы, обоих мы не используем, наша прослойка очень небольшая, в последней разработки мы используем еще кеширование активно, так что сейчас, по первых тестах (обратите внимание, что это пока только 0.1 версия для разработчиков) самым громоздким является подключение и инициализациия отладочного лога в FirePHP — если убрать, то подключаются всего несколько файлов — кеш, регистри и лоадер (даже от конфига отказались). Поверьте, быстро, впрочем, сможете попробовать сами скоро.
Все же, за гибкость и расширяемость надо платить, но, к примеру, система IDS берет больше ресурсов, чем все остальное. Нам главное, что архитектура стандартизирована и ее можно произвольно менять, не затрагивая приложение — флеш-часть писал другой разработчик, который только раз получил URL и форматы данных.
Кстати, сходство с обсервером достаточно призрачное, хотя что-то есть наверное, в самом коде только синглтон используется. Я хотел релизить сегодня проект, но ночью вспомнил про одну сложность с «большим братом», движком, и решил добавить поддержку мета-сигналов — чтобы не писать для множества url одинаковые наборы сигналов.
P.S. Кстати, сигнальная архитектура как раз вызов сложности и монструозности компонентов, так как позволяет инициализировать каждый раз только то, что вам необходимо, не трогая больше ничего.
P.P.S. Кстати, будет три версии: просто фреймворк, дополнительно набор системных сигналов типичных (типа кеширование, сессии — все через ZF, только обернуто) и Signalsy Application server — это уже для самых сложных и нагруженных проектов, по сути интеграция FastCGI и нашей платформы. И, если все пойдет, потом будет наоброт, наш игровой проект мигрирует на Signalsy, хотя сейчас мы «младшие» по отношению к игровой разработке.
Ок, спасибо. А где можно посмотреть исходники ?.. или ещё не выкладавали ?
> Похоже, мы первые в мире, кто сделал подобное для веб-а!
Поспешил с этим, по моему 🙂 Я же тебе показывал то что уже больше чем полгода назад сделал, сигнал/слот фреймворк + магазин простенький на нем 🙂 Да да, для веба 🙂
@slik
slik — да показывал, да и думаю многие писали — а кто оформил в виде фреймворка и есть открытый проект, документация и т.п. У нас есть продукт, а не только концепция. да и идеологически у нас разных подход совсем, судя по нашему обсуждению, хотя, конечно, концепция сигналов/слотов одна (идея скорее). Пока есть только компонент сигналов в ezComponents, есть наметки по похожему подходу и проект kargo-event, а также компонент для РНР работающий как враппер для libevent (кстати, планирую посмотреть его), ну и модуль в PEAR, но что-то он заброшен вроде.
если бы не переезд мой, выложили бы уже, так пока некоторые задержки с проектом, но скоро ожидается его анонс