|
Передача параметров в процедуру. Структура или отдельные переменные.? | ☑ | ||
---|---|---|---|---|
0
bizon2008
25.02.13
✎
13:59
|
Доброго дня. Во задумался. Что удобней, эффективней. При передачи параметров в процедуру. Структура или отдельные переменные?
Структура удобна, можно что хошь предать, но ее надо создать и заполнить Куча отдельных переменных пока мало ничего, но чем больше тем все непрозрачно. А как делаете вы, уважаемые мистяне? |
|||
1
ДенисЧ
25.02.13
✎
14:00
|
Если параметров до 5 - то явно. Иначе надо задумываться.
|
|||
2
Тролль главный
25.02.13
✎
14:00
|
(0) создаем объект и заполняем его атрибуты
|
|||
3
yuch
25.02.13
✎
14:01
|
Если параметров много то через структуру.
|
|||
4
bizon2008
25.02.13
✎
14:30
|
В общем, стандарта нет.
|
|||
5
fisher
25.02.13
✎
15:25
|
Откуда ж ему взяться, стандарту-то?
Я обычно выделяю часть параметров в структуру, когда они явно представляют собой одну смысловую группу. Т.е. исключительно с точки зрения читабельности и удобства. Безликие структуры создавать как-то глупо. Обычно, когда число параметров растет, они так или иначе бьются на смысловые группы и проблемы чего и как именно объединять - не возникает. |
|||
6
MSII
25.02.13
✎
15:30
|
Первые три параметра - переменными, если больше, то остальные, начиная с четвертого, в структуру с именем ДополнительныеПараметры. Более-менее универсально получается.
|
|||
7
bizon2008
25.02.13
✎
16:11
|
Но структуру, надо при каждый вызове процедуры описывать и заполнить. А это тоже код, и причем часто дублирующийся.
|
|||
8
Тролль главный
25.02.13
✎
16:14
|
(7) там одна строка
|
|||
9
Принт
25.02.13
✎
16:15
|
(0) Было бы о чем задумываться.
|
|||
10
bizon2008
25.02.13
✎
16:17
|
(8)Кинь пример.
|
|||
11
bizon2008
26.02.13
✎
12:19
|
апну, может интересное напишут.
|
|||
12
Feunoir
26.02.13
✎
12:25
|
(10) СтруктураПараметров = Новый (Структура);
|
|||
13
Feunoir
26.02.13
✎
12:25
|
СтруктураПараметров = Новый Структура;
конечно-же :) |
|||
14
Очкарик
26.02.13
✎
12:26
|
да хоть через таблицу значений
|
|||
15
kosts
26.02.13
✎
12:28
|
(11) Уже не помню, когда много параметров в процедуре делал.
Стараюсь разбивать сложные процедуры на отдельные. |
|||
16
beer_fan
26.02.13
✎
12:30
|
Я еще через структуру делаю, когда есть неопределенности при создании функции. То есть если неизвестно, сколько параметров в итоге будет передаваться, поэтому, чтобы не переделывать потом вызов, просто структуру создаю.
|
|||
17
olegves
26.02.13
✎
12:51
|
Если в локальной сети, то без разницы, а если в тонком клиенте через Инет, то только структура
|
|||
18
bizon2008
26.02.13
✎
22:59
|
Спасибо парни за ответы. Узнал много нового.
Но как аляповато со структурой получается. Может можно ее как-то компактней писать? Вот пример. ПараметрыСписанияПередать = Новый Структура; ПараметрыСписанияПередать.Очистить(); ПараметрыСписанияПередать.Вставить("Фирма", Фирма); ПараметрыСписанияПередать.Вставить("Склад", Склад); ПараметрыСписанияПередать.Вставить("Дата", Дата); ПараметрыСписанияПередать.Вставить("Товары", тзНоменклатураКоличесво); ПараметрыСписанияПередать.Вставить("МоментВремениДляРассчета", МоментВремени()); ПараметрыСписанияПередать.Вставить("Движения", Движения); |
|||
19
Asmody
26.02.13
✎
23:03
|
(18) посмотри в СП конструктор структуры, может на мысли натолкнет
|
|||
20
zak555
26.02.13
✎
23:06
|
(18)
ПараметрыСписанияПередать = Новый Структура("Фирма,Склад,Дата,Товары,МоментВремениДляРассчета,Движения",Фирма,Склад,Дата,тзНоменклатураКоличесво,МоментВремени(),Движения); |
|||
21
bolder
26.02.13
✎
23:07
|
(0) Как в типовых.Создается структура,а элементами ее могут быть другие структуры.
|
|||
22
Фокусник
26.02.13
✎
23:08
|
(18) Струк=Новый Структура("парам1","парам2",1,2)
|
|||
23
bizon2008
26.02.13
✎
23:10
|
(19)(20)Спасибо. Но хрен редки не слаще, получается длинная строка. Плюс повышается возможность накосячить.
|
|||
24
zladenuw
26.02.13
✎
23:11
|
(23) можно отдельно в функцию или процедуру. а передавать список параметров и заполнять.
|
|||
25
bizon2008
26.02.13
✎
23:11
|
+(23)Длинная строка плохо читабельна.
|
|||
26
bizon2008
26.02.13
✎
23:12
|
(24)zladenuw - это как?
|
|||
27
Asmody
26.02.13
✎
23:14
|
Я иногда пишу функции, возвращающие нужные структуры и заполняющие параметры. Вызов превращается в нечто
ОсновнаяФункция( ЗаполнитьГруппуПараметров2( ЗаполнитьГруппуПараметров1( СтруктураПараметров("Свойство1, Свойство2...") , Параметр1,Параметр2..) Параметр11, Параметр22) ); |
|||
28
zak555
26.02.13
✎
23:19
|
(27) упростить никак ?
|
|||
29
Asmody
26.02.13
✎
23:20
|
(28) можно, но в некоторых случаях так понятнее
|
|||
30
YHVVH
26.02.13
✎
23:31
|
(0) правильней вообще не передавать , только через свойства объекта.
|
|||
31
Asmody
26.02.13
✎
23:43
|
(30) да, только не всегда можно передать объект
|
|||
32
Тролль главный
26.02.13
✎
23:57
|
тут и проблема: РБД или ООП
|
|||
33
zladenuw
27.02.13
✎
00:09
|
(27) прикольно
|
|||
34
GANR
27.02.13
✎
00:33
|
отдельные переменные, представляющие собой структуры
|
|||
35
unregistered
27.02.13
✎
00:51
|
ОФФ. Такая животрепещущая тема и без голосовалки.... Куда катиться миста?...
|
|||
36
France
27.02.13
✎
01:22
|
(0) явное описание всегда прозрачнее в отличие от уродских структур.
|
|||
37
bizon2008
27.02.13
✎
12:25
|
(27)Спасибо Asmody. Вариант бесспорно интересный. Но мою главную проблему пложую читабельность кода он не решает. Но покопаюсь в этом направлении, может чего придумаю.
(34)Масломасляное. |
|||
38
ptiz
27.02.13
✎
12:28
|
(6) Обычно так и получается, когда процедуры разрастаются.
(27) Жестоко. |
|||
39
acsent
27.02.13
✎
12:30
|
(20) за такой код - линейкой по рукам
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |