Your SlideShare is downloading. ×
Grok web application framework
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Grok web application framework

1,392
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,392
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. now even cavemen can use Zope 3 Bogdan Koval © Quintagroup, 2008
  • 2. Що таке Zope 3?
    • сервер (каркас) веб-аплікацій
    • колекція вільного програмного забезпечення, частини якого можна легко повторно використати
    • проект, що в активній розробці з 2001 року та має велику спільноту
  • 3. Можливості Zope 3
    • компонентна архітектура
    • об'єктна база даних (ZODB)
    • XHTML шаблони (ZPT)
    • автоматична генерація форм
    • інтернаціоналізація (i18n, l10n)
    • безпека
    • каталогізація
    • тестування
  • 4. Недоліки Zope 3
    • складність швидкого старту із Zope 3
    • компоненти зв'язуються між собою за допомогою ZCML, що вимагає редагування додаткових конфігураційних файлів
    • ZCML сповільнює процес розробки — кожний новий компонент вимагає своїх директив
  • 5. Що потребує покращення в Zope 3
    • спростити розробку аплікацій як для початківців, так і для досвідчених розробників
    • пришвидшити процес розробки
  • 6. Шлях покращення
    • домовленості по структурі та вмісту пітонівських пакетів та модулів
    • відсутність конфігурації через ZCML
  • 7. Ось тут і з'являється Grok
  • 8. Хто такий Grok? Grok – дружня печерна людина із Кам'яного Віку. Він має велику булаву, якою полює на мамонтів, а крім того ще й трощить нею все, що йому не подобається (особливо в Zope 3).
  • 9. Що таке Grok?
      • Каркас веб-аплікацій, побудований на базі Zope 3 та орієнтований на початківців і досвідчених розробників. Grok робить акцент саме на швидку розробку аплікацій, додаючи нові можливості та зберігаючи все, що є в Zope 3.
  • 10. «ME GROK SMASH ZCML»
    • ZCML вже не обов'язковий
    • ти використовуєш домовленості запропоновані Grok'ом, а він аналізує твій пітонівський код і конфігурує твої компоненти
    • результат той самий, що й із явним конфігуруванням ZCML'ом
  • 11.
    • доданий новий інтерфейс адміністрування (grok.admin)
    • всі об'єкти по замовчуванню є доступними
    • шаблони (ZPT) по замовчуванню лежать в директорії «modulename_templates»
    • статичні ресурси лежать в директорії «static»
  • 12. Cтарт із Grok'ом
      • Лише декілька команд і перша grok аплікація готова:
      • easy_install grokproject
      • grokproject HelloWorld
      • cd HelloWorld
      • bin/zopectl fg
  • 13. Можна відкривати браузер
  • 14. Головна сторінка аплікації
  • 15. app.py import grok class HelloWorld(grok.Application, grok.Container): pass class Index(grok.View): pass # see app_templates/index.pt
  • 16. index.pt <html> <head> </head> <body> <h1>Congratulations!</h1> <p>Your Grok application is up and running. Edit <code>HelloWorld/app_templates/index.pt</code> to change this page.</p> </body> </html>
  • 17. configure.zcml <configure xmlns=&quot;http://namespaces.zope.org/zope&quot; xmlns:grok=&quot;http://namespaces.zope.org/grok&quot;> <include package=&quot;grok&quot; /> <includeDependencies package=&quot;.&quot; /> <grok:grok package=&quot;.&quot; /> </configure>
  • 18. Grok-магія
    • сканування пітонівського коду і виклик Grokker'ів для класів, що наслідуються від grok.* класів
    • Grokker'и регіструють компоненти відповідно до директив, які застосовані до них
    • регістрація аналогічна до ZCML (викликається context.action(...))
  • 19. Базові класи
    • Application, Model, Container
    • Adapter, MultiAdapter
    • GlobalUtility, LocalUtility
    • View, Form, Traverser, Skin, Layer, ViewletManager, Viewlet, Permission, Role
    • RESTProtocol, REST, JSONView, XMLRPC
    • та інші...
  • 20. Директиви
    • context, adapts, implements, provides, name, subscribe, global_utility, local_utility
    • layer, template, templatedir
    • title, require
    • baseclass
    • та інші...
  • 21. Приклад адаптера import grok from zope import interface class Cave(grok.Model): pass class IHome(interface.Interface): pass class Home(grok.Adapter): grok.context(Cave) grok.implements(IHome) class IFireplace(interface.Interface): pass class Fireplace(grok.Adapter): grok.implements(IFireplace, IHome) grok.provides(IFireplace)
  • 22. Розширення Grok
    • що робити, коли Grok не вміє регіструвати твій компонент?
    • писати ZCML?
    • ні, cтворити базовий клас і Grokker для цього компонента (і цим зробити Grok ще могутнішим)
  • 23. Дякую за увагу!