Вход | Регистрация

  1  2   
1С:Предприятие ::

Метки: 

Понятно ли тебе как упрощаются логические выражения "Ложь Или А" и "Истина И Б"?

Я
   TormozIT
 
05.11.17 - 09:09
1. Сразу понятно64% (36)
3. Не понятно20% (11)
2. Понятно, но думал более 10 сек16% (9)
Всего мнений: 56

Прошу не писать упрощенные варианты выражений, а выбрать вариант ответа из опроса. Это важно для меня, чтобы лучше оценить усложнение чтения логических выражений от применения в них таких фрагментов.
 
  Рекламное место пустует
   Cyberhawk
 
1 - 05.11.17 - 09:22
.

1. Сразу понятно
   megabax
 
2 - 05.11.17 - 09:36
Пришлось построить в уме логическую конструкцию и упросить ее. Секунд 10 за это время, наверное, прошло.

2. Понятно, но думал более 10 сек
   vis_tmp
 
3 - 05.11.17 - 10:36
Это же простейшие условия...

1. Сразу понятно
   vis_tmp
 
4 - 05.11.17 - 10:36
Из чего возник такой вопрос?
   jsmith82
 
5 - 05.11.17 - 10:37
Бывает ещё понятней?!
   Asmody
 
6 - 05.11.17 - 11:06
(0) В каком контексте вопрос?
Если речь про алгебру логики, то тут элементарно по определению конъюнкции и дизъюнкции.
Если речь про программирование, то надо уточнять, про какой ЯП идет речь.

3. Не понятно
   Брудвар
 
7 - 05.11.17 - 12:26
(0) Элементарно.

1. Сразу понятно
   TormozIT
 
8 - 05.11.17 - 12:36
(6) Речь в первую очередь про встроенный язык 1С. Интересно, в каких других языках будет непонятно?
   yzimin
 
9 - 05.11.17 - 12:40
это из математической логики

неили Б) = не А и не Б
не (А и Б) = не А или не Б

1. Сразу понятно
   TormozIT
 
10 - 05.11.17 - 12:40
(4) Вопрос возник из-за замечаний к моей методике оформления сложных логических выражений http://catalog.mista.ru/public/152801/ . По мнению некоторых коллег она затрудняет восприятие/понимание/чтение именно за счет этих фрагментов. Поэтому я решил узнать, какой процент программистов будет испытывать сложности с чтением таких выражений.
 
  Рекламное место пустует
   quest
 
11 - 05.11.17 - 13:37
если помнишь логику - то понятно. если не помнишь - то в ступоре.

1. Сразу понятно
   Dmitry1c
 
12 - 05.11.17 - 13:43
(0) несколько лет назад перестал нормально их понимать, наверное старею

раньше на лету как-то схватывал

3. Не понятно
   Asmody
 
13 - 05.11.17 - 13:55
(8) Если про 1С, то надо уточнять 7.7 или 8.х, поскольку в них поразному реализовано раскрытие логических условий.
   Владимир Милькин
 
14 - 05.11.17 - 13:56
Всё понятно, но я сам предпочитаю оформлять вот так:

Если (
    Условие1 Или
    Условие2 Или
    Условие 3
)
Тогда
КонецЕсли;

1. Сразу понятно
   Злопчинский
 
15 - 05.11.17 - 14:01
(10) мне кажется что нормально у тебя с записью
   Скиурус
 
16 - 05.11.17 - 14:04
(10) Выражение понятно вполне, но с мнением некоторых коллег я полностью согласен - это не упрощение, это ненужное усложнение.

1. Сразу понятно
   vde69
 
Модератор
17 - 05.11.17 - 14:09
видимо автор хочет применить функциональный язык в 1с :)


простое упрощение - понятно сразу, если логических операторов будет больше - то не читаемо...

то есть сабж имеет право на жизнь в простых выражениях и будет не читабелен в больших условиях...
   ildary
 
18 - 05.11.17 - 14:18
(14) мне кажется что красивее будет так:
Если ( Условие1 
   Или Условие2
   Или Условие3 )
Тогда

КонецЕсли;
   TormozIT
 
19 - 05.11.17 - 14:21
(13) Не смотря на разницу работы интерпретаторов 7-ки и 8-ки в рассматриваемых выражениях они будут работать одинаково. Если ты не согласен, то поясни в чем по-твоему будет разница.
   TormozIT
 
20 - 05.11.17 - 14:22
(17) Можешь пояснить, почему будет "не читаемо"?
   TormozIT
 
21 - 05.11.17 - 14:34
(16)
Про "ненужное" очевидно спорное утверждение, т.к. в статье приведены довольно четкие плюсы.
Про "усложнение" непонятно в свете "1. Сразу понятно". Поясни, почему это усложнение, если любой такой фрагмент сразу понятен (не замедляет чтение)?
   vde69
 
Модератор
22 - 05.11.17 - 14:43
(20) классическим восприятием булевых условий является прочтение с лева на права без выделения блоков с более высоким приоритетом выполнения.

Именно по этому все сложные конструкции принято запихивать в начало условия, а у тебя все наоборото, сначало простое условие - потом сложное
   vde69
 
Модератор
23 - 05.11.17 - 14:52
(22) + немного добавлю

человек одновременно может воспринимать от 8 до 12 объектов, и примерно 2 секунды для него это "сейчас".

если человек тратит на прочтение выражения более 2х сек или в нем более 12 элементов - это уже тяжело для восприятия...

Ну а по сколько ты добавляешь операторы "якоря" (истина, ложь), то выражение перестает восприниматься целым и дробится ели оно чуть длиннее чем 2 сек или 12 объектов...

зы
ничего личного, это психология
   VladZ
 
24 - 05.11.17 - 14:59
(10) Лучше так не делать. Усложняет читабельность кода.
   TormozIT
 
25 - 05.11.17 - 15:09
(24) Наибольшую ценность имеют аргументированные точки зрения.  Факт того, что имеет место некоторое усложнение выражения относительно его самого простого вида, я не подвергал и не подвергаю сомнению. Я хочу собрать статистику по величие этого усложнения. Для меня лично это усложнение меркнет на фоне преимуществ, которые дает такая форма для СЛОЖНЫХ логических выражений. Однако я не сразу это понял и потребовалось время чтобы привыкнуть, как и большинству из тех, кто стал применять ее. Поэтому если не сложно, опиши хотя бы в двух словах, в чем  ты видишь усложнение читабельности. Но прежде всего ответь на опрос =)
   TormozIT
 
26 - 05.11.17 - 15:11
(23) "выражение перестает восприниматься целым" эту мысль пока не удалось понять. Ты читал статью и конкретно прием аналогии с отбором компоновки?
   Jofa
 
27 - 05.11.17 - 15:12
(10)Не все прогеры умеют абстрактно мыслить.
Трудностей можно избежать если переменные будут понятно называться.
   Jofa
 
28 - 05.11.17 - 15:13
(26) смотри (27)
   TormozIT
 
29 - 05.11.17 - 15:13
(22) Думаю эти измышления еще менее близки и не менее споры для большинства чем моя методика =)
   TormozIT
 
30 - 05.11.17 - 15:14
(27) Твою мысль также не понял.
   Jofa
 
31 - 05.11.17 - 15:16
(30)Чего не понятного?
   TormozIT
 
32 - 05.11.17 - 15:19
(31) Напиши более развернуто. Возможно тогда мне удастся понять, к чему ты это написал.
   VladZ
 
33 - 05.11.17 - 15:20
(25) Как упрощаются - понятно. Я пока не понимаю необходимость в этом. Не нравятся скобки - избавляйся от скобок.

Читай комментарий Валерия К (klinval)  06.09.17 14:43 по ссылке.
 
  Рекламное место пустует
   Jofa
 
34 - 05.11.17 - 15:27
(32) смотри (22), (23)
   TormozIT
 
35 - 05.11.17 - 15:28
(33) Вижу, аргументировать утверждение "Усложняет читабельность кода" пока не очень вышло.
   TormozIT
 
36 - 05.11.17 - 15:29
(34) Смотри (26)
   vde69
 
Модератор
37 - 05.11.17 - 15:35
(35) количество операторов увеличилось ???
   TormozIT
 
38 - 05.11.17 - 15:38
(37) Да, бесспорно.
   vde69
 
Модератор
39 - 05.11.17 - 15:43
(38) выращение - одно и количество операторов выросло, значит В ОБЩЕМ случае это усложнение...

разумеется есть частные случаи где это не так :)
   vde69
 
Модератор
40 - 05.11.17 - 15:43
выращение = выражение
   TormozIT
 
41 - 05.11.17 - 15:52
(39) Опять же бесспорно да. Так и я писал в (25), что с фактом усложнения я не спорю. Мне хочется понять насколько оно значимо и в чем конкретно каждый его видит. Судя по результатам опроса (0) оно незначительно.

Далее на (26) я так и не получил от тебя ответ. Это заставляет думать, что аналогия с отбором компоновки тебе не известна. На мой взгляд это самый эффективный прием не замечать привнесенное методикой усложнение и более того даже начать видеть упрощение. Упрощение восприятия здесь базируется на появлении простой визуальной структуры выражения, знакомой по дереву отбора компоновки.
   ejikbeznojek
 
42 - 05.11.17 - 15:58
Я тугодум)

2. Понятно, но думал более 10 сек
   VladZ
 
43 - 05.11.17 - 16:05
(35) Выражения "Ложь Или" и "Истина и" бьют по мозгам. Вот объясни мне, зачем вводить дополнительную сущность?

Условие в виде:

(НомерИзменяемойКолонки = "4")
    Или (НомерИзменяемойКолонки = "5")
    Или (НомерИзменяемойКолонки = "7")
    Или ((НомерИзменяемойКолонки = "8")
        И (ГруппаРасчета = мИдГруппы7))

И понятно, и читаемо.
   TormozIT
 
44 - 05.11.17 - 16:15
(43) В статье я перечисли все плюсы/преимущества. Но понимая, что большинству лень читать много скорее всего ненужного текста, я перечислю их тут
- повышает наглядность выражения после некоторого привыкания (аналогия с отбором компоновки)
- облегчает рефакторинг, т.к. позволяет четко видеть пути упрощения (устранения избыточности) выражения
- облегчает отладку, т.к. позволяет быстро комментировать(выключать)/раскомментировать(включать) фрагменты выражения
- позволяет дописывать комментарии к каждому узлу дерева
- сокращает левые отступы, вложенность условий, количество строк в коде по сравнению с некоторыми другими подходами
   VladZ
 
45 - 05.11.17 - 16:21
(44) ты не ответил на мой вопрос. Зачем нужны конструкции "ложь или" и "истина и"? И без них все эти плюсы работают. И добавляется еще один - не нужно привыкать к излишним сущностям.
   TormozIT
 
46 - 05.11.17 - 16:35
(45) Конструкции нужны для придания первому условию в каждой группе того же начала (отступа и оператора), что и последнему.  И снова отсылаю к аналогии с отбором компоновки, которую все упорно игнорируют.
"И без них все эти плюсы работают"
Опровергаю
1. наглядность выражения, базирующаяся на аналогии с отбором компоновки исчезает
2. облегчение рефакторинга снижается опять же из-за снижения восприятия структуры выражения в целом.
3. облегчения отладки не будет, т.к. первое условие каждой группы нельзя будет быстро комментирорвать/раскомментировать без разбивки ее на 2 строки
4. комментарии к первому условию в каждой группе будет сложнее писать, т.к. будет непонятно, он относится в целом к группе или к первому условию группы
   jsmith82
 
47 - 05.11.17 - 16:41
(10) Я так и делаю
   Брудвар
 
48 - 05.11.17 - 16:48
(46) Все верно. А еще таким способом удобно составлять условия в текстовом виде, например для запросов. Размеры кода сокращаются, логичность повышается.
Если кому-то такая элементарная конструкция режет глаза, то что с ними будет если увидят сложное логическое выражение?

1. Сразу понятно
   Злопчинский
 
49 - 05.11.17 - 17:13
Тогда правильно писать
Если что-то
Тогда
   Блок операторов
Иначе
   Блокоператоров
КонецЕсли;
 
  Рекламное место пустует
   Лефмихалыч
 
50 - 05.11.17 - 17:25
у меня по этим сокращениям ч0рный пояс

