Показать сообщение отдельно
Старый 02.03.2010, 15:38
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 35  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Конкретно, что я больше всего терпеть не могу во флексовом фреймворке - mx.collections.*, mx.binding.*, mx.styles.*, mx.rpc.*, UIComponet и ListBase.

mx.collections.* - это просто насмешка над названием, если вы думали, что найдете там List / Set / Map / Tree - вы глубоко ошиблись. Во всем фреймворке есть всего одна штука коллекций, и та не работает - ListCollectionView - все остальные - это ее производные. Эта коллекция смесйь cocoa Array + ECMA Array в которую еще ухитрились запихать кучу IPE (это наверное, чтобы если тормозить, то так чтобы аж искры сыпались), ну и кроме базируется она на генерации UID для каждого элемента (т.е. все операции над элементами подразумевают, что что бы вы в коллекцию не положили, оно должно так или иначе иметь UID. Есть еще интерфейс к этой коллекции, но т.как разработчики фреймворка не предполагали, что этот интерфейс кто-то будет имплементить, то, заимплементить его не возможно по-нормальному.

mx.binding.* - на первый взгляд опупенная фича... Но, попробуйте забиндить несуществующее свойство, или сеттер с ошибкой - и насладитесь всей гаммой позитивных эмоций Вам показалось недостаточно - попробуйте высвободить память занятую биндингами.

mx.styles.* - вы соскучились по JavaScript, нетипизированому доступу, куче неизвесно откуда взявшихся свойств, значениям неопределенных типов? Конечно же, фреймворк поможет вам заглянуть на секундочку в прошлое! А кроме этого напихает вам кучу строк неопределенного назначения в метадату, увеличив размер вашей SWF ну так процентов на 10-20.

mx.rpc.* - ну, стоит ли еще раз вспоминать о нетипизированом доступе, куче каких-то ненужных классов типа AsyncToken призванных "облегчить работу тем, кто до сих пор не освоился с асинхронной природой Флеша". Конечно, проще всего похоронить всю логику в классах, которые трудно пропатчить и не возможно наследовать!

UIComponet - монументальное сооружение! Я даже из спортивного интереса так и не смог доскроллить этот класс до конца, сломался после 10 тыс. строк где-то. У вас что-то не работает, и причина кроется где-то в этом классе - можно просто забыть о попытках что-нибудь пофиксить.

ListBase - как уже говорилось, разработчики флексового фреймворка считают, что самый надежный способ идентифицировать объект в коллекции, это присвоить ему строковый идентификатор вида A227A6E8-B517-2D0C-0366-1EA1F635CB56. Кроме того, разработчики фреймворка считают, что багнутость E4X XML и недоделоность Array - им не помеха, и их вполне можно использовать в качестве data provider. Кстати, этот класс по размерам только немного уступает UIComponent.

Ну, а все остальное - да, замечательно
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 02.03.2010 в 15:44.