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

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.11.2010, 17:22
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 1  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
По умолчанию Быдлокод?

Полный пример:

Код AS3:
var xml:XML = <LOCATIONS>
	<LOCATION ID = "1" STATUS = "OPEN" />
	<LOCATION ID = "2" STATUS = "CLOSE" />
	<LOCATION ID = "3" STATUS = "OPEN" />
	<LOCATION ID = "4" STATUS = "CLOSE" />
	<LOCATION ID = "5" STATUS = "OPEN" />
</LOCATIONS>;
 
var openLocationsID:Vector.<uint> = new Vector.<uint>();
 
xml.*.(@STATUS == "OPEN" && openLocationsID.push(@ID));
 
trace(openLocationsID);
 
//#################################
 
//Output: 1,3,5
Вот эта строчка добавляет в вектор id открытых локаций:

Код AS3:
xml.*.(@STATUS == "OPEN" && openLocationsID.push(@ID));
- быдлокод?)))
__________________
скриптограф

Старый 18.11.2010, 18:24
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 2  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
- нет.

Старый 18.11.2010, 18:38
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 3  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от i.o. Посмотреть сообщение
- нет.
обоснуйте свою точку зрения, пожалуйста))

С одной стороны выборка и занесение в вектор происходит за один проход без дальнейшей пробежки по XMLList-у с целью закладки результатов фильтрации в вектор, что благоприятно влияет на производительность, но с другой стороны код тяжелочитаем и на первый взгляд не очевиден, да и вообще как-то через костыли получилось)))
__________________
скриптограф

Старый 18.11.2010, 19:14
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 4  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
e4x фильтр это называется, а не костыли)

Старый 18.11.2010, 23:19
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 5  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от i.o. Посмотреть сообщение
e4x фильтр это называется, а не костыли)
Костыли в том смысле, что у нас есть выражение @STATUS == "OPEN", по которому производится фильтрация в фильтрующем операторе "()".
К этому выражению добавляется вызов ф-ии, которая никоим боком не относится к фильтрации и возвращаемый ею результат тоже не имеет отношения к фильтрации. Более того, добавляется этот вызов с помощью "логического И", что должно под собой подразумевать фильтрационную осмысленность происходящего, а вот нет...
Т.е. с точки зрения здравого смысла и логики - это полнейший маразм и совершеннейший быдлокод, но зато в один проход и одну строчку)))

Добавлено через 6 минут
Цитата:
Сообщение от Котяра Посмотреть сообщение
Минус его в абсолютной неООПности, т.к. выражения очень зависят от структуры конкретного XML.
Мне кажется он гораздо менее привязан к структуре, чем DOM-овский вариант из AS2, и как-то более абстрактен, что ли...)))

Добавлено через 10 минут
Хотя вы наверно имеете в виду его привязку к именам, а не к структурному скелету, про которую я подумал)))
__________________
скриптограф

Старый 18.11.2010, 22:11
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 6  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Я вообще считаю e4x очень быдлокодным в принципе, но он сокращает запись и в чём-то удобен - остаётся только привыкнуть).
Минус его в абсолютной неООПности, т.к. выражения очень зависят от структуры конкретного XML.
А RegExp вообще брэйнфак, но бывает очень нужен.
__________________
Отряд Котовскага

Старый 20.11.2010, 11:14
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Если с проверками, то так
Код AS3:
var xml:XML = <LOCATIONS>
	<LOCATION ID = "1" STATUS = "OPEN" />
	<LOCATION ID = "2" STATUS = "CLOSE" />
	<LOCATION STATUS = "OPEN" />
	<LOCATION ID = "4" STATUS = "CLOSE" />
	<LOCATION ID = "5" STATUS = "OPEN" />
	<LOCATION ID = "6"  />
</LOCATIONS>;
 
var openLocationsID:Vector.<uint> = new Vector.<uint>();
xml.*.(hasOwnProperty ("@ID") && hasOwnProperty ("@STATUS") && @STATUS == "OPEN" && openLocationsID.push(@ID));
 
trace (openLocationsID);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

Старый 20.11.2010, 14:05
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Цитата:
А если нужно будет брать из LOCATION ещё какую-то информацию?
А если не нужно? Что вы придумываете? Код пишется исходя из задачи. Код вполне читаемый. Гибкий? Гибкость кода определяется не одной строчкой, а набором решаемых задач блоком кода.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

блогер
Регистрация: Sep 2010
Адрес: Россия
Сообщений: 137
Записей в блоге: 3
Цитата:
А если не нужно? Что вы придумываете? Код пишется исходя из задачи. Код вполне читаемый. Гибкий? Гибкость кода определяется не одной строчкой, а набором решаемых задач блоком кода.
Пожалуй верно, по одной строчке нельзя судить о коде в целом. Под читаемостью кода вроде как понимается лёгкость его восприятия, а не то, что мы знаем символы из которых он состоит.
Кроме того такая запись
Код:
<LOCATION ID = "5" STATUS = "OPEN" />
подразумевает, что статусов может быть больше двух, а значит в коде может быть существует такая строчка
Код AS3:
xml.*.(@STATUS == "CLOSE" && closeLocationsID.push(@ID));
и, соответственно, подобные для каждого статуса.
Может быть я конечно переборщил с телепатией, но в целом это кажется признаком не очень хорошего стиля.

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

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

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


 


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


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