'

Frontik

Понравилась презентация – покажи это...





Слайд 0

Frontik сервер-агрегатор на python


Слайд 1

Зачем frontik? I


Слайд 2

100% 08:00 20:00


Слайд 3


Слайд 4

Яндекс (XScript) Mail.ru (FEST)


Слайд 5

Выбрали XScript  OpenSource  Проверено  XSLT


Слайд 6

100% 08:00 20:00


Слайд 7

Минусы XScript  XML-based язык агрегации  Нет доступа к кишкам HTTP  Сложность доработки


Слайд 8

Что frontik? II


Слайд 9

Основной сценарий использования:


Слайд 10

Frontik - application server,  основанный на Tornado Web Server   Tornado: AsyncHttpServer один поток выполнения ioloop прием новых соединений  обработка (handling) AsyncHttpClient   Как сделано


Слайд 11

диспетчеризация запросов по URL HTTP опрос backend`ов  парсинг, обработка и агрегация xml ответов XSLT шаблонизация Где же тут Frontik?


Слайд 12

Реальный пример


Слайд 13

Как это работает:


Слайд 14

Фичи от frontik`а 1. app-root/helloworld.py   class Page(frontik.page.PageHandler):     @set_xsl('helloworld.xsl')   def get_page(self, request):        res = etree.Element('hello')     res.text = 'world'     self.doc.put(res) 


Слайд 15

Фичи от frontik`а 2. Обработка ответов   def cb(xml, response):      nodes = xpath.Evaluate(..., xml)     if not nodes:         finish('Nothing found!')     else:         ... self.get_url(request, cb)  


Слайд 16

Фичи от frontik`а 3. Future   placeholder = self.get_url(...) self.doc.put(placeholder)    


Слайд 17

Фичи от frontik`а 4. SyncGroups   group=frontik.async.AsyncGroup(finish_cb)   self.get_url(request1, group.add(cb1))   self.post_url(request2, group.add(cb2))    


Слайд 18

Фичи от frontik`а 5. Главное: простота развития  Быстрая и гибкая разработка на python


Слайд 19

Как frontik? III


Слайд 20

>   xslt   > xml                                                          ответ Этапы трансформации Было:   Cтало: >           > xml                                                              ответ xslt > пост-обработка


Слайд 21

Пост-обработка Fuchakubutsu (переводы)


Слайд 22

Пост-обработка ссылки на региональные сайты (200kb xml, 7k nodes)


Слайд 23

Кэш   Было: поиск > загрузка найденного > XSLT > результат     Cтало: поиск > memcached >                       > XSLT> результат дозагрузка ненайденого в кеше


Слайд 24

Дублирование кода верстки обвязка сайта (jsp vs. xslt)


Слайд 25

Обвязка сайта Было: browser   -   jsp   Cтало: browser   -   frontik   -   jsp


Слайд 26

Проблемные места (они же — планы развития)   Один процесс — однин тред — одно ядро процессора Блокировка обслуживания на время вычислений    Отсутствие стриминга   Спагетти-код  


Слайд 27

http://github.com/hhru/frontik http://github.com/AndrewSumin/hephaestus http://hh.jsx.ru


×

HTML:





Ссылка: