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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.01.2011, 15:45
JackFromChaos вне форума Посмотреть профиль Отправить личное сообщение для JackFromChaos Найти все сообщения от JackFromChaos
  № 31  
Ответить с цитированием
JackFromChaos
 
Аватар для JackFromChaos

блогер
Регистрация: Jan 2008
Адрес: Донецк
Сообщений: 162
Записей в блоге: 2
Отправить сообщение для JackFromChaos с помощью Skype™
Впрочем, анонимные функции – вещь такая... Не то что бы серьезный предмет спора... Можно использовать, можно не использовать. Лучше стараться не использовать, тут спорить не будут. Хотя недостатки которые приводил Блад, вполне могут не иметь значение в каких-то ситуациях. Он же, кстати, приводил пример с анонимными функциями тут, в коментах: http://www.flasher.ru/forum/blog.php?b=239

А не хочу я спорить по поводу того, что лучше callback или event... Ибо бессмысленно это... (я кстати редко работаю один над проектами, к слову).
Мне, скажем не с руки для выполнения каждого обращения к серверу создавать новый объект, подписываться на событие, затем отписываться в обработчике. НО если вам нравится, то пожалуйста.
Опять же, ошибка коннекта к серверу, и результат выполнения RPC метода, это две совершенно разные, принципиально не похожие вещи. И почему они тогда должны работать одинаково?

Добавлено через 7 минут
Кстати, конечный пользователь RPC системы врядли будет задумываться о том, как подписаться на ошибку конекта, потому как это делается один раз, и больше к этому редко возвращаются. При этом remote методы вызываются постоянно, и даже если за кадром там таки приходится создавать экземпляр какого то класса, для его вызова, конечному пользователю это знать не обязательно. Даже скорее не надо, так как RPC система может изменится, например переходом на другой протокол, но код, который ее использует зависеть от этого не должен. Это как раз пример слабой связности.

Добавлено через 1 час 42 минуты
Кстати, вот яркий пример того, о чем я говорил от adobe:
http://help.adobe.com/ru_RU/AS3LCR/F...onnection.html
метод call
__________________
Искренне Ваш, Джек.


Последний раз редактировалось JackFromChaos; 24.01.2011 в 17:29.
Старый 24.01.2011, 19:37
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 32  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Анонимные функции прикольно смотрятся при фильтрации массива. Например:

Код AS3:
private function extractChecksByClass(classId:int):Array
{
	var f:Function = function(item:ScanCheckObject, index:int, array:Array):Boolean
	{
		return item.classId==classId;
	}
 
	return _checks.filter(f);
}
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 24.01.2011, 20:08
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 33  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Новосибирск :D
Сообщений: 6,597
Записей в блоге: 17
Цитата:
Хотя недостатки которые приводил Блад, вполне могут не иметь значение в каких-то ситуациях. Он же, кстати, приводил пример с анонимными функциями тут, в коментах
А потом он сказал что так бы он делать не стал.

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

блогер
Регистрация: Jan 2008
Адрес: Донецк
Сообщений: 162
Записей в блоге: 2
Отправить сообщение для JackFromChaos с помощью Skype™
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
А потом он сказал что так бы он делать не стал.
Ну вопрос ведь не в том, как, кто стал бы делать? Каждый делает как хочет, или как ему позволено правилами принятыми в проекте.
Но факт в том, что пользоваться анонимными функциями в принципе можно, если знаешь как они работают...


Когда то я читал книгу, в которой рекомендовали при сравнении писать константу начале а переменную, в конце:
if(5==i) вместо if(i==5). Для того что бы было меньше шансов ошибится.
С анонимными функциями похожая ситуация. Если программист не достаточно опытен, что бы отличить ситуация, где можно использовать анонимные функции, а где, нет, ему лучше придерживаться правила о том, что их лучше не использовать вообще.
Но опытный программист не будет загонять себя в подобные рамки. Анонимные функции – это не пережиток прошлых AS. Они так же есть, к примеру, в c#, а там уж никто не заставлял их реализовывать. И там это отнюдь не считается признаком плохого тона...

Если уж на то пошло переборщить легко и с использованием тех же паттернов программирование доведя проект до абсолютной невменяемости... А ведь казалось бы, все одобрено свыше
__________________
Искренне Ваш, Джек.

Старый 24.01.2011, 21:36
f.g.programmer вне форума Посмотреть профиль Отправить личное сообщение для f.g.programmer Найти все сообщения от f.g.programmer
  № 35  
Ответить с цитированием
f.g.programmer
 
Аватар для f.g.programmer

блогер
Регистрация: Sep 2010
Адрес: Россия
Сообщений: 137
Записей в блоге: 3
Не могу основательно аргументировать своё мнение, но считаю, что анонимные функции -зло, и всегда стараюсь избавиться от них, когда встречаю. Использование анонимных функций не является признаком опыта (только если маленького).
Помимо прочих недостатков анонимных функций - считаю, что все локальные переменные должны умирать после окончания выполнения метода.

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
В AS3 все просто - ситуаций, когда можно использовать анонимные функции нет
А если по серьезному про слушателей, то, если по среднему и больше проекту пройтись проверкой PMD, то самое часто встречающееся предупреждение будет о том, что параметры функции не использованы, и это будут именно слушатели. Просто мы как-то игнорируем тот факт, что в подавляющем большинстве случаев объект события нам не нужен, и генерится по чем зря.
__________________
Hell is the possibility of sanity

Старый 24.01.2011, 23:23
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 37  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от JackFromChaos Посмотреть сообщение
Если уж на то пошло переборщить легко и с использованием тех же паттернов программирование доведя проект до абсолютной невменяемости... А ведь казалось бы, все одобрено свыше
Помнится, Вы говорили, что у Вас большой опыт программирования, или я ошибся?

Пример приведёте с "переборщить легко" такой, чтобы он был "до абсолютной невменяемости"? Вы же неглупый человек, зачем так перегибать? Видится мне, что можно по-спокойнее рассуждать, без крайностей.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 24.01.2011, 23:57
JackFromChaos вне форума Посмотреть профиль Отправить личное сообщение для JackFromChaos Найти все сообщения от JackFromChaos
  № 38  
Ответить с цитированием
JackFromChaos
 
Аватар для JackFromChaos

блогер
Регистрация: Jan 2008
Адрес: Донецк
Сообщений: 162
Записей в блоге: 2
Отправить сообщение для JackFromChaos с помощью Skype™
А я не спокойно рассуждаю? Тогда извините, не специально...

Пример привести не могу. У меня слава богу, таких примеров нет. Но мне вообще повезло, мне не приходилось заниматься саппортом и рефакторингом чужого кода.(Но слышал рассказы о таком...)
Лично из своего опыта - бывает, перебарщиваю с проектированием, в результате вещи которые можно было бы сделать проще, получаются сложнее, чем можно было сделать(типа как, "мы легких путей не ищем)". Но не критично. Кстати, начав программировать на as3, стал больше делать "влоб", т.е. чаще ищу "простые пути".
А вообще, мне конечно не понятно, откуда такая злостное неприятие анонимных функций. Но может я просто еще чего то не понимаю. Серьезно флэшем я занимаюсь пол года, до этого долгое время программил на c#. Там никаких проблем с анонимными функциями нет...
__________________
Искренне Ваш, Джек.


Последний раз редактировалось JackFromChaos; 25.01.2011 в 00:03.
Старый 25.01.2011, 00:31
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 39  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
А вообще, мне конечно не понятно, откуда такая злостное неприятие анонимных функций. Но может я просто еще чего то не понимаю.
На мой взгляд, анонимные функции по своей природе противоречат принципу многократного использования кода. В принципе, уже этого достаточно. Выигрыша же никакого очевидного нет.

Старый 25.01.2011, 00:53
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 40  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Новосибирск :D
Сообщений: 6,597
Записей в блоге: 17
В шарпе, если я не ошибаюсь, их можно использовать безболезненно.
У нас - нет. Не поленитесь, поищите пост Блуда. Желание использовать отбивает на раз.

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

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

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


 


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


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