The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Twitter представил новый открытый JavaScript-фреймворк Flight

01.02.2013 14:23

Компания Twitter, развивающая популярный сервис микроблогов, анонсировала новый событийно-ориентированный JavaScript-фреймворк Flight, код которого открыт под лицензией MIT. Фреймворк составляет основу клиентской части кода, используемого в новом варианте сайта Twitter, который был введён в строй в прошлом году. Работа Flight протестирована во всех современных браузерах, в том числе в Chrome, Firefox, Safari, Opera и IE7. Из зависимостей используются библиотеки ES5-shim и JQuery.

В отличие от других фреймворков, Flight не навязывает и не предоставляет какие-то конкрентые методы для рендеринга или получения данных. Фреймворк не заботится о том, как именно организован маршрут обработки запросов, какие шаблонизаторы используются и генерируется ли HTML на стороне сервера или клиента. Вместо этого Flight базируется на организации работы поверх уже присутствующей модели DOM, привязывая требуемую функциональность непосредственно к узлам DOM. Подобный подход позволяет не только избежать необходимости задействования дополнительных структур данных, усложняющих архитектуру web-приложения, но и упростить привязку дополнительной функциональности для уже существующих web-приложений.

Архитектура Flight предусматривает строгую изоляцию всех компонентов-обработчиков, которые не могут напрямую взаимодействовать друг с другом, не зависят от других компонентов и не являются элементами дерева объектов. Вместо этого, компоненты должны оформлять действия в виде широковещательных анонсов событий, на которое должны подписываться заинтересованные в них другие компоненты. Когда компонент инициирует событие, он не имеет представления о том, кем и как будет обработано данное событие, что позволяет разрабатывать каждый компонент изолировано, без оглядки на особенности реализации других компонентов - каждый компонент оформляется и распространяется в виде обособленного JavaScript-модуля.

Подписка на обработку определённых типов событий осуществляется с использованием привязки к элементам дерева DOM, при этом таким способом организуется как подписка на нативные события, связанные с узлами DOM, так и на события генерируемые другими компонентами, и те и другие события обрабатываются идентично. В простейшем случае, для реализации нужной функциональности достаточно создать новый компонент и привязать его к DOM-узлу, после чего компонент будет получать связанные с узлом события и сможет манипулировать любыми элементами этого узла. Пример простейшего web-приложения, созданного с использованием Flight, можно посмотреть здесь, демонстрация работы данного приложения доступна на данной странице.

  1. Главная ссылка к новости (http://engineering.twitter.com...)
  2. OpenNews: Twitter переходит с Ruby на Java. Facebook открыл код Map-Reduce-реализации Corona
  3. OpenNews: Twitter открыл код Bower, пакетного менеджера для Web
  4. OpenNews: Релиз Bootstrap 2.0, развиваемого компанией Twitter набора web-шаблонов
  5. OpenNews: Twitter открыл код распределенного трассировщика веб-приложений Zipkin
  6. OpenNews: Twitter открыл код своих улучшений к MySQL
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/35985-twitter
Ключевые слова: twitter, javascript, javascript, web
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 15:16, 01/02/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Опять через DOM :( .  
     
     
  • 2.3, Аноним (-), 15:42, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Простите, а через что должен работать браузерный JS-фреймворк?
     
     
  • 3.4, Аноним (-), 15:46, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Native Client SDK + DOM
     
     
  • 4.10, Аноним (-), 17:27, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Native Client SDK + DOM

    там безопасность миф

     
  • 3.7, Аноним (-), 15:46, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Простите, а через что должен работать браузерный JS-фреймворк?

    твиттер еще тот глючный сайт

     
     
  • 4.11, Аноним (-), 17:28, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Простите, а через что должен работать браузерный JS-фреймворк?
    > твиттер еще тот глючный сайт

    и не говорите. Такое ощущение, что разработчики не в курсе что такое HTML5 и отсутствие всевозможных глюков...

     
     
  • 5.19, Аноним (-), 22:11, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +/
    яОткройте исходный код твита там одни IE
     
  • 3.15, Афанасий (?), 18:30, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +/
    А подписку на события давно пора ввести в стандарт языка.
     
  • 2.9, Аноним (-), 17:24, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    js без DOM имеет смысл только как nodejs
     
     
  • 3.12, Crazy Alex (ok), 17:30, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кастомные события-то зачем обязательно к DOM привязывать? Далеко не каждый компонент имеет непосредственное отображение на странице. ну вот естьу  меня модель и контроллер - через события их вязать удобно, но DOM здесь совсем ни к чему.
     
     
  • 4.17, Xasd (ok), 19:49, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    не используй этот фрэймворк для объектов которые не имеют DOM

    :-)

     
     
  • 5.18, Crazy Alex (ok), 21:38, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То есть "не используй этот фреймворк". Не тащить же два их в один проект.
     
     
  • 6.22, Xasd (ok), 06:10, 02/02/2013 [^] [^^] [^^^] [ответить]  
  • +/
    ды чтобы подписаться на событие -- можно вообще не использовать никакой программный карказ :) ..

    ...банальный callback же!

    и не надо говорить что это грязный код . в случае если этот callback будет использоваться только В ПАРУ МЕСТАХ в программе .

    в противном случае (если из-за этих пару мест будет использован аж целый программный карказ) -- я назову это оверинженерингом :)

     

  • 1.2, Xaionaro (ok), 15:36, 01/02/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чтобы понять лучше о чём новость, нужны примеры применения :(
     
     
  • 2.5, koqep (ok), 15:46, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Twitter?
     

  • 1.6, jOKer (ok), 15:46, 01/02/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Подписка на обработку определённых типов событий осуществляется с использованием привязки к элементам дерева DOM

    Они изобрели pub/sub? O_o
    Это достижение, да. Новый виток эволюции, чо.

     
     
  • 2.13, Аноним (-), 17:33, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >>Подписка на обработку определённых типов событий осуществляется с использованием привязки к элементам дерева DOM
    > Они изобрели pub/sub? O_o
    > Это достижение, да. Новый виток эволюции, чо.

    там вряд ли pub/sub - скорее всего SSE

    Но если они утверждают, что поддерживают ie7 то монструозности не избежать. На фоне того, что jquery отказались поддерживать ie вплоть до 8-ой версии, выглядит довольно странно. Непонятно в какую сторону собираются двигаться разработчики и для чего это все ))

     

  • 1.8, Nomad (??), 16:17, 01/02/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Посмотрел демку, новизны фреймворка не понял, напрягла жирная пачка заимствованных библиотек.

    Кастомные сообщения давно используются, эта вся их бадяга про изолированные компоненты - обычные AMD-модули. Говорят, что ничего не навязывают - так ничего и не делают толком. Чужие либы смотали синей изолентой, птичкой украсили - ололо, посаны, новый JS-фреймворк!

     
     
  • 2.14, imprtat (ok), 18:10, 01/02/2013 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > Чужие либы смотали синей изолентой

    Нет ничего более вечного чем синяя изолента. Это универсальный инструмент с высокими качественными характеристиками. Не стоит ее недооценивать.

     

  • 1.16, Аноним (-), 19:25, 01/02/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Каждый микроблог будет продвигать свой фреймворк...
     
     
  • 2.23, Xasd (ok), 06:14, 02/02/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Каждый микроблог будет продвигать свой фреймворк...

    а сколько их, Микроблогов этих?

     

  • 1.20, mr. x (?), 22:13, 01/02/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    так в "современных" или все-таки "ie7"?
     
  • 1.21, Аноним (-), 22:15, 01/02/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я заметил что разработчики твиттера продвигают осла 9 да еще и через попу впилили косяки осла7 в фреймворк
     
  • 1.24, umbr (ok), 01:18, 03/02/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Странное совпадение: http://www.bbc.co.uk/russian/international/2013/02/130202_twitter_hacked_lord
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру