Имя: Пароль:
1C
1С v8
Философский вопрос о коде
,
0 quest
 
03.06.12
17:07
1. 1 вариант 52% (14)
2. 2 вариант 48% (13)
Всего мнений: 27

Вот два примера условного кода. Они эквивалентны. Что делает УсловиеВыполнено() - не важно сейчас.
1. Функция Вариант1(ТЗ)
   для каждого х из ТЗ цикл
      если УсловиеВыполнено(х) тогда
         возврат истина;
      конецЕсли
   конецЦикла;
  возврат ложь;
  КонецФунции
2. Функция Вариант2(ТЗ)
   результат = ложь;
   для каждого х из ТЗ цикл
      если УсловиеВыполнено(х) тогда
         результат = истина;
         прервать
      конецЕсли
   конецЦикла;
  возврат результат;
  КонецФунции



Но вот какой из варинатов лучше?
1 kuromanlich
 
03.06.12
17:08
имхо

1 вариант
2 Sakura
 
03.06.12
17:10
мне 1 нравится больше

1 вариант
3 Агент Инфостарта
 
03.06.12
17:11
Первый вариант неправославный с точки зрения пуритан от программирования. Процедура или функция должна иметь одну точку выхода.

А так первый, он короче.

1 вариант
4 Doomer
 
03.06.12
17:12
По моему более читаемый.

1 вариант
16 Wobland
 
03.06.12
17:55
извращенец. конечно

1 вариант
45 Партизан
 
03.06.12
18:26
не надо плодить лишние сущности, в данном случае переменная "результат"

1 вариант
84 Партизан
 
03.06.12
18:44
(80) на асме будешь писать jmp к концу функции вместо того чтобы сразу retn ?
я за быстродействие и минимальное использование памяти

1 вариант
85 Mort
 
03.06.12
18:44
В дремучие времена отсутствия модульного программирования, структур данных и областей видимости, функции были на 8-20 листов (экранов). И затерять возврат из такой функции в центре кода было не совсем этично. Сейчас, когда функция больше одного-двух экранов уже смахивает на г-код, возврат из середины функции гораздо лучше читается чем переход в конец модуля.

1 вариант
106 DimVad
 
03.06.12
19:12
Первый вариант быстрее и легче читается - требует меньше "мозговых тактов" ;-)

1 вариант
109 0_Serg_0
 
03.06.12
21:38
однозначно первый красивше
...но согласен с ораторами считающими как в (22)

1 вариант
111 orefkov
 
03.06.12
21:42
"Make it as simple as possible, but not simpler" (с)
Делай так просто, насколько возможно, но не проще.

1 вариант
113 dklushin
 
03.06.12
22:19
вариант 1

1 вариант
125 iceman2112
 
03.06.12
23:35
Это же очевидно

1 вариант
131 AlexSmolensky
 
04.06.12
00:21
(0) Утверждение, что "функция должна иметь одну точку выхода". Вероятно пошло с тех пор, когда программисты заботились о создании переменных в памяти в начале функции и очистке памяти от временных переменных при её завершении. В те времена, конечно вариант 2) будет однозначно правильным. Но сегодня платформа 1С сама об этом заботится.
Первый вариант чуть лучше читается (меньше строк). Других аргументов не вижу.

1 вариант
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс