Имя: Пароль:
1C
1С v8
Как правильнее писать функции в конструкции "Если Тогда"
0 xsnika
 
30.06.17
12:47
В общем случае как правильнее писать функции в конструкции "Если Тогда"
При этом пока «Переменная» используется 1 раз в процедуре

Вариант 1
Переменная = ПолучитьЗначениеБулево();
Если Переменная Тогда
….

Вариант2
Если ПолучитьЗначениеБулево() Тогда
….

Аргументируйте свое мнение
1 dezss
 
30.06.17
12:49
Если это значение используется в дальнейшем, то вариант 1, если нет, то вариант 2.
2 svsvsv
 
30.06.17
12:50
+1
3 svsvsv
 
30.06.17
12:50
+(1)
4 lodger
 
30.06.17
12:51
к (1) +100500.
если переменная из условия потом используется, то лучше завести переменную и вычислить 1 раз. или часть.
иначе можно и в "если ..." посчитать один раз.
5 Кирпич
 
30.06.17
12:54
(0) в идеале, программа должна быть понятной, короткой и быстро работать. неужели этому сейчас на информатике не учат.
6 xsnika
 
30.06.17
12:58
(5) А вам как понятнее в отладчике переменную смотреть или функцию выделять смотреть что она вернёт? Мне удобнее анализировать вариант 1, писать удобнее/быстрее  вариант2
7 Buster007
 
30.06.17
13:01
(6) а в ПолучитьЗначениеБулево мегазапрос
8 Кирпич
 
30.06.17
13:02
(6) ну и делай вариант 1. никто не запрещает
9 xsnika
 
30.06.17
13:02
может быть и "мегазапрос"
10 xsnika
 
30.06.17
13:02
меня смущает, что перемена будет висеть всю процедуру в памяти
11 Рэйв
 
30.06.17
13:03
(10)Если смущает - очисти ее и не смущайся
12 xsnika
 
30.06.17
13:04
(11) тогда это лишний код
13 Рэйв
 
30.06.17
13:05
(12)
Переменная="";
ну так нагрузит систему шописец просто
14 kuzyara
 
30.06.17
13:07
4. Не рекомендуется в названиях процедур и функций описывать типы принимаемых параметров и (или) возвращаемых значений.

Например, неправильно:

Функция ПолучитьМассивРолейСПравомДобавления()
Функция ПолучитьСтруктуруДополнительныхНастроек()

Правильно:

Функция ИменаРолейСПравомДобавления()
Функция ДополнительныеНастройки()

(с) https://its.1c.ru/db/v8std
15 kuzyara
 
30.06.17
13:08
6.1. Имена функций в общем случае следует образовывать от описания возвращаемого значения.

Неправильно:

Функция ПолучитьПолноеИмяПользователя()
Функция СоздатьПараметрыЗаполненияЦенПоставщика()
Функция ОпределитьДатуНачалаСеанса()

Правильно:

Функция ПолноеИмяПользователя()
Функция НовыеПараметрыЗаполненияЦенПоставщика()
Функция ДатаНачалаСеанса()
16 Mankubus
 
30.06.17
13:08
с помощью этого хотите оптимизировать базу? лучше про индексы почитать
17 kuzyara
 
30.06.17
13:09
Вариант3
Если ЗначениеБулево() Тогда


так правильней
18 Провинциальный 1сник
 
30.06.17
13:10
(15) Еще бы можно было в функциях без параметров опускать скобки, как в паскале - было бы совсем круто)
19 xsnika
 
30.06.17
13:15
(16) нет, вопрос теоретический
20 xsnika
 
30.06.17
13:17
(15) сейчас вопрос не об именах, хотя замечание верное
21 svsvsv
 
30.06.17
13:18
(17) - это вариант 1 скорей, а не вариант 3.
Здесь ведь речь идет идет не о правильности наименования, а о том, создавать ли отдельную переменную
22 svsvsv
 
30.06.17
13:19
(21) вернее это вариант 2, а не 3
23 dezss
 
30.06.17
14:16
Это все проходили еще на первом курсе. Причем, в самом начале первого курса.
Всегда надо искать оптимальный вариант между ресурсами проца и памятью. И в каждом конкретном случае надо определять что будет оптимальней.
(6) какая разница? и переменную можно обозвать черти как и функцию, и придется смотреть что она вернет, так что определение переменной читабльености кода не добавит, а даже наоборот, ухудшит, если эту переменную определять левой задней пяткой в самой глуши кода.