2008-02-25

План лекций

Andrey Orlov  2008-02-25 21:13

План лекций содержит ссылки на лекции и комментарии к ним в порядке, рекомендуемом к изучению. На сайте выделен специальный раздел с лекционными материалами, который на самом деле является зеркалом репозитория svn . Вы можете скачать лекции оттуда, но удобнее работать с ними через сайт.

А вот примеры к лекциям лучше скачать из репозитория, установить и попробовать, как они работают. Разумеется, все примеры должны работать.

План лекций:

Лекции состоят из связного списка лекций и неупорядоченных дополнительных материалов к ним. Основная масса всего лежит в разделе doc.zopelection.

Предварительная подготовка (1):

Введение в питон.txt
краткий рассказ про то как программировать на python под Zope3 и что об этом надо знать. Не воспринимайте это как учебник по питону, это только небольшая его часть, которая поможет легко использовать распространненные в Zope3 техники программирования на python;
Введение в Zope.txt
краткий рассказ про Zope3. Для знатоков Zope2, чтение этой статьи, по большей части, освежение хорошо известного материала. Тем не менее, она рекомендуется для обязательного прочтения;
Введение в компоненты.txt
эта лекция подробно знакомит с компонентами, дает основные определения и развеивает опасные заблуждения;
TypicalPlacesInZope3Skins.txt
рассказ о административных скинах Zope3, краткое введение в понятие скина вообще и рассказ о том, какие административные операции можно выполнить через WEB и как это лучше сделать;

Создание простого компонента Zope3 (2):

Использование интерфейсов.txt
рассказ о том, как используются сами интерфейсы;
Использование схем интерфейсов.txt
рассказ о том, как могут использоваться схемы интерфейсов;
Использование сложных полей ввода.txt
эта лекция подробно знакомит с приемами программирования интерфейсов для создания сложных полей;
ZODB and Persistent Objects.txt
статья кратко рассказывает о программировании перзистент-объектов в ZODB;
Скелет контент класса в Zope.txt
эта лекция рассказывает о том, из чего должен состоять простой продукт, какие файлы в него должны входить и как они должны лежать, и приводится пример простого продутка, снабженный рассказом об ограничениях на интерфейсах и множестве других тонкостей, которые необходимо учитывать даже при программировании такого простого продукта, что бы обеспечить простоту его интеграции с другими продуктами;

Стандартные формы добавления и редактирования (3):

Директивы для создания видов и форм.txt
разновидности ZCML-директив для создания странцы и что они делают на самом деле;
AboutRequestMethod.txt
рассказ об особенностях обработки запроса, позволяющих вызывать из одной формы разные виды;
HOWTO add button into standard add and edit form.txt (нет)
использование стандартных темплейтов для модификации стандартных кнопок и добавления новых полей;

Составление утилиты Zope (4) :

Структура Zope3 сайта.txt
описывает структуру типичного Zope3-сайта;
Архитектура реестров.txt
как устроены реестры, как они расположены, как они используются;
Особенности работы реестров.txt
статья кратко рассказывает об алгоритме работы реестра адаптеров и утилит;
API работы с реестрами.txt
различные типы реестров и как к ним обращатся;

Создание и использование адаптеров (5):

HOWTO use adding and namechooser.txt
на примере NameChooser (важной компоненты, используемой повсеместно), рассматриваются тонкости использования компонентной модели;
HOWTO use recursive programming using adapters.txt
Прочитав эту статью вы должны получить навык программирования рекурсии при использовании адаптеров. Это очень важная техника, которой всегда следует отдавать предпочтение перед другими альтернативами, так как она позволяет легко воспользоваться всеми преимуществами компонентной модели.

Траверс (6):

Сценарий обслуживания запроса.txt (почти готово)
статья кратко рассказывает об алгоритме обслуживания запроса;
Траверсеры.txt
статья, кратко рассказывает о программировании траверсеров на примере простого нечеткого траверсера;
Использование декларации интерфейсов как инструмента настройки.txt
статья рассказывает о том, как организовывать код так, что бы его настройка сводилась к декларации интерфейсов у объектов (Что-то на примере IFuzzyTraverser);

Использование аннотаций (7):

Аннотации.txt (черновик)
рассказ про аннотирование, что такое компоненты-аннотации, аннотируемые компоненты, как их создают, зачем они нужны и как их используют;
Адаптация как способ ассоциации компонент.txt
Интересный рассказ про то, как использования адаптеров позволяет скрыть детали реализации ассоциации компонент.

Составление директивы конфигурации (8):

Хэндлеры ZCML директив.txt
рассказ о написании хендлера ZCML директивы;

События и их обработчики(9):

Обработчики событий.txt
рассказ о том, какую роль имеют в Zope3 события и обработчики событий, как их обычно пишут, на примере продукта quota;
События.txt (черновик)
статья об использовании событий;

Вивлеты (10):

Виды.txt
Что такое виды и как их создавать, на примере вида для конкретного продукта;
Скины.txt
Пример написания простого скина;
HOWTO use viewlets in skin programming.txt (нет)
подробный рассказ о роли вьюлетов в программировании скинов;

Специальные приемы программирования :

HOWTO use decorators in Zope.txt
Статья вводит концепцию "декораторов", используемых в языке Python и дает примеры использования декораторов в Zope3, содержит краткий перечень распространненных в Zope3 декораторов;
HOWTO resolve decode error problem.txt
Рассказ о причинах возникновения "Decode Error", способах борьбы с ней;
HOWTO Use xmlrpc with Zope.txt
Краткое введение в xmlrpc и его использование в Zope3 на примере небольшого продукта;
HOWTO Use mtime.txt
Рассказ о способе получения времени последней модификации объекта из данных перзистент объекта. Вводится небольшой адаптер и проблема решена;
HOWTO Clear ClipBoard.txt
Если при просмотре логов выясняется, что при отображении страницы Zope делает какое-то обращение к давно не существующему компоненту, причем почему и зачем вы понять не можете, а у других ошибка не воспроизводится - что и является характерным признаком того, что у вас какая-то личная размолвка с буфером обмена.
somepersistentwarning.txt
Предупреждение о том, как надо работать с перзистент-классами так, что бы это не вызывало больших проблем.
Speed-Zope3vsMySql.txt
Тест на быстродействие Zodb и, заодно, краткий пример использования ZODB вне Zope;
Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site noooxml