Полезная информация

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№101-10-2011 18:21:30

tenshi
Участник
 
Группа: Members
Зарегистрирован: 30-03-2008
Сообщений: 47
UA: Chrome 13.0

фреймворки для разработки расширений | тизер fenix

я тут потыкался по интернетам и не нашёл ничего приличного на эту тему.
есть нативные ручки. доступные через Components, но они настолько низкоуровневые и кривые, что приходится писать тучу кода, обильно сдабривая её костылями.
есть набор библиотек доступный из resource:/gre/modules/ - они конечно сильно упрощают работу, но их разношёрстный (от ооп, до процедурщины) апи не слишком  удобен.
есть попытка создать что-то высокоуровневое под названием FUEL ( https://developer.mozilla.org/en/FUEL ), но его апи весьма бедно и сильно специфично.

есть ещё что-то что я пропустил и что стоило бы внимания?

спрашиваю я это потому что разрабатываю свой и меня сильно печалит отсутствие достойных конкурентов ._."

из интересных фич моего фреймворка могу отметить:

1. лёгкость подключения. подключаем специальный модуль и он создаёт всё необходимое окружение. не нужно объявлять никакие EXPORTED_SYMBOLS - просто объявляем глобальный объект с именем модуля и всё.

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

3. упрощение работы с низкоуровневым апи. весь функционал фф покрыть высокоуровневым апи нереально, поэтому важно иметь простые ручки для работы с низким уровнем.

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

5. активно используются "обёртки", скрывающие внутри себя костыли для нативного апи и предоставляющие более простой и мощный интерфейс работы со стандартными объектами.

6. автопривязка методов к объекту (созданному через спец фабрику). не надо беспокоиться о передаче правильного контекста - просто берём у объекта метод и передаём в качестве колбэка куда угодно.

пока что это всё на стадии эксперимента, никакой документации и тестов, но если кто-то захочет пощупать у себя, то нужно просто положить сорцы себе в расширение и далее действовать по инструкции: https://github.com/nin-jin/fenix/blob/master/chrome.manifest

Отредактировано tenshi (01-10-2011 18:22:51)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]