1. Сразу понятно
   Йохохо
 
51 - 05.11.17 - 17:51
(46)
1 наглядности нет, оператор невозможно удержать в голове, ветвление тем более. То, что значение группы надо "вычислять", всё ломает и отвлекает от предыдущего кода и смысла вообще.
2 рефакторинг сложного Если не нужен, такой Если надо комментить целиком и рефакторить в ИначеЕсли
3 отладка на уровне изменения кода? это не труба, не нужно уже, 21 век
4 проще сделать проще, без нотации
1с не питон, то что кто то придумал отступы, не значит что отступам можно верить. То, что придумана нотация, веры тоже не добавляет. Код будет стоппером
   nordbox
 
52 - 05.11.17 - 17:54


2. Понятно, но думал более 10 сек
   lamina
 
53 - 05.11.17 - 18:13
Не понятно

3. Не понятно
   vde69
 
54 - 05.11.17 - 19:14
все-же я не понимаю зачем это нужно

если условие не понятно - его надо вынести в отдельную функцию и не парить мозг людям....

вместо написания
Если Ложь
    Или НомерИзменяемойКолонки = "4"
    Или НомерИзменяемойКолонки = "5"
    Или НомерИзменяемойКолонки = "7"
    Или (Истина
        И НомерИзменяемойКолонки = "8"
        И ГруппаРасчета = мИдГруппы7)
Тогда



спокойно пишем

Если НужнаяКолонка("4","5","7","8") Тогда
.....
.....
.....


Функция НужнаяКолонка(п1,п2...)
Результат = Ложь;
Если НомерИзменяемойКолонки = "4"
    Или НомерИзменяемойКолонки = "5"
    Или НомерИзменяемойКолонки = "7"
    Или (Истина
        И НомерИзменяемойКолонки = "8"
        И ГруппаРасчета = мИдГруппы7)
Тогда Результат = Истина; КонецЕсли;

Возврат Результат;

КонецФункции
   Cyberhawk
 
55 - 05.11.17 - 19:30
(54) Ну как же - комментировать блоки, наример, ну и построковый переход при отладке
   Брудвар
 
56 - 05.11.17 - 19:33
(54) Все верно, только внутри функции нужно условие начать с:

Если Ложь
....
   vde69
 
Модератор
57 - 05.11.17 - 19:36
(56) да внутри  функции - вообще пофик читабельно или нет будет...
   vde69
 
Модератор
58 - 05.11.17 - 19:39
(54) + кстати этот прием имеет и огромные плюсы, иногда эту функцию можно вынести в модуль повторного использования, что может существенно повысить скорость выполнения кода
   TormozIT
 
59 - 05.11.17 - 19:40
(54) Уводишь вопрос в другую плоскость. Мы рассматриваем запись сложного логического выражения независимо от его роли в вышестоящей конструкции. Это может быть Если...Тогда, присвоение, возврат и прочее.
   Горностаев
 
60 - 05.11.17 - 19:52
(0 || A ) & (1 & B) = A & B

1. Сразу понятно
   Брудвар
 
61 - 05.11.17 - 20:16
По результатам голосования пользователи миста разделились на три группы:

1. непонятные
2. очень честные
3. очень тупые
   lamina
 
62 - 05.11.17 - 21:07
согласен с vde69, вопрос из разряда: как делать неправильно?
если условие сложное, его нужно переосмыслить, а не не придумывать уродливые конструкции, и интересоваться потом, какое из уродств, менее уродливо.
   Брудвар
 
63 - 05.11.17 - 21:14
(62) Он просто не понял.
Если один раз это переосмыслишь, то второй раз будет уже легко читать такое выражение. Оно будет казаться привычным и родным, как своя рука.
   Волшебник
 
Модератор
64 - 05.11.17 - 21:25
(54) Пишется "всё же"
   Йохохо
 
65 - 05.11.17 - 21:30
(59) "независимо от его роли в вышестоящей конструкции" когда приходится так делать это называется "городить костыли" "лепить ворэраунд", стиль костылей хороший, он всегда хороший, когда есть
   TormozIT
 
66 - 05.11.17 - 21:51
(63) Красивая аналогия.
   Сияющий Асинхраль
 
