|
Философский вопрос об оформлении кода - 2 | ☑ | ||||||
---|---|---|---|---|---|---|---|---|
0
quest
03.06.12
✎
19:13
|
что-то потянуло меня пофилософствовать.
есть 2 процедуры. Функция УсловиеВыполняется возвращает либо истину либо ложь. процедура Вариант1(ЛюбаяКоллекция) Для Каждого х из ЛюбаяКоллекция цикл если не УсловиеВыполняется(х) тогда Продолжить; КонецЕсли; .... Тут какие-то действия с элементом коллекции .... КонецЦикла; КонецПроцедуры процедура Вариант2(ЛюбаяКоллекция) Для Каждого х из ЛюбаяКоллекция цикл если УсловиеВыполняется(х) тогда .... Тут какие-то действия с элементом коллекции .... КонецЕсли; КонецЦикла; КонецПроцедуры Какой из вариантов оформленя кода для вас предпочтительней? |
|||||||
1
aleks-id
03.06.12
✎
19:47
|
монопенисуально
3 Вариант. |
|||||||
2
МихаилМ
03.06.12
✎
20:22
|
это описано в "совершенный код"
|
|||||||
3
Torquader
03.06.12
✎
20:25
|
Первый вариант предпочтительней, если сложное условие,
так как его можно разбить на несколько (Если Подусловие(х) Тогда Продолжить;КонецЕсли) Второй вариант предпочтительнее в случае, когда планируется изменение кода, так как дописать в цикл два разных действия при различных условиях будет значительно проще: Если Условие1(Эл) Тогда Обработка1(Эл) КонецЕсли; Если Условие2(Эл) Тогда Обработка2(Эл); КонецЕсли; |
|||||||
4
DrShad
03.06.12
✎
20:37
|
да что же за фигня, (0) отсыпь уже - хочу чтоб и меня так торкунуло в выходной-то день
|
|||||||
5
quest
03.06.12
✎
20:42
|
(4) кому выходной, а кому и работать приходиться....
|
|||||||
6
aleks-id
03.06.12
✎
20:43
|
(5) судя по темам не приходится ;)
|
|||||||
7
quest
03.06.12
✎
20:44
|
(6) это просто что бы отвлечься...
|
|||||||
8
quest
03.06.12
✎
20:45
|
нельзя же все время только о работе думать.
|
|||||||
9
IamAlexy
03.06.12
✎
20:46
|
мне первый нравится больше...
удобнее когда в конце функции пролистаешь не надо разбираться в бесконечных конецесли; конецесли; конецесли; конецесли; конецесли; конецесли; конецесли; и высчитывать где ты там очередное "конецесли;" забыл поставить |
|||||||
10
Азазелло
03.06.12
✎
20:49
|
+ еще в одну строку Если ... Тогда Продолжить КонецЕсли;
1 Вариант |
|||||||
11
0_Serg_0
03.06.12
✎
21:41
|
удобнее если надо будет изменить код (добавить условий)
1 Вариант |
|||||||
12
experimentator76
03.06.12
✎
22:25
|
пользую интуитивно оба варианта
тему можно закрывать |
|||||||
13
vde69
03.06.12
✎
22:31
|
первый вариант проще читать
второй вариант прощще расширить (сделать несколько вариантов) использую оба |
|||||||
14
acsent
03.06.12
✎
22:58
|
(13) написать 1 лишнюю строчку - как сложно однако
|
|||||||
15
dklushin
03.06.12
✎
23:12
|
"Функция УсловиеВыполняется возвращает либо истину либо ложь."(0)
Спасибо что прояснил, кэп. |
|||||||
16
dklushin
03.06.12
✎
23:18
|
по теме: конечно вариант 2. Вариант 1 это быдлокод, зачем было писать "продолжить;" если это не сократило ни количество переменных, ни количество конструкций языка?
(9) посмотри внимательно, в обоих вариантах одинаковое количество циклов и условий. 2 Вариант |
|||||||
17
dklushin
03.06.12
✎
23:19
|
вообще злоупотреблять операторами безусловного перехода не стоит даже в 1с.
|
|||||||
18
experimentator76
03.06.12
✎
23:28
|
они в 1С не нужны
|
|||||||
19
dklushin
03.06.12
✎
23:30
|
(18) ну тот же "продолжить" нужен, когда ищешь элемент в массиве, нашёл, зачем продолжать цикл? приходится брейк вызывать.
|
|||||||
20
КонецЦикла
03.06.12
✎
23:32
|
Первый рулит имхо, сразу понятно что отсекается (читабельнее что ли)
|
|||||||
21
IamAlexy
03.06.12
✎
23:32
|
(16) внимательно мой пример почитай и подумай еще раз..
|
|||||||
22
experimentator76
03.06.12
✎
23:35
|
(19) я подумал про GOTO
продолжить - неявный переход |
|||||||
23
IamAlexy
03.06.12
✎
23:36
|
(19) фантазию включи.. если надо обработать 2 строки а не одну..
а если вдруг о боже - целых три строки? или, чем черт не шутит, аш невообразимых ЧЕТЫРЕ строки??? |
|||||||
24
quest
03.06.12
✎
23:36
|
голосовать не забывайте, а?
И аргументировать почему вам нравиться тот или иной вариант. все таки хочется собрать статистику. |
|||||||
25
quest
03.06.12
✎
23:37
|
(22) попытка/исключение - это тоже неявное гото. и что? смысл его бояться?
|
|||||||
26
IamAlexy
03.06.12
✎
23:37
|
статистика
1 Вариант |
|||||||
27
IamAlexy
03.06.12
✎
23:37
|
на мисте
2 Вариант |
|||||||
28
IamAlexy
03.06.12
✎
23:37
|
как правлио
1 Вариант |
|||||||
29
IamAlexy
03.06.12
✎
23:37
|
несколько не отражает
2 Вариант |
|||||||
30
IamAlexy
03.06.12
✎
23:37
|
статистику
1 Вариант |
|||||||
31
quest
03.06.12
✎
23:40
|
в теперь бы еще аргументацию к постам с (26) по (30) :)
|
|||||||
32
dklushin
03.06.12
✎
23:40
|
(21) подумал. В какой-то степепи проще. Не стоит того)
(23) да хоть стотыщ? ты хочешь сказать, чтио второй вариант будет медленнее? (25) вот за это в цикле руки отрывают. Попытка/исключение очень медленный процесс. Лучше 100 проверок, если это возможно, чем выполнение кода в попытке. 2 Вариант |
|||||||
33
IamAlexy
03.06.12
✎
23:41
|
аргументация простая - любой мистятен может в одной и той же ветке проголосовать любое количество раз, причем за разные варианты...
ВР грит типа это правильнее.. Это я к тому что голосовалка на мисте носит единственный смысл - нетопить длинные ветки |
|||||||
34
IamAlexy
03.06.12
✎
23:45
|
(32) 1. ага.. во всех степенях проще.. когда у тебя процедура/функция в пять-семь скринов вмещается, то есть ты ее всю сразу не видишь - реально подбешивает когда у тебя в конце процедуры/фуннкции собрана хрень типа
конецЕсли; конецЕсли; конецЕсли; КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла; КонецЦикла; КонецЕсли; и проверка ругается на то что где то этот конец... лишний.. или его наоборот нехватает.. а первый вариант позволяет упростить, уменьшить количство вложенностей условий.. сразу 2. я про скорость ничего не говорил - речь сугубо про удобочитаемость кода и удобство дальнейшей модификации оного. 3. всем плевать что ты в цикле делаешь если у тебя в целом программа работает так как она должна работать.. задрачиваться на эфимерное "попытка медленнее чем если" и приэтом делать неоптимальные запросы - смысла мало.. |
|||||||
35
dklushin
03.06.12
✎
23:55
|
(34)
вот 3 пункт твой главный аргумент: "какая тебе нафиг разница, всё равно работает". Про неоптимальные запросы ничего не говорил, я за то, чтобы писать оптимальные. про 1й пункт: концов цикла тоже дофига будет. Можно при написании помечать их одинково, например "Начало условия 1: конец условия 2" Если ты нашёл для себя приём бороться с неудобством среды(нельзя выделять начало и конец конструкции) то это не значит что он крут. Он быдлокоден, и всего. 2 Вариант |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |