Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Интересно ваше мнение... / 25 сообщений из 76, страница 1 из 4
02.04.2008, 15:47
    #35230280
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
Интересно ваше мнение... Вот тут вышла дискуссия у меня с молодежью. На предмет "что лучше"?
Задачка - пробежаться по узлам некой переменной
Вот мой вариант
Код: plaintext
1.
2.
3.
4.
 s uz=$o(^tmp(""))
 while uz'="" {
    d PROC
    s uz=$o(^tmp(uz))
 }
Вот т.с. альтернативный
Код: plaintext
1.
2.
3.
4.
5.
 s uz=""
 f  {
    s uz=$o(^tmp(uz))
    q:uz=""
    d PROC
 }
Кто бы какой вариант предпочел? Может еще какой кто покажет?
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
02.04.2008, 15:53
    #35230311
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
Код: plaintext
s uz="" f  s uz=$o(^tmp(uz)) q:uz=""  d PROC
...
Рейтинг: 0 / 0
02.04.2008, 16:02
    #35230347
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
ну я , этот вариант мы применяем еще с MSM... Но молодеж меня критикует за т.с. архаичность. Типа старый синтаксис и все такое...
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
02.04.2008, 16:09
    #35230385
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
да Вы плюньте... мне лично такая "архаичность" более понятна. А если вложенность - 10-15 уровней, что они с этими скобками делать будут?
...
Рейтинг: 0 / 0
02.04.2008, 16:17
    #35230425
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
ceshkaда Вы плюньте...
Это не научный подход.
ceshkaА если вложенность - 10-15 уровней, что они с этими скобками делать будут?
У нас такого нет. Все "вложения" только как в примерах выше...
...
Рейтинг: 0 / 0
02.04.2008, 16:25
    #35230458
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
тогда я за первый вариант
...
Рейтинг: 0 / 0
02.04.2008, 16:29
    #35230477
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
по мне так первый лучше, он в стиле языков объектно-ориентированного программирования.

такой цикл как во втором варианте слишком уж по древнему, когда я в технаре еще учился так писать было не "этично", но такой тип цикла прижился с времен MSM. поробуй на VB2005 такой накатай будет как минимум "неудобно" в глаза профессионалам смотреть
...
Рейтинг: 0 / 0
02.04.2008, 16:30
    #35230482
Интересно ваше мнение...
хрень полная эти ваши скобки
...
Рейтинг: 0 / 0
02.04.2008, 16:32
    #35230489
Интересно ваше мнение...
s uz="" f s uz=$o(^tmp(uz)) q:uz="" d
. PROC
. q



вот самый идеальный вариант на мой взгляд...
...
Рейтинг: 0 / 0
02.04.2008, 16:44
    #35230530
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
скобки обрабатываются быстрее чем точки
прошлогодняя школа
...
Рейтинг: 0 / 0
02.04.2008, 16:50
    #35230563
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
С применением "точек" я борюсь уже лет 10.
В своей конторе почти победил, их используют только ленивые и не сознательные... Но я не теряю надежды "добить" и их.
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
02.04.2008, 16:58
    #35230602
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
я 1,5 года на Cache и никак не могу привыкнуть к "точкам"
...
Рейтинг: 0 / 0
02.04.2008, 17:02
    #35230620
ceshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
Ymka2007скобки обрабатываются быстрее чем точки

насколько именно и почему, не знаете?
...
Рейтинг: 0 / 0
02.04.2008, 17:12
    #35230679
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
на самой школе меня не было
передал коллега который там был
...
Рейтинг: 0 / 0
02.04.2008, 17:33
    #35230775
Интересно ваше мнение...
ну если блюсти стиль то скобки конечно элегантнее, чем точки

а по теме: первый вариант...но если много вложенных while'ов уже нагромождение какое то получается...
...
Рейтинг: 0 / 0
02.04.2008, 18:01
    #35230909
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
усли грамотно использовать функции и процедуры то можно избежать нагромождения
у меня больше двух вложенных циклов не бывает
...
Рейтинг: 0 / 0
02.04.2008, 19:25
    #35231125
Интересно ваше мнение...
krvsaС применением "точек" я борюсь уже лет 10.


интересно.. какая альтернатива ? что может быть лучше вложений ? уровней ? эти ваши "скобки" ?
...
Рейтинг: 0 / 0
02.04.2008, 19:27
    #35231129
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
пара скобок
и нужные процедуры или функции
...
Рейтинг: 0 / 0
02.04.2008, 19:30
    #35231140
Интересно ваше мнение...
омский мампсерs uz="" f s uz=$o(^tmp(uz)) q:uz="" d
. PROC
. q



вот самый идеальный вариант на мой взгляд...


s uz="" f s uz=$o(^tmp(uz)) q:uz="" d
. D PROC
. q

пропустил Do PROC



прошу прощения http://www.sql.ru/forum/images/smoke.gif
...
Рейтинг: 0 / 0
02.04.2008, 20:56
    #35231252
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
Ymka2007скобки обрабатываются быстрее чем точки
прошлогодняя школа

Да ??? раньше другое вроде говорорили
...
Рейтинг: 0 / 0
02.04.2008, 21:00
    #35231256
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
krvsaИнтересно ваше мнение... Вот тут вышла дискуссия у меня с молодежью. На предмет "что лучше"?
Задачка - пробежаться по узлам некой переменной
Вот мой вариант
Код: plaintext
1.
2.
3.
4.
 s uz=$o(^tmp(""))
 while uz'="" {
    d PROC
    s uz=$o(^tmp(uz))
 }
Вот т.с. альтернативный
Код: plaintext
1.
2.
3.
4.
5.
 s uz=""
 f  {
    s uz=$o(^tmp(uz))
    q:uz=""
    d PROC
 }
Кто бы какой вариант предпочел? Может еще какой кто покажет?
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT

Лучшим считаю второй вариант - ибо при изменении или аудите кода нужно будет проверить один $order, а не два как в первом варианте
...
Рейтинг: 0 / 0
02.04.2008, 22:21
    #35231349
Sergei Obrastsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
Ymka2007скобки обрабатываются быстрее чем точки
прошлогодняя школа
Чушь. Быстрее точек обрабатывается только цикл в одну строчку
...
Рейтинг: 0 / 0
02.04.2008, 22:28
    #35231356
Sergei Obrastsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
Ymka2007скобки обрабатываются быстрее чем точки
прошлогодняя школа
Чушь. Быстрее точек обрабатывается только цикл в одну строчку
...
Рейтинг: 0 / 0
03.04.2008, 01:21
    #35231495
Sergei Obrastsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
krvsa ceshkaда Вы плюньте...
Это не научный подход.

А "научный подход", это когда скорость выполнения программы оптимизируется
железом? Тогда да, конечно, "архаично". К тому же while - структура "липовая".
Сие означает, что это надстройка над M его же средствами. Ни о чем не говорит? :)
...
Рейтинг: 0 / 0
03.04.2008, 05:18
    #35231526
logist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Интересно ваше мнение...
Приветствую.

Для меня однозначно второй вариант лучше. Причины две:

1) $order пишем только один раз, меньше вероятность ошибок
2) Часто бывают ситуации, когда обработку части узлов массива нужно пропустить.

Например:

s uz=$o(^tmp(""))
while uz'="" {
//Тут чегото накодили
if condition continue // Тут часть узлов отсеяли
d PROC
s uz=$o(^tmp(uz))
}

Что мы в итоге получаем? Правильно, бесконечный цикл при срабатывании условия
condition. Хорошо если кто-нибудь протестирует случай с отсеиванием узлов,
практика показывает, что могут и не протестировать. Получается, писать придется так:

s uz=$o(^tmp(""))
while uz'="" {
//Тут чегото накодили
if condition {
s uz=$o(^tmp(uz))
continue // Тут часть узлов отсеяли
}
d PROC
s uz=$o(^tmp(uz))
}

А это уже изврат.

Поэтому у себя используем только for. Злобные докуметаторы из интерсистемса,
кстати, везде используют while.

=Сергей Шутов (logist)
ООО Димас, Хабаровск
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Интересно ваше мнение... / 25 сообщений из 76, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]