Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.10.2009, 22:39
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 11  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Как бы это так сказать, NetConnection очень глубоко похоронен в структуре каирнгорма...
Т.е. так для общего представления, что происходит, когда вы вещаете каирнгормовское событие:
Оно попадает в локатор -> локатор дергает команду -> команда дергает remote object -> remote object дергает флексовый класс server -> класс server запускает еще с дюжину разных никому не нужных операций и в итоге мы добираемся до NetConnection или URLLoader и посылаем запрос, возможно, состоящий всего из пары байт... Схема не принимает во внимание всякие заковыристости флексового биндинга, и то так и сколько всякой абсолютно ненужной ерунды произойдет по дороге...

Но главное, что все это абсолютно не нужно... Т.е. номинально это нужно для того, чтобы якобы облегчить разработку, но, на практике АПИ NetConnection или URLLoader - простые как палка и работают, на сколько это можно быстро и с небольшим количеством багов... С другой стороны, весь этот хлам с красивыми названиями работает очень нестабильно, медленно, дебажить его практически нереально из-за идиотов-разработчиков которые насовали туда анонимных функций и их все еще в try-catch завернули...
Это просто какое-то увлечение модной фишкой... написать кучу всякого красиво оформленного Г. и с помпой это преподнести, а потом долго думать, как же и чего с этим делать...
__________________
Hell is the possibility of sanity

Старый 16.10.2009, 01:23
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 12  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Хм, ну анонимные функции и try-catch это не вина Cairngorm-а) А дебажить код такого плана легче, чем простыню из 3000+ строк, т к хоть зачатки логики раскладки на команды есть почти всегда)
__________________
4am is time to rock

Старый 16.10.2009, 04:03
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 13  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Как бы фишка в том, что когда руководствуясь лучими побуждениями разработчики этого замечательного продукта писали что-то в духе:
Код AS3:
try {
// this function may be undefined
someFunction.apply(foo, [...]);
}
catch
{
// well, it was undefined, we'll check back later...
}
То просто руки опускаются что-то дальше с этим делать... как по мне, 3000, да хоть 30000 строк, если там нету однозначного бреда, будет проще переварить чем пытаться выяснить на каком этапе в someFunction случилась ошибка...
__________________
Hell is the possibility of sanity

Старый 16.10.2009, 12:18
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 14  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от DarkLight Посмотреть сообщение
чем простыню из 3000+ строк
Ооо, если не PureMVC, то не ООП, а значит простыни? Клево.

Старый 16.10.2009, 14:26
Nemo_c вне форума Посмотреть профиль Отправить личное сообщение для Nemo_c Найти все сообщения от Nemo_c
  № 15  
Ответить с цитированием
Nemo_c
 
Аватар для Nemo_c

Регистрация: Jan 2008
Сообщений: 221
Цитата:
Сообщение от etc Посмотреть сообщение
Падает уровень разработчика.
В чём конкретно проявляется уровень падения?

Старый 16.10.2009, 18:11
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 16  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Цитата:
Ооо, если не PureMVC, то не ООП, а значит простыни? Клево.
Во-первых, я вообще не про PureMVC. Идея в том, что *****код, построенный на архитектурном фреймворке в общем случае легче разбирать, чем *****код, построенный без него. Тот же Flex Framework (2-3), который мозг сломаешь пока разберешь.
Я не считаю что изучение архитектурного фреймворка снижает уровень разработчика, так как для малых/средних проектов их использование экономит время - этап проектирования архитектуры ужимается в несколько раз без особого вреда для конечного результата. В случае команд с частой сменой разработчиков без преемственности, что встречается вокруг да около, аналогичная ситуация - хотя бы часть логики автора на поверхности.
__________________
4am is time to rock

Старый 16.10.2009, 21:59
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 17  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Nemo_c, в том, что реализовать своё MVC потом всё труднее и труднее.

DarkLight, его одинаково хреново разбирать, если это *****код. Ещё печальнее, если он юзает фреймворк.

Старый 16.10.2009, 22:03
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 18  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Цитата:
реализовать своё MVC потом всё труднее и труднее.
А конструкторам автомобилей ездить на чужих не следует, потому что проектировать машину все труднее и труднее?
Наоборот, мы видим в перспективе: если использовать такую-то архитектуру, на таком-то этапе возникают неудобства, соответственно надо предусмотреть, чтобы у себя такого не было.
__________________
4am is time to rock

Старый 16.10.2009, 22:05
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 19  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Фишка как раз в том, что когда проблема случается в фреймворке, особенно, типа Флекс / Каирнгорм и т.п. То только на локализацию и выяснение, а что собственно произошло уходят иногда недели... и объяснить человеку, которому этот *****код состряпали за пару дней, что найти и ликвидировать ошибку будет очень сложно - сами понимаете... Фреймворк должны писать и тестировать куча талантливых програмистов, чтобы эта штука была пригодна к применению... а наши АС3 "фреймворки" соотносятся с нормальными разработками, как "Рабинович по телефону напел" с Бетховеном

Не ходя далеко за примером:
Код AS3:
        try
        {
            var result:Object = wrappedFunction.apply(thisArg, args);
            wrappedFunctionSuccessful = true;
            return result;
        }
        catch(itemPendingError:ItemPendingError)
        {
            itemPendingError.addResponder(new EvalBindingResponder(this, object));
            if (BindingManager.debugDestinationStrings[destString])
            {
                trace("Binding: destString = " + destString + ", error = " + itemPendingError);
            }
        }
        catch(rangeError:RangeError)
        {
            if (BindingManager.debugDestinationStrings[destString])
            {
                trace("Binding: destString = " + destString + ", error = " + rangeError);
            }
        }
        catch(error:Error)
        {
            // Certain errors are normal when executing a srcFunc or destFunc,
            // so we swallow them:
            //   Error #1006: Call attempted on an object that is not a function.
            //   Error #1009: null has no properties.
            //   Error #1010: undefined has no properties.
            //   Error #1055: - has no properties.
            //   Error #1069: Property - not found on - and there is no default value
            // We allow any other errors to be thrown.
            if ((error.errorID != 1006) &&
                (error.errorID != 1009) &&
                (error.errorID != 1010) &&
                (error.errorID != 1055) &&
                (error.errorID != 1069))
            {
                throw error;
            }
            else
            {
                if (BindingManager.debugDestinationStrings[destString])
                {
                    trace("Binding: destString = " + destString + ", error = " + error);
                }
            }
        }
Вот это достижение человеческого гения... (Это класс Binding, который используется во флексовом фреймворке на каждом шагу). Вот забиндили вы сеттер с ошибкой, ну и ищите его теперь по всему приложению...
__________________
Hell is the possibility of sanity

Старый 16.10.2009, 22:06
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 20  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
DarkLight, опираться на опыт, безусловно, необходимо, но головой всё же нужно думать своей, а не исправлять впоследствии недостатки чужой.

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:54.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.