67 - 05.11.17 - 22:06
Вариант "Истина И" использую в случае программного построения запросов, когда лень отслеживать где перед условием "И" ставить не надо (первое условие), а где надо, поскольку при наличии "Истина" это самое "И" ставится всегда :-). В других вариантах стараюсь писать условия максимально развернуто, чтобы впоследствии не ломать голову над тем, что написал...
   vde69
 
Модератор
68 - 05.11.17 - 22:51
(66) не очень хорошая аналогия...


есть вендор - "1с"
вендор пишет в своем стиле и рекомендует именно этот стиль
некая группа пользователей (а мы именно пользователи) говорит - мы будем использовать нотации не рекомендованные вендором, мы считаем, что если другие пользователи воспримут наш подход - им будет лучше....

только вот вендор как писал в старой нотации так и будет продолжать. Кроме того принятее сабжа может привести к проблеммам с постановкой "1с-совместимо"
   Сияющий Асинхраль
 
69 - 05.11.17 - 23:03
(68) Да ладно уж, что тут говорить про вендора, на всю жизнь запомнил рекомендации по оформлению кода и желательные требования к самому коду, когда 1С только выпускала восьмерку. Там были "пожелания" 1С, чтобы процедуры и функции не превышали по возможности 300-400 строчек, а потом поглядел запросы в той же зарплате на несколько тысяч строчек и вопрос о "рекомендациях" 1С отпал сам собой. 1С пишет не так как сама рекомендует, а так как могут ее разработчики...
   lamina
 
70 - 05.11.17 - 23:15
(63) переосмысление условия делается не только для того, чтобы его было легко читать. Если уловие сложное, в нем собрано много проверяемых параметров, то есть высокая вероятность, что часть из них не стоило вычислять, или стоило их проверить раньше и вернуться из функции раньше.
Разбор сложных условий нередко заканчивается не просто их "перетусовкой" в поисках лексического изыска, но и влияет на сам аглоритм. Поэтому это не вопрос вкуса, а конкретное место, где стоит подумать над условием как таковым.
   Брудвар
 
71 - 05.11.17 - 23:31
(70) В сложном условии небольшая добавка вообще как капля в море влияет на усложнение даже для того кто не привык. С другой стороны на упрощение она влияет больше. Так что лучше ставить чем не ставить.
   Скиурус
 
72 - 06.11.17 - 00:04
(21)
Да все просто. Конструкция вида Логическая_константа и что-то там еще сразу наводит на мысль, что тут в условии что-то переписывали, отлаживали и вообще костыль. Больше времени тратится на то, чтобы убедиться, что это не так, а не на то, чтобы понять что сейчас делает выражение.
Естественно, если к такой нотации привыкнуть, тогда она будет читаться совсем легко.
А ненужным я называл этот прием, несмотря на перечисленные в статье плюсы, потому что это попытка починить то, что не ломалось. Типичный оверинжиниринг. Сложные логические выражения надо не записывать в какой-то изощренной форме, а просто избегать. Если возникает необходимость тулить условия с 4-5 переменными, то очевидно этот код хороший кандидат на рефакторинг.
   Vladal
 
73 - 06.11.17 - 01:44
(14) 1С рекомендует логические операторы писать в начале строк:

Если условие 1
    Или условие 2
    Или условие 3 Тогда
   Рэйв
 
74 - 06.11.17 - 05:55
...

1. Сразу понятно
   TormozIT
 
75 - 07.11.17 - 15:21
Пока получается соотношение тех, кто не испытывает сложностей при чтении, к тем, кто испытывает, составляет 12:5. Я ожидал около 5:1.
   vvp91
 
76 - 07.11.17 - 15:41
(68) (73) У вендора в этом вопросе проблема - явная обязанность писать Тогда в последней строке многострочного условия.
Эта обязанность напрочь убивает любую читабельность условий.

Здравый смысл и читабельность показывают, что:
* в однострочном Если писать Тогда надо в одной строке
* в многострочном Если писать Тогда надо в отдельной строке на том же уровне отступа, что и Если.

Еще у вендора бегает череп и всех заставляет писать "по стандарту", а не по здравому смыслу.

1. Сразу понятно
   GANR
 
77 - 07.11.17 - 16:07
По 10 раз на дню пишем условные операторы.

1. Сразу понятно
   DGorgoN
 
78 - 07.11.17 - 16:09
Если пишешь это часто то и понимание занимает мгновение, уверен что если человек с этим не работает то и понимание усложняется.

1. Сразу понятно
   ptiz
 
79 - 07.11.17 - 16:11
Странно, но понятно

1. Сразу понятно
   lodger
 
80 - 07.11.17 - 16:20
Сразу понятно, что толку от этого нет.

1. Сразу понятно
   FIXXXL
 
81 - 07.11.17 - 17:40
"колбаса" из условий, со скобками или без, один хрен нечитабельна
ну собери массив и проверь значение на вхождение в массив
всяко читабельнее и сопровождение проще: поменял "сбор" массива и дальше "оно само"
а тут глаза сломаешь...

3. Не понятно
   Трипиэль
 
82 - 07.11.17 - 18:58
мусор какой-то

3. Не понятно
   TormozIT
 
83 - 07.11.17 - 21:59
(81) Из твоего сообщения кажется, что ты пытаешься не ответить на опрос, а покритиковать мою статью. Я не против критики, но хотелось бы честных ответов по опросу.
   TormozIT
 
84 - 07.11.17 - 22:00
(82) Почему тебе это кажется мусором? Видимо все таки понимаешь, как эти выражения упрощаются?
   Махони402
 
85 - 07.11.17 - 23:17
Сразу понятно. Наверное потому, что часто при отладке (особенно запросов в консоли) руки тянутся к "//" для временного отключения условий.

Ну и, соответственно, чтобы спокойно можно было комментить и первое условие тоже оно должно стать вторым :)
из
Когда//У1

Или У2

логично же сделать 

Когда Ложь
//Или У1

Или У2

1. Сразу понятно
   mikeA
 
86 - 08.11.17 - 05:33
1) При всём уважении к автору, на мой взгляд опрос составлен не вполне корректно.
Ответы 2 и 3 выставляют отвечающего идиотом в большей или меньшей степени. Так что те кто потенциально могли бы выбрать эти пункты скорее всего пройдут мимо. Отсюда и высокий рейтинг первого варианта ответа.

2) Не могу сказать что мне СРАЗУ было понятно как упрощаются эти выражения. Конечно десять секунд не думал, может быть секунд пять. Нет, простейшие выражения булевой алгебры посчитались в голове почти мгновенно. Основная часть времени ушла на поиск того что здесь не так)) Сейчас конечно понятно сразу, особенно после прочтения статьи. Поэтому соглашусь с (78), тем кто часто такое использует будет понятно сразу, остальным не факт.

3) На мой взгляд наличие таких конструкций это bad design. Сам больше склоняюсь к варианту с переменными из комментариев к статье:

    Если Ложь
    Или НомерИзменяемойКолонки = "4"
    Или НомерИзменяемойКолонки = "5"
    Или НомерИзменяемойКолонки = "7"
    Или (Истина
        И НомерИзменяемойКолонки = "8"
        И ГруппаРасчета = мИдГруппы7)
    Тогда
        Расчет(ГруппаРасчета);
    КонецЕсли;


Заменить на

    
    ИзменилиРасчетнуюКолонку = (НомерИзменяемойКолонки = "4" Или НомерИзменяемойКолонки = "5" Или НомерИзменяемойКолонки = "7");
    
    ИзменилиКолонку8ИГруппаРасчетаВерная = (НомерИзменяемойКолонки = "8" И ГруппаРасчета = мИдГруппы7);
    
    НеобходимРасчет = ИзменилиРасчетнуюКолонку Или ИзменилиКолонку8ИГруппаРасчетаВерная;
    
    Если НеобходимРасчет Тогда
        Расчет(ГруппаРасчета);
    КонецЕсли;


Ещё позабавил комментарий про техподдержку)))


    Вот представьте, инженер техподдержки, ему 35 лет. Он булеву алгебру учил двадцать лет назад в школе. У него ещё десять заявок в очереди и злой пользователь на линии. И вот он смотрит на ваш код и пытается понять, что же значит ваше семиэтажное выражение.

Поэтому исключительно для статистики ставлю

3. Не понятно
   Рэйв
 
87 - 08.11.17 - 05:51
(75)Ты не тот срез аудитории взял. Тут,если ты поварился в 1С хотя бы несколько лет и не совсем гуманитарий, то само собой читать будешь сабж не задумываясь особо.
Если хочешь объективности- надо у студентов вузов спрашивать, без опыта работы
   Lokli
 
88 - 08.11.17 - 06:14
Понятно, хотя и не привычно. Скажу так: "будет резать глаз". Какое-то время придется потратить на разбор этой конструкции в коде, если встретиться.

1. Сразу понятно
   wondkind
 
89 - 08.11.17 - 06:52
И то потому что не понял шо от меня требуется

2. Понятно, но думал более 10 сек
   alkov
 
90 - 08.11.17 - 06:53


1. Сразу понятно
   TormozIT
 
91 - 08.11.17 - 08:44
(86)
"опрос составлен не вполне корректно"
Согласен, что варианты 2 и 3 могут быть обидными кому то и потому они могут просто воздержаться от ответа. Может быть у тебя есть идеи, как сформулировать так, чтобы было менее обидно (как сделать его "вполне корректно")? Если нет, то получается, что твоя критика не вполне корректна =)
   TormozIT
 
92 - 08.11.17 - 08:46
(87) Как раз меня интересует больше всего категория программистов 1С.
   FIXXXL
 
93 - 08.11.17 - 09:14
(83) просто я пишу с оглядкой на отдел админов, которым потом мой код сопровождать :)
они точно не будут себе мозг полировать на таких выражениях, а скинут задачу на меня. оно мне надо? :)

без обид, но если такую колбасу нельзя разложить в удобоваримый для глаз и мозга текст, значит что-то с архитектурой не то
можно и "колбасить", если выхода нет. но я предпочитаю такое прятать под капот функции с ясным-понятным названием
тупо держать в голове цепочку бизнес-процесса плюс конкретный разбираемый глюк и еще с листа высчитывать "колбасы" условий - утомительно
старею наверное. чем проще - тем лучше :)
   mszsuz
 
94 - 08.11.17 - 09:25
Можно, конечно, привыкнуть, но только ради оформления считаю лишним.

3. Не понятно
   xxTANATORxx
 
95 - 08.11.17 - 09:31
вот это
Если Ложь
    Или НомерИзменяемойКолонки = "4"
    Или НомерИзменяемойКолонки = "5"
    Или НомерИзменяемойКолонки = "7"
    Или (Истина
        И НомерИзменяемойКолонки = "8"
        И ГруппаРасчета = мИдГруппы7)
Тогда


обычно пишу так
НаборКолонок = НовыйСоотвтетствие(4, 5, 7, 25,58,100500)//Сделан конструкттор

Если (НаборКолонок[НомерИзменяемойКолонки] <> Неопределено) и (НомерИзменяемойКолонки = "8" и ГруппаРасчета = мИдГруппы7) Тогда


3. Не понятно
   TormozIT
 
96 - 08.11.17 - 09:33
(93), (94), (95) Снова прошу отвечать на опрос, а не на мою статью. Про статью я написал, как отправную точку возникновения опроса. В постановке вопроса (0) я же не прошу отвечать применительно к моей методике. Меня интересует время которое программисты 1С в среднем тратят на понимание таких фрагментов выражений.
   Мыш
 
97 - 08.11.17 - 09:35
Удобно для структурирования сложных условий, с количеством элементов более трех. Если до трех - проще без такого.

1. Сразу понятно
   mikeA
 
98 - 08.11.17 - 09:43
(95) Может массив вместо соответствия?
   Smile 8D
 
99 - 08.11.17 - 09:44
Идею вроде понял. Сам форматирую сложные выражения только переносами строк и отступами. Возможно, что не так часто приходится комментировать отдельные условия, поэтому задумываться над введением дополнительных "Ложь" и "Истина" не приходилось.

1. Сразу понятно
   FIXXXL
 
100 - 08.11.17 - 09:51
(98) с соответствием изящнее выходит, чем .Найти в массиве :)

  1  2   

Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует