Найти - Пользователи
Полная версия: Использование компонентной архитектуры в Джанго
Начало » Django » Использование компонентной архитектуры в Джанго
1 2
regall
Где-то видел статью по этому поводу (точнее по импользованию zope - адаптеров в джанге)… Страдал ли кто-нибудь такими извращениям, и если да - поделитесь опытом, возможно кусками кода, или еще чем-то, думаю многим тут будет интересно, тем более что такой подход может (естественно при пряморуком подходе) значительно увеличить гибкость приложения.

P. S. Нашел:
http://www.stereoplex.com/two-voices/adapters-in-django-and-the-revenge-of-zope
Александр Кошелев
Так что её использовать-то - компоненты=приложения. Вот и всё!
regall
Daevaorn
Так что её использовать-то - компоненты=приложения. Вот и всё!
Не согласен.
У приложений нет интерфейса (или другого протокола), по которым они взаимодействуют между собой, соответственно, они - не компоненты, и Джанго - это не компонентный фреймворк.

Советую почитать статью, линк на которую оставил выше + меня поймут люди, которые работали с Zope3.
Ferroman
Унифицированного протокола обмена между приложениями нету конечно, у каждого свой.
Я думаю, для джанги такой подход слишком … грубый, что ли. Зачем ещё одна абстракция.
regall
Ferroman
Зачем ещё одна абстракция.
А какие еще есть абстракции?

Может это только первое впечатление, но для меня пока Джанго - это крутая надстройка над CGI ( тут имею в виду саму архитектуру фреймворка и приложений, которые в нем пишуццо, этого и следовало ожидать, судя по истории его создания…), а насчет интерфейсов, то это очень упрощает работу, даже без доков можно подсмотреть в интерфейс и увидеть, что компонент позволяет делать, имхо django-app лишены этого удобства, кроме этого интерфейсы позволяют сделать полную (или на 99.9%) независимость компонентов, тогда как без них полной независимости не добиться, хотя в этом плане я, наверное, слишком дотошный (зоуп сказывается на объективности наверное…)
Александр Кошелев
regall
Не согласен.
У приложений нет интерфейса (или другого протокола), по которым они взаимодействуют между собой, соответственно, они - не компоненты, и Джанго - это не компонентный фреймворк.
Сделайте шаг назад. И попробуйте абстрагироваться от Zope.

Реализация компонентной архитектуры в Zope это всего лишь одна из возможных реализаций компонентной архитектура на некотором уровне детализации. Но подобных реализаций может быть сколь угодно много на разном уровне.

Сделайте пару шагов назад и посмотрите шире на сам питон. Его модули это компоненты, язык и интерпретатор это протокол и транспорт. Они взаимодействуют, подчиняясь общим законам принятым в этом языке.

Теперь шаг вперед. Джанговские приложения это в первую очередь питонячьи модули, а значит уже компоненты и для них справедливо всё что сказано выше. Плюс они чуть сужают протокол взаимодействия, предоставляя надстройки в виде кода фреймворка и его правил. Внутри этой подсистемы живут ещё дополнительные протоколы и транспорты в виде различных DSL и интерфейсов взаимодействия.

Так что утверждения что Джнага не компонентный фреймворк ошибочно. Она не такая компонентная как Zope - безусловно, но компонентная по своему. И в этой экосистеме вполне есть место независимым компонентам-приложениям и их взаимодействию.

regall
(зоуп сказывается на объективности наверное…)
Ага - Zope головного мозга!;-)
regall
Daevaorn
подобных реализаций может быть сколь угодно много на разном уровне.
Безусловно
Daevaorn
Его модули это компоненты, язык и интерпретатор это протокол и транспорт.
Ну, тут не согласен, так можно сказать обо всем, что ножка - компонент табуретки, по-моему, не очень удачное сравнение, но мысль как бы уловил =)
Daevaorn
Так что утверждения что Джнага не компонентный фреймворк ошибочно. Она не такая компонентная как Zope - безусловно, но компонентная по своему.
То есть исходя из “сделайте пару шагов назад…” приложение , скажем CGI: helloworld.php (или -py), да, в общем-то любое - тоже компонентная архитектура?

P.S. Daevaorn, чисто из интереса, вы работали с Zope 3 или хотя бы с zope.interface, zope.component?
Александр Кошелев
regall
что ножка - компонент табуретки,
О_о а что нет?
regall
То есть исходя из “сделайте пару шагов назад…” приложение , скажем CGI: helloworld.php (или -py), да, в общем-то любое - тоже компонентная архитектура?
На одном из уровней - да.
regall
P.S. Daevaorn, чисто из интереса, вы работали с Zope 3 или хотя бы с zope.interface, zope.component?
Именно zope.interface был раскурен и выброшен.
Сам Zope был раскурен ещё и проиграл Джанге.
regall
Daevaorn
Сам Zope был раскурен ещё и проиграл Джанге.
Можно спросить чем же он проиграл (100% людей, которых я лично знаю, ну, хото их не так и много, отбросили Zope3 только из-за того что не осилили…) ?
Daevaorn
На одном из уровней - да.
Интересное мнение, но мы тут программируем, а не философствуем - и CGI - это не компонентная архитектура (не думал, что такое вообще может вызвать спор вообще…)
Александр Кошелев
regall
Можно спросить чем же он проиграл (100% людей, которых я лично знаю, ну, хото их не так и много, отбросили Zope3 только из-за того что не осилили…) ?
Так названием же - это очевидно! “Наш проект сделан на… Зопе” - ROFL
regall
не думал, что такое вообще может вызвать спор вообще…
Видимо из-за ограниченности сознания рамками одной технологии.

Мне изначально не понравился вот этот посыл:
regall
тем более что такой подход может (естественно при пряморуком подходе) значительно увеличить гибкость приложения.
отсюда и флейм небольшой.
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