|
Немного про сложности представления. Какой вариант легче читать? | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
Галахад
14.06.23
✎
14:53
|
Вариант 1
Если А Тогда Если Б Тогда ... КонецЕсли; Если С Тогда ... КонецЕсли; Иначе Если Д Тогда ... КонецЕсли; КонецЕсли; Вариант 2 Если А и Б Тогда ... КонецЕсли; Если А и С Тогда ... КонецЕсли; Если НЕ А Тогда Если Д Тогда ... КонецЕсли; КонецЕсли; |
||||||||||
1
SleepyHead
14.06.23
✎
14:52
|
(0) Разница непринципиальна.
|
||||||||||
2
Волшебник
14.06.23
✎
14:53
|
1-й лучше
Вариант 1 |
||||||||||
3
majkk
14.06.23
✎
15:02
|
(0) Одинаково легко. Тренируйте кратковременную память, тогда и вопросов таких возникать не будет.
Ваш вопрос странный. Кому должно быть легче читать? Интерпретатору? Ему пофиг. Настоящему программисту? Ему тоже пофиг. Непрограммисту? Так и ему пофиг! Но уже совсем по другой причине, он ни первое, ни второе не поймет. Начинающему программисту? А зачем ему делать легче? Пусть читает что посложнее и тренирует кратковременную память |
||||||||||
4
Галахад
14.06.23
✎
15:04
|
Пытаюсь понять почему эта самая сложность считается именно так:
void myMethod () { try { if (condition1) { // +1 for (int i = 0; i < 10; i++) { // +2 (nesting=1) while (condition2) { … } // +3 (nesting=2) } } } catch (ExcepType1 | ExcepType2 e) { // +1 if (condition2) { … } // +2 (nesting=1) } } // Cognitive Complexity 9 |
||||||||||
5
Галахад
14.06.23
✎
15:05
|
(3) Дурацкий подход. Процедуры в 1000 строк кода и запросы на 20 экранов не улучшают удобство разработки.
|
||||||||||
6
Ногаминебить
14.06.23
✎
15:06
|
Но во втором логичнее же
Если Не А и Д тогда КонецЕсли; Вариант 1 |
||||||||||
7
НафНаф
14.06.23
✎
15:07
|
(0) упрощенно:
Если А Тогда Действие1(); Иначе Действие2(); КонецЕсли; внутри методов свои одноуровневые условия |
||||||||||
8
majkk
14.06.23
✎
15:09
|
(4) Из текста непонятно? Там же все расписано +1,+2,+3
|
||||||||||
9
majkk
14.06.23
✎
15:15
|
(5) Смотря что считать удобством. За разбор одного запроса на 20 экранов с заказчика можно взять очень много денег. И это удобно. Разве нет? )))
|
||||||||||
10
Eiffil123
14.06.23
✎
15:18
|
(9) а заказчику не пофиг, вы 20 экранов запроса разобрали или 1 строку? откуда он узнает?
|
||||||||||
11
РусКомп
14.06.23
✎
15:18
|
Если А И Б Тогда
... ИначеЕсли А И С Тогда ... ИначеЕсли Д Тогда ... КонецЕсли; |
||||||||||
12
РусКомп
14.06.23
✎
15:19
|
Если А И Б Тогда
... ИначеЕсли А И С Тогда ... ИначеЕсли не А и Д Тогда ... КонецЕсли; Другой вариант |
||||||||||
13
Мультук
14.06.23
✎
15:23
|
(12) Я за этот вариант
Другой вариант |
||||||||||
14
Eiffil123
14.06.23
✎
15:31
|
(11) чем с ИначеЕсли лучше?
|
||||||||||
15
mikecool
14.06.23
✎
15:32
|
(7) +1
|
||||||||||
16
Мультук
14.06.23
✎
15:36
|
(14)
Тем что легко и просто исчезает малейшая иллюзия (просто при чтении), что какие-то действия могут быть выполнены несколько раз. В вариант1 и вариант2 это придется анализировать и помнить. |
||||||||||
17
Новый1сник2
14.06.23
✎
15:45
|
(12) норм
Другой вариант |
||||||||||
18
Aleksey
14.06.23
✎
15:55
|
А разве во втором варианте не будет тратиться время на постоянное вычисление чему равно А
Вариант 2 |
||||||||||
19
majkk
14.06.23
✎
15:56
|
(10) Из выставленного счета, Ватсон!
|
||||||||||
20
Волшебник
14.06.23
✎
15:56
|
(18) можно вычислить один раз и загнать в переменную
|
||||||||||
21
Ногаминебить
14.06.23
✎
15:57
|
(12) Стоп. А как же вариант, когда А Б С истина и должны выполниться 1 и 2 условие последовательно?
|
||||||||||
22
KJlag
14.06.23
✎
16:04
|
(0) я подсел на такое:
загнать в функцию/процедуру Если А Тогда Если Б Тогда ... Возврат; КонецЕсли; //Если С ... Возврат; КонецЕсли; Если Д Тогда ... КонецЕсли; но если выбирать из 1 и 2, то 2, ибо большие "если" на 1-2 страницы меня напрягают, а если еще туда добавить "иначе" Другой вариант |
||||||||||
23
ptiz
14.06.23
✎
19:17
|
Однозначно
Вариант 1 |
||||||||||
24
Bigbro
15.06.23
✎
06:45
|
от ситуации зависит и от условий.
иногда они логически связаны из контекста иногда нужно просто перебрать все варианты по если иначе иногда нас действительно интересует лишь пара сочетаний и одно невыполнение, на все остальное плевать. в общем объединять условия имеет смысл только если именно их совместное выполнение несет какую то смысловую нагрузку. Если ЭтоРабочаяБаза Тогда Если а Тогда ... Иначе ... КонецЕсли; Иначе // копия Если б Тогда .. КонецЕсли; КонецЕсли; вот тут объединять ничего не нужно - условие проверки рабочая база или нет никак не связано с бизнес логикой. Другой вариант |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |