среда, 24 октября 2012 г.

Tricks / Оптимизация для Starling (RU)

Начиная с мая 2012 в Starling начали использовать паттерн - объектный пул для событий (Event). Теперь каждая отправка сообщения не создает новый экземпляр, а использует существующий. Вот короткий пример:

//по-старинке. Создаем экземпляр
dispatchEvent(new Event(Event.COMPLETE));

//по-новому. Event будет взять из пула объектов
dispatchEventWith(Event.COMPLETE);

Еще один повод начать использовать Starling Events а не Signals Robert Penner-а. И вот неделю назад Джош (создатель Feathers) перешел с Signals на Event-ы от Starling. Но не стоит забывать о одной проблеме пула объектов и событий, - после отправки Event-а в свободное плаванье, исходный объект перестает как либо контролировать жизненный путь экземпляра Event-а, поэтому есть шанс с вероятностью отличной от нуля, что этот Event попадет в руки 2х разных процессов, которые станут совместно владеть Event-ом, не подозревая об этом. Единственный выход,- не хранить указатели на Event-ы.

Tricks / Starling Optimization (EN) / Updated

From may of 2012 in Starling started using pattern pool of objects for events. So for every dispatch of event new instance doesn't create. Here example:

//ordinary. Create instance
dispatchEvent(new Event(Event.COMPLETE));

//new. Use pool of Events
dispatchEventWith(Event.COMPLETE);

One more point to start using custom Starling Events nor Robert Penner Signals. Actually I'm in love with Signals. But here was one problem - Starling uses custom Events but Feathers (ex-Foxhole) has used Signal. But now about one week Josh (author of Feathers) had move from Signals to Starling Events. I think it's better.

Be aware there some snake pit: Pool of objects can return you object that still used other event handler. That requires more trust to third-part handlers.

Update

By the way, here is wiki page, about this trick. And one more - about pass and cache additional date with events.

суббота, 6 октября 2012 г.

What come's next... (EU)

Подзабил я немного на блог, а материала уже набралось, из горячих тем:

  • Worker-ы на flash;
  • Maven для flash;
  • Node.js;
  • MongoDB;
  • CoffeeScript;
  • Мобильная разработка на js+html PhoneGap, jquerymobile;
  • И куча библиотек на js : backbone.js, require.js, leaflet и др.;
Так же есть желание начать публиковать статьи как на русском так и на английском. А теперь пожелаем мне найти на это все время, до связи :)

Press Any Key...