|
|
|||||
Впрочем, анонимные функции – вещь такая... Не то что бы серьезный предмет спора... Можно использовать, можно не использовать. Лучше стараться не использовать, тут спорить не будут. Хотя недостатки которые приводил Блад, вполне могут не иметь значение в каких-то ситуациях. Он же, кстати, приводил пример с анонимными функциями тут, в коментах: 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. |
|
|||||
Анонимные функции прикольно смотрятся при фильтрации массива. Например:
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Цитата:
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Ну вопрос ведь не в том, как, кто стал бы делать? Каждый делает как хочет, или как ему позволено правилами принятыми в проекте.
Но факт в том, что пользоваться анонимными функциями в принципе можно, если знаешь как они работают... Когда то я читал книгу, в которой рекомендовали при сравнении писать константу начале а переменную, в конце: if(5==i) вместо if(i==5). Для того что бы было меньше шансов ошибится. С анонимными функциями похожая ситуация. Если программист не достаточно опытен, что бы отличить ситуация, где можно использовать анонимные функции, а где, нет, ему лучше придерживаться правила о том, что их лучше не использовать вообще. Но опытный программист не будет загонять себя в подобные рамки. Анонимные функции – это не пережиток прошлых AS. Они так же есть, к примеру, в c#, а там уж никто не заставлял их реализовывать. И там это отнюдь не считается признаком плохого тона... Если уж на то пошло переборщить легко и с использованием тех же паттернов программирование доведя проект до абсолютной невменяемости... А ведь казалось бы, все одобрено свыше
__________________
Искренне Ваш, Джек. |
|
|||||
Не могу основательно аргументировать своё мнение, но считаю, что анонимные функции -зло, и всегда стараюсь избавиться от них, когда встречаю. Использование анонимных функций не является признаком опыта (только если маленького).
Помимо прочих недостатков анонимных функций - считаю, что все локальные переменные должны умирать после окончания выполнения метода. |
|
|||||
Modus ponens
|
В AS3 все просто - ситуаций, когда можно использовать анонимные функции нет
А если по серьезному про слушателей, то, если по среднему и больше проекту пройтись проверкой PMD, то самое часто встречающееся предупреждение будет о том, что параметры функции не использованы, и это будут именно слушатели. Просто мы как-то игнорируем тот факт, что в подавляющем большинстве случаев объект события нам не нужен, и генерится по чем зря.
__________________
Hell is the possibility of sanity |
|
|||||
.
|
Цитата:
Пример приведёте с "переборщить легко" такой, чтобы он был "до абсолютной невменяемости"? Вы же неглупый человек, зачем так перегибать? Видится мне, что можно по-спокойнее рассуждать, без крайностей. |
|
|||||
А я не спокойно рассуждаю? Тогда извините, не специально...
Пример привести не могу. У меня слава богу, таких примеров нет. Но мне вообще повезло, мне не приходилось заниматься саппортом и рефакторингом чужого кода.(Но слышал рассказы о таком...) Лично из своего опыта - бывает, перебарщиваю с проектированием, в результате вещи которые можно было бы сделать проще, получаются сложнее, чем можно было сделать(типа как, "мы легких путей не ищем)". Но не критично. Кстати, начав программировать на as3, стал больше делать "влоб", т.е. чаще ищу "простые пути". А вообще, мне конечно не понятно, откуда такая злостное неприятие анонимных функций. Но может я просто еще чего то не понимаю. Серьезно флэшем я занимаюсь пол года, до этого долгое время программил на c#. Там никаких проблем с анонимными функциями нет...
__________________
Искренне Ваш, Джек. Последний раз редактировалось JackFromChaos; 25.01.2011 в 00:03. |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
В шарпе, если я не ошибаюсь, их можно использовать безболезненно.
У нас - нет. Не поленитесь, поищите пост Блуда. Желание использовать отбивает на раз.
__________________
Тут мужик танцует и поёт про флэш |
Часовой пояс GMT +4, время: 07:04. |
|
« Предыдущая тема | Следующая тема » |
|
|