Привет ребята, пишу вам из далёкой Калифорнии, куда забросила судьба меня и мою жену. Так получилось, что я, очень резко, из флексера-страдальца превратился в счастливого сильверлайтера. Все мои коллеги уже успели получить от меня тонны положительных отзывов о данной технологии. Мой энтузиазм в описании всех фичей Silverlight и до сих пор не угасает. Правда, у меня возникла диллема: мой блог был расчитан на аудиторию флексеров, и это было бы опрометчиво, просто изменить тематику статей — поэтому так долго и не писал.
Яков Файн в Киеве. Комментарии к его докладу о RIA
Яков — киевлянин, уехал в США около 15 лет назад. Свой доклад он определил как благотворительный подарок программистам родного города. Мероприятие состоялось в киевском офисе компании Microsoft. Во-первых, офис у них великолепный: большие пространства, оригинальная мебель, в общем, всё навысоте — мощь и деньги на лицо. Во-вторых, сам Яков жавист и флексер, директор компании Farata Systems, во время доклада не раз упрекал Microsoft в известных грехах, что придавало докладу очаровательную ироничность.
Инвалидация свойств невизуальных объектов
Наверно, следовало бы сначала описать своё понимание паттерна «Инвалидация чего-либо» во Flex. Может быть напишу статью о полезности такого подхода в разработке визуальных компонентов. В общем, возможно, вы часто используете пару методов invalidateProperties() / commitProperties() для отложеного выполнения логики set методов свойств ваших компонентов. Эта пара определена в базовом для всех Flex контролов классе UIComponent.
Краткий смысл паттерна в том, что мы ожидаем присваивание значений набору свойств компонента в течение одного кадра Flash Player-а, а последующюю логику обработки этих значений переносим на следующий кадр. Это может повысить производительность приложения, а так же навести порядок в обработке значений связанных между собой свойств компонента.
Полагаю, что инвалидация свойств компонентов во Flex практикуется потому, что большинство компонентов инстанциируется посредством MXML и порядок присваивания свойств спрогнозировать невозможно.
Но, на практике, возникаются ситуации, когда подобный механизм нужен и в невизуальных объектах, например элементах модели бизнес-логики, которые приходят от сервера.
Моя презентация с iForum 2009
Согласно сообщению от организаторов, форум посетило около 1200 человек. Большинство из них мало интересовалось потоком «Интернет-Технологии», что логично, так как в основном аудитория состояла из специалистов по рекламе, владельцев украинских интернет компаний, а также людей, мечтающих о владении подобными и прочих «интернет-дельцов».
Но, несмотря на немногочисленную аудиторию, я с удовольствием посмотрел и послушал выступление создателя библиотеки Away3D, Александра Задорожного, как часть доклада «Трёхмерные вебсайты и вебсервисы: возможности, преимущества и перспективы». Он, довольно грустно поведал о разочаровании последней версией Flash Player 10 на предмет отсутствия ожидаемой полной поддержки 3D, а не только базового функционала. Сказал, что забросил своё детище, хотя и удивлён тем, что, проект Away3D так долго существует (связывает это с низкой функциональностю API Flash Player-а).
Мою презентацию можно прокликать он-лайн. Вроде бы будет и видео с выступления (но как часто бывает, после окончаний конференций уже некогда и незачем подобным заниматься).
По уже сложившейся «традиции», после моего выступления Сергей Байдачный из Microsoft рассказал о Silverlight. На этот раз о новых фичах третьей беты. Вообще, мне очень интересна тема разработки на Silverlight (думаю, как и большинству сознательных флексеров). Flex до сих пор сложно назвать самым крутым средством для RIA, ввиду забивания со стороны Adobe на большинство вопросов программистского характера (рефакторинг, логичной и управляемой снаружи ООП моделью базовых компонентов, возможности языка Action Script). Так как Silverlight является наследником крутейших средств и методологий .NET-а, то он априори — крут, крут, крут.
Украинский форум интернет деятелей
Завтра, первого апреля, я буду выступать с докладом о Flex и Adobe Air (такое вот дежавю, прошлой весной тоже докладывал об этом) на коференции, которую организовуют Алексей Мась и его сотрудники. Сайт конференции — http://iforum.com.ua/.
Мой доклад будет обзорным и риторическим. Предыдущий опыт подсказывает, что технические детали обычно скучны, нужно что-то визуальное и легко воспринимаемое. Например, почему в большинстве случаев не нужно писать на Flex (я уже пытался раскрыть эту тему ранее). Расскажу об основных недостатках и некоторых достоинствах, о том, что поменялось за последние 3 года существования Flex.
Программа потока Интернет-технологии — http://iforum.com.ua/programma-tech/.
P.S. Кстати нашёлся животрепещущий экземпляр сомнительного применения технологий Flash и Flex, ввиде движка Fuzlle CMS (слоган — «Подвигай!»). После оригинальной статьи на Хабре с призывом покупать лицензии и всё такое, я заинтересовался, что же это за феноменальная разбработка. Представте, админка, написанная на Flex, в которой можно создавать динамические сайты-визитки на флеше, интегрируя дизайн за 5 минут используя при этом привлекательную анимацию. Заманчиво, не так ли?
Пример использования Mate Flex Framework
Сразу же после появления на свет вышеуказанного фреймворка я описал своё первое впечатление о нём. В нашем большом приложении корпоративного уровня мы его успешно используем и по сей день.
Некоторые коллеги постоянно норовят разузнать все детали и нюансы использования Mate на практике и в связи с этим я решил описать пример типового архитектурного решения основанного на модели реального приложения. Он похож на примеры с сайта фреймворка, но расписан пошагово с конкретными рекомендациями на всех уровнях.
Нужен человек, готовый на Флекс
Как-то раз, в августе, я давал объявление о поиске людей, которые без особого опыта в Флексе не прочь подучиться ему, параллельно выполняя прямые обязанности программиста(junior level). Люди нашлись, с некоторыми из них мы(компания EPAM Systems) до сих пор успешно сотрудничаем.
Нам нужен ещё один человек. Желательно начинающий, можно студент, очень энергичный и с толковой головой(акцентировка на ООП). Не нужен флексер-профи(их мало, в основном все врут), приветствуются специалисты из C#, Java.
Я готов передавать свой опыт и знания в ходе работы и тщательно следить за кодом, архитектурными решениями и т.п. Зарплата будет не большая, но, тем не менее, для начинаючих специалистов, это может быть интересным предложением, так как обучим быстро и неплохо.
Кто заинтересован, оставляйте адреса в комментах.
UPD. Работа предполагает полную занятость в офисе, в городе Киеве, Украина.
UPD. Вакансия закрыта — новый сотрудник найден.
Спасибо тебе, 100-ый читатель
Статистика feedburner показывает на счётчике очень кругленькую цифру в 100 подписчиков на RSS моего блога! Очень приятно конечно и всё такое. Этот результат достигнут за пол-года его вминяемого существования, с дизайном и со старательно оформленными статьями.
В последнее время писать мне хочется всё больше и больше — верный показатель старения и остепенения. Да и писать есть о чём, хоть Adobe до сих пор так и не выпустила Flex 4(после чего ожидается просто шквал впечатлений в блогах всех флексеров), всё таки каждый день приходится сталкиваться уже не столько с неприятностями флекса, сколько с архитектурными вызовами на смекалку.
Stay tuned.
Пример использования «слабых» ссылок
Тема «слабых» ссылок при установлении функций-слушателей (англ. listener) для событий в Action Script уже подымалась не раз несколько лет подряд. Я, например, стараюсь следить за всеми новостями от Adobe, давно знавший о их существовании, тем не менее, понял их суть совсем недавно, только после использования профайлера в Flex Builder.
Известный товарищ gskinner ещё в далёком 2006 году удивлялся почему все слушатели по умолчанию не подключаются в режиме weak reference, а некоторые ребята на Хабре, в комментах к статье про контексты функций, вообще считают, что «слабые» ссылки от нечистого и все операции по удалению онных нужно производить исключительно вручную!
Вместо пересказывания справочной информации я приведу пример, в котором я вижу исключительную полезность использования «слабых» ссылок.
Контексты функций в Action Script
Я люблю использовать анонимные функции, передавать функции по ссылке, объявлять функции прямо в теле другой функции и т.п. Это удобно и практично, но с этими механизмами могут возникнуть некоторые проблемы. Начиная с версии 9 Flash Player сохраняет в this функции её родителя. Звучит просто, но все ли понимают, что это значит и как тяжело было раньше без этого?
Например, теперь можно описать такую функцию:
public class TestClass
{
var property : Number;
function updateValue(value : Number) : void
{
TestClass(this).property = value;
}
}
и передавать её куда угодно:
var func : Function = new TestClass().updateValue;
func(555);
и быть уверенным, где-бы её не вызвали в this будет экземпляр класса TestClass. Но я не об этом, есть более любопытные действия, которые можно производить над функциями в Action Script, их мы их рассмотрим.
More…