magog
14.04.2012 08:11 Azoth
Вот что я Вам скажу — архитектура личкрафтов охуенна и пиздата.
Recommended by:
@rapture,
@0xd34df00d
Пора переходить на следующий уровень. Спроектируйте ОС, например
еще DE не допроектировали
да, точно, DE — это как раз то, что нужно для следующего шага
блять, расскажите мне, что в ней такого охуенного
PEESDEESH :3
она очень гибка и легкорасширяемая.
а как устроена?
что именно тебя интересует?
Небольшое ядро с загрузчиком плагинов. Само ядро тоже является плагином для самого себя, но я не смотрел зачем так сделано. Вся функциональность вынесена в плагины, которых 2 уровня. На первом уровне плагины большие, например браузей или im клиент. На втором уровне плагины для больших плагинов. Тоесть плагины ДЛЯ браузера, ДЛЯ im клиента итд.
немного не так. Не 2 уровня плагинов, а N. Например есть плагин poshuku. У него есть плагин OnlineBookmarks, у которого есть 2 плагина ReadItLater и Delicious. И так можно до бесконечности продолжать
Что в ней хорошего? Можно плагинами расширять систему сколько душе угодно. Всё отделенО и слабо связано друг с другом. Считается, что именно на это все и дрочат, как я понимаю.
Окей. Я предполагал, что можно до бесконечности, но дальше второго уровня в исходниках не ходил.
ядро, сделано плагином, как я понимаю, для того, что бы его можно было добавить в общий пул плагинов и обрабатывать вместе без дублирования кода. Но это как я понял. Вероятно все куда интереснее
В комментах в исходниках(которых мало) написано, что так сделано для удобство, типа так в итоге проще, но для чего конкретно хз, не копал.
ну, значит думаю, что я прав
fix: В комментах(которых мало) в исходниках написано...
я так вброшу потихоньку: и это все? к чему это приводит на деле? к тому что можно зарегистрировать плагин? и еще плагин? и плагин для плагина и он будет в том же пространстве (как я видел в коде, Leechcraft::Plugin или типа того)?
ABI/API для плагинов с целью модификации стандартных компонент, IPC для плагинов? Система загрузки, в том числе загрузка/выгрузка на лету? Система безопасности?
не поверю, что нихуя нет. дедфуд не мог так облажаться.
дефайе 1, второе есть, хоть пока плагины и не в разных процессах. ПОКА!, загрузки/выгрузки на лету не будет в полном смысле этого слова, Дефайн последнее
Плагинов не два уровня, а произвольное число уровней, лю6ой плагин может 6ыть плагином к лю6ому числу других и иметь произвольное число плагинов. Ядро плагин для се6я для о6щности.
Ты прав.
мимими
ок. мне уже тут пояснили
Уточни вопрос, и6о ты процитировал название неймспейса, лол. IPC делается плагином, плагины могут предоставлять другие плагины — так сделана поддержка скриптинга, например. Там же экспериментальный хотлоад плагинов.
Ок, собственно, неймспейс и есть пространство, есть какие-нибудь стандартные API для плагина, типа стандартные апи настроек, вывода уведомлений и т.д.? Может быть плагин плагином для 2х и более плагинов одновременно, либо импортировать их функции иным образом?
И да, пример чего-нибудь DONOTWANT в реализациях систем плагинов можно? (кроме квипа, ага)
кутим...
блять, сходи к проктологу уже.
ты спросил — я ответил. Что тебе еще не нравится? У них дерьмовая реализация плагиноой архитектуры с необходимостью переименовывать либы для правильной загрузки или проходить их все по циклу, пока все не загрузятся
ой, это же раптуре.
Лол, неймспейс тут в смысле плюсов, глупо на это рассчитывать. Стандартные апи есть, в том числе, для уведомлений, для хранения паролей, для импорта истории (импортер истории в азотх ничего не знает о6 азотхе), и так далее. Плагин может 6ыть плагином сразу кучи плагинов, импорт функций реализован немного смоллтолк-стайл — передачей соо6щений (через это же сделан api настроек и прочего говно).
пользователям и разрабам похуй, как ты уже понял. про переименование можно подробнее? это ты про то, что они реализуют загрузку по алфавитному названию библиотеки?
а хуки? то есть я могу сторонним плагином переопределить поведение стандартного? примеры е?
pintab плагин
> проходить их все по циклу, пока все не загрузятся
хм, как по мне, нормальное решение, разве нет?
нормально. 100 плагино УЖЕ. Сколько итерации в худшем случае? А когда их будет 200?
он в поведении ни разу не противопоставляется стандартному поведению вкладок. просто дополняет его действия.
правильнее грузить по зависимостям, но тогда нужен граф.
а что ты хочешь тогда вообще? Можешь обрисовать юзкейз?
а кое-кто графы не осилили...
количество итераций равно максимальному уровню вложенности +1
при условии отсутствия линкования между плагинами
ну если rapture-характерный пример, плагин для перехвата паролей во время их сохранения в secman
и что тут отличного от пинтаба? Сделай хук в секмане и перехватывай.
меня больше волнует хреноватая система хранения паролей с солью прям в исходниках и sha1 :)
я могу это сделать во внешнем плагине?
добавь хук в секман и делай. Без хука в секмане это нельзя сделать. Хотя, можно попробовать другим способом. Попробовать перехватить запрос на сохранение пароля. Но не знаю — получится ли
то есть стандартных хуков нет? или это просто частный случай?
хуки делаются в плагинах. Если его там нету — то нету. Добавишь — будет. Хуков для пинтаба не было, пока я их не добавил.
Не понял
Допустим, есть такая система:
A
B
C требует A и B
D требует A
E требует C ←- это и есть линкование между плагинами?
F требует чего-то левого, чего никогда не будет
максимальный уровень вложенности === 3
проход №1: загружаем A и B (в худшем случае)
№2: C, D
№3: E
№4: ничего нового не загрузили, вышли
Так?
Ок. Смотри тогда такой кейс: плагин с улучшением оформления. Чтоб не зарываться, пока 2 задачи — заменить стандартную боянскую лоад-картинку и поменять оформление вкладок. Для этого надо
1. успеть загрузиться первым — поддерживается ли порядок загрузки
2. перехватить вызов отрисовки картинки — ?
3. перехватить отрисовку главного окна (или табов)
4. переопределить стандартные вызовы типа "закрыть вкладку" (это уже для изъебов типа анимации закрытия кладки или превьюшке страниц при расширении области вкладок аля опера)
Поддерживается?
нет конечно. Я же тебе говорю — нужен хук — берешь и реализуешь. Благо это занимает 3 строчки кода. Мы не можем написать хуки на все юзкейсы, которые возможно. Мы их пишем, когда они нам нужны.
Лол, неймспейс тут в смысле плюсов, глупо на это рассчитывать. Стандартные апи есть, в том числе, для уведомлений, для хранения паролей, для импорта истории (импортер истории в азотх ничего не знает о6 азотхе), и так далее. Лучше рассматривать их как контракты взаимодействия, дыа. Плагин может 6ыть плагином сразу кучи плагинов, импорт функций реализован немного смоллтолк-стайл — передачей соо6щений (через это же сделан api импорта/уведомлений и прочее говно).
ты чего?
Лол, неймспейс тут в смысле плюсов, глупо на это рассчитывать. Стандартные апи есть, в том числе, для уведомлений, для хранения паролей, для импорта истории (импортер истории в азотх ничего не знает о6 азотхе), и так далее. Лучше рассматривать их как контракты взаимодействия, дыа. Плагин может 6ыть плагином сразу кучи плагинов, импорт функций реализован немного смоллтолк-стайл — передачей соо6щений (через это же сделан api импорта/уведомлений и прочее говно).
блядь, да ты заебал. Выброси нахуй свой говнодроед
У меня тригэ про6лемы.
Личкрафтам похуй на пользователец :3
Пстоплагин, сайд6ар, флеш6лок, тысячи их.
Пиздец же, съе6и.
100 * 99.
А графы они ниасилили.
Лоад-картинка до плагинов, не получится. Отрисовка вполне перехватывается, хуки на закрытие есть.
Есть альтернативное aes-хранилище.
А чо, срачика не 6удет?
адын раз при загрузке
Почините мне скроллинг уже ._.
это хуево, чтото вне плагинов, блеать. и порядка загрузки тоже нет
Кстати, сплэш-скрин, конечно, обалденный, но реквестирую возможность его отключать.
Угнич дохуя?
сейчас ты станешь первым в истории пользователем, которого забанят в личкрафтах, включая пстоплагин.
лол
орхитектура не нужна же
как земля
толсто
пиздец какой
это приводит к бесконечно-рекурсивному сжиранию памяти, очевидно же
Какая разница, какой порядок загрузки? Важнее порядок инициализации, которая у нас двух-с-половиной-проходная.
рекурсивная бесконечность это охуенно
Нет, но популярность не является приоритетным таском. В этом смысле.
Нет, не станет :(
памяти на пека тоже произвольное кол-во, ага ;-)
уже второй?
Первый и единственный — Лях. Впрочем, он вообще везде забанен.
в текущем состоянии она в любом случае, даже приоритетном, никак не может быть
м, так вот куда мы съезжаем!
Скандалы, интриги, расследования! Дедфуд использует личкрафты как инструмент личной мести и банит в них людей! УГНИЧШОК!
http://www.gamedev.ru/community/gamedev_...
поешь её
Лол, почему же?
Совсем спермы объелся шоле?
Приветик.
Пруф в виде UML-диаграммы или пиздишь.
UML уг