Найти - Пользователи
Полная версия: Делаем плагины на Python
Начало » Python для экспертов » Делаем плагины на Python
1 2
j2a
У Андрея Светлова среди питонистов скоро будет репутация Брюса Шнайера :) Человека, умеющего выразить в словах то, что вроде как и известно или подразумевается, да никто не озвучил пока вслух… :) ППКС.
Jenyay
Спасибо за отзывы, ясно куда копать дальше.
j2a
Jenyay, пиши еще :)
bialix
по моему мнению при описании плагинов всегда (по большей мере) сосредотачиваются на том как их загрузить, иногда как запустить. Мне так кажется что пропускается главный вопрос: вопрос архитекутры. Как построить пограмму, которая будет допусать расширение самой себя при помощи плагинов? Вот отсюда надо копать. Как загрузить плагин – это ИМХО просто дело филигранной техники. Вопрос архитектуры более фундаментален. ИМХО ИМХО ИМХО.
bialix
да и еще забыл добавить: иногда программисты забывают, то при первом импорте модуля его тело исполняется. Именно эта особенность использована в системе плагинов Базара. Каждый плагин при загрузке исполняется и тем самым имеет возможность инициализировать себя и включить свои функции в работающую систему. Магия с автонахождением классов производных от нужных классов не используется, потому что плагин делает это явно.

Т.е. имеем два подхода к подключению плагинов: неявный (автонахождение классов) и явный (когда плагин сам декларирует как в яйцах свои возможности либо напрямую дергает функции из главной программы для регистрации своих фич как в Базаре).
Андрей Светлов
Явный лучше - import this, пункт 2.

Самый сложный вопрос в плагинах, конечно же - зачем их создавать.
Не “вообще”, а для данной конкретной системы.
И, конечно, на это этапе правильная архитектура системы - основополагающая вещь
balu
Андрей Светлов
Самый сложный вопрос в плагинах, конечно же - зачем их создавать.
У меня для реализации либо нестандартной бизнес-логики либо для построения ГУИ тут - http://python.com.ua/forum/viewtopic.php?pid=11397#p11397 сообщение №33.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB