'''Введение в Bluebream''' <> = Обзор = [[http://bluebream.zope.org|BlueBream]] – раньше известный как Zope 3 – фреймворк для веб разработок, написанный на языке программирования Python. Вот несколько особенностей, которые отличают [[http://bluebream.zope.org|BlueBream]] от других Python веб фреймворков. * [[http://bluebream.zope.org|BlueBream]] создан на базе Zope Tool Kit (ZTK), основанном на многолетнем опыте, который успел доказать, что соответствует требованиям к разработке стабильного, масштабируемого ПО. * [[http://bluebream.zope.org|BlueBream]] использует мощную и известную [[http://www.buildout.org|систему сборки]]. * [[http://bluebream.zope.org|BlueBream]] использует Zope Object Database (ZODB) - транзакционную объектную СУБД, которая предоставляет мощный и простой путь к реализации хранения данных. * [[http://bluebream.zope.org|BlueBream]] регистрирует компоненты с помощью Zope Component Markup Language (ZCML) - языка конфигураций, основанного на XML, который предоставляет безграничную гибкость. * [[http://bluebream.zope.org|BlueBream]] также может регистрировать компоненты используя GROK, который заменяет декларативную конфигурацию ZCML на соглашения и объявления в стандартах Python. * [[http://bluebream.zope.org|BlueBream]] обладает компонентной архитектурой Zope (ZCA), которая реализует принцип разделения задач для создания связываемых повторно используемых компонентов (zope.component). * [[http://bluebream.zope.org|BlueBream]] реализует Python Web Server Gateway Interface WSGI используя Paste, !PasteScript, и !PasteDeploy. * [[http://bluebream.zope.org|BlueBream]] содержит число хорошо оттестированных компонентов для обеспечения общих нужд. Среди них: * zope.publisher публикует Python объекты в веб, приделяя внимание совместимости с WSGI * zope.security обеспечивает общий механизм подключаемых политик безопасности * zope.testing и zope.testbrowser предлагают фреймворки для unit- и функционального тестирования * zope.pagetemplate - XHTML-совместимый язык шаблонов * zope.schema - движок схем * zope.formlib - инструмент для автоматической генерации форм [[http://bluebream.zope.org|BlueBream]] - бесплатное программное обеспечение с открытым кодом, которое является собственностью Zope Foundation. [[http://bluebream.zope.org|BlueBream]] выпускается под лицензией [[http://bluebream.zope.org/doc/1.0/glossary.html#term-zope-public-license|Zope Public License]] (BSD-подобная, GPL-совместимая лицензия). = Присоединяйтесь к нашему сообществу = '''Мы приглашаем вас стать частью нашего сообщества!''' Вы можете стать частью нашего сообщества присоединяясь/подписавшись на одну из следующих платформ: * Список рассылки: https://mail.zope.org/mailman/listinfo/bluebream * Twitter: http://twitter.com/bluebream * Блог: http://bluebream.posterous.com * IRC канал: #bluebream at freenode.net * Wiki: http://wiki.zope.org/bluebream * Ohloh.net: https://www.ohloh.net/p/bluebream * Страница PyPI: http://pypi.python.org/pypi/bluebream Сообщество разработчиков [[http://bluebream.zope.org|BlueBream]] - это активное сообщество, которое не только работает над проектом, но и ищет вкладчиков. Вся информация, связанная с разработкой, задокументирована в wiki: http://wiki.zope.org/bluebream/ContributingToBlueBream. Наша цель - предоставить высококачественную бесплатную документацию по [[http://bluebream.zope.org|BlueBream]]. Если вы желаете сделать свой вклад в разработку, исходники этого сайта в формате !RestructuredText (''прим. пер.'' - речь идет о сайте http://bluebream.zope.org) доступны из репозитория zope.org (пожалуйста, замените USERNAME на ваш логин zope.org): {{{ svn co svn+ssh://USERNAME@svn.zope.org/repos/main/bluebream/website }}} Если у вас нет прав выполнять svn commit, пожалуйста ознакомьтесь со следующим документом: [[http://docs.zope.org/developer/becoming-a-contributor.html| как стать вкладчиком]]. Если у вас возникли вопросы, свяжитесь с нами через группу рассылки или irc чат. Мы с удовольствием поможем вам с подачей соглашения вкладчика, которое необходимо для того, чтобы получить доступ к svn. = Краткая историческая сводка = Наша история начинается в 1996 году. Тогда [[http://bluebream.zope.org/doc/1.0/glossary.html#term-jim-fulton|Джим Фултон]] был техническим директором в компании "Digital Creations". В том году на международной Python конференции (IPC) Джим делал доклад о CGI: "Python и программирование в Интернет". Он, считая CGI недостаточно элегантным решением, придумал лучший способ программирования в Интернет на Python. Согласно легенде, Джим изучил CGI летя в самолете на конференцию, и спроектировал [[http://bluebream.zope.org/doc/1.0/glossary.html#term-bobo|Bobo]] по пути домой. Тогда Digital Creations выпустили три открытых Python пакета: [[http://bluebream.zope.org/doc/1.0/glossary.html#term-bobo|Bobo]], Document Template, и Bobopos. Эти пакеты – веб публикатор, движок шаблонов, и объектная база данных стали ядром Principia - коммерческого сервера приложений. В ноябре 1998 года, инвестор Hadar Pedhazur убедил Digital Creations сделать Principia открытым. Эти пакеты развились в компонентны ядра фреймворка Zope 2, а Digital Creations переименовалась в Zope Corporation. С тех пор и Zope пребывал в активной разработке. Он развивался в нескольких направлениях наряду с тем, как сообщество набиралось опыта, продолжая искать баланс между мощностью и простотой использования. В Zope 2 акцент делается на быструю разработку, а компонентная архитектура Zope, которая является основой Zope 3, делает упор на такие свойства как модульность и настраиваемость, которые показали свою успешность а “корпоративных” приложениях, чьими основными требованиями являются гибкость и масштабируемость. Сейчас Zope 3 известен как [[http://bluebream.zope.org|BlueBream]]. Это название вытекает из схожести произношения. Z Object Publishing Environment, читаемый как zope - это название вида рыбы. Blue bream (прим. пер. - ''голубой лещ'') - другое название этого вида. [[http://bluebream.zope.org|BlueBream]] добавляет к ZCA и Buildout хорошую документацию, которая делает разарботку приложений более веселой. Международная команда опытных програмистов постоянно совершенствует компонентны, которые включает в себя [[http://bluebream.zope.org|BlueBream]]. Длительное время, которое приходится потратить на обучение разработке на Zope 3, является излишним в некоторых ситуациях, в то время как в других случаях оно дает выигрыш от использования ZCA. Учитывая это, сообщество Zope выпустило несколько фреймворков на базе ZCA, легких в изучении и применении, которые реализуют Соглашение о конфигурации, скрывая управление ZCA от разработчика. Среди них - Grok и Repoze. Взгляните на последние обновления пакетов на сайте !PyPi, вы наверняка увидите там несколько zca проектов. = Больше о проекте = Изначально Zope 3 создавался как замена Zope 2, но этого не случилось. Вместо этого, Zope 2 продолжает лидировать по количеству создаваемых приложений, в основном благодаря популярности Plone. Zope 3 задумывался как новое начинание, создаваемое с целью избавления от некоторых аспектов и ограничений, накладываемых своим предшественником - Zope 2. Zope 3 представил новую компонентную архитектуру, избавив от ограничений программирования на базе наследования, которое применяется в Zope 2. ZCA состоит из пакетов zope.component, zope.interface и zope.configuration. Zope 3 добавил к этому списку большое количество дополнительных библиотек, а ткже сервер приоложений, что позволяло разработчикам делать автономные веб приложения. В то же время возникла другая волна веб фреймворков. Grok развивался, имея в основе множество билиотек Zope 3. repoze.bfg (aka BFG) появился вокруг ZCA. И напоследок, даже Zope 2 начал использовать ZCA и различные Zope 3 пакеты. В 2009 группа Zope разработчиков приняла решение сконцентрироваться на разработке библиотек Zope 3 и создала Zope Toolkit (ZTK), сфокусировав свое внимание на создании компактной библиотеки на базе Zope 3, которая впоследствии может эффективно использоваться за основу для построения веб фреймворков. Эта разработка привела к следующим шагам: * Формирование проекта вокруг оставшейся части Zope 3 * Переименования прокета в !BlueBream с целью избежания недоразумений в именованиях * Создание пути апгрейда от сервера приложений Zope 3 !BlueBream может считаться преемником сервера приложений Zope 3, который как и Grok полагается на ZTK. = Организация документации = Эта документация разделена на несколько разделов. Ниже - краткое описание всех разделов. == Первые шаги == Раздел "Первые шаги" кратко описывает процесс создания проекта нового веб-приложения, используя !BlueBream. Здесь также есть несколько упражнений, которые демонстрируют базовые концепции !BlueBream. == Концепции == Этот раздел описывает важные концепции и технологии, которые используются в !BlueBream. == Учебник - часть 1. == Этот раздел представляет собой учебные задания, демонстрирующие построение простого приложения "ticket collector". Первая часть ознакомит с основными концепциями !BlueBream. == Учебник - часть 2. == Этот раздел - продолжение разарботки приложения "ticket collector", который раскрывает больше деталей процесса разработки и освещает описание схем и создание форм. == Руководство == Этот раздел является This chapter contains a полным руководством разработки на BlueBream. == FAQ == Этот раздел дает ответы на часто задаваемые вопросы, собранные с групп рассылки, блогов и других онлайн ресурсов. == HowTo == Этот раздел содержит пояснения специальных тем и ситуаций. == Для разработчиков == Этот раздел содержит пояснения для команды разработчиков фреймворка. Разработчики должны постоянно следить за изменениями в этом разделе документации. == Справочник == Этот раздел содержит полный справочник по фреймворку BlueBream. = Благодарность = !BlueBream действительно стоит на плечах гигантов. Zope 3 был построен на концепциях Zope 2, которые, в свою очередь, исходят из Bobo и друзей. Список бывших и теперешних работников Zope Corporation содержит множество известных личностей в разработке на Python, включая самого Гвидо Ван Россума. В продолжении больше 10 лет мировое сообщество делало весомые вклады в разработку. Мы выражаем нашу благодарность всем им. Пожалуйста, помогите нам добавить больше имен в список вкладчиков по мере продвижения нашей работы с января 2010 года. '''Перевод: Ростислав Дзинько'''