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


1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос по бинарной операции

Вопрос по бинарной операции
Я
   чувак
 
09.09.16 - 06:38
Столкнулся в одной обработке на такую операцию:

Результат = Сумма * (-1);

И вот задумался. Есть ли какое нибудь принципиальное отличие этой операции от стандартных например:

Результат = -Сумма ИЛИ Результат = Сумма * -1;
 
 
   Провинциальный 1сник
 
1 - 09.09.16 - 06:47
Вообще два знака сразу писать не принято, поэтому и скобки. А минус в начале недостаточно нагляден и не бросается в глаза - а это может быть нужно.
   чувак
 
2 - 09.09.16 - 06:51
(1) Типа для эстетики?
   Провинциальный 1сник
 
3 - 09.09.16 - 06:53
(2) Есть правильные писатели, которые пишут для читателей
   NorthWind
 
4 - 09.09.16 - 08:25
(0) это для понятности. Скорее всего, умножение на минус один подразумевалось по смыслу алгоритма, вот он так и написал - в лоб, чтобы точно никто не запутался.
   чувак
 
5 - 09.09.16 - 08:29
(4) Как обычно код читают не юзеры, а вполне адекватные прогеры. Автор или тролл или педантичный сукин сын.
   Провинциальный 1сник
 
6 - 09.09.16 - 08:34
(5) Надо уважать тех, кто идет за тобой следом. Если есть возможность и время сделать код более понятным - надо это делать. Конечно, всяким пхпшникам этого не понять - они пишут "на один раз".
   чувак
 
7 - 09.09.16 - 08:42
(6) Наоборот такие выкрутасы путают читающего. Прогер начинает искать глубокий смысл в этих строках :)
   Jokero
 
8 - 09.09.16 - 08:45
(7) Если только филосовский...
   NorthWind
 
9 - 09.09.16 - 11:18
(5) нет. Если все оформлять верно, то, во-первых, каменные должны быть к каждой строке, кроме тех, где смысл как конструкции, так и её назначения однозначно понятен. Сто строк кода и 80 строк камментов. Во-вторых, арифметика должна быть расписана примерно так как сделано здесь.
   NorthWind
 
10 - 09.09.16 - 11:19
* камменты
 
 Рекламное место пустует
   mkalimulin
 
11 - 09.09.16 - 11:26
(9) Лично я использую комментарии в процессе написания. Это оправдано. Потом постепенно стираю. Когда в программе не остается комментариев, считаю что закончил.
Мой принцип - в работающей программе комментариев быть не должно.
   NorthWind
 
12 - 09.09.16 - 14:15
(11) а зачем стирать? Через год понадобится что-то поменять в коде - ничерта не вспомнишь без камментов... Не знаю. У меня был преподаватель, который говорил, что комментарии надо писать к каждой строке кода, назначение которой человек, первый раз видящий код, не может понять сходу. Тогда мне казалось, что это излишество. Сейчас я полагаю, что такой подход во многих случаях является оправданным.
   Метранпаж
 
13 - 09.09.16 - 14:17
(12) Код, в котором нужно что-то менять - не является завершённым. Поэтому по определению он содержит комментарии
   NorthWind
 
14 - 09.09.16 - 15:53
(13) А он никакой не является завершенным. Даже в системное ПО типа ОС вносят обновления. А про код прикладного ПО, который зависит от таких вещей как законодательство, даже смешно говорить, что он завершенный.
   mkalimulin
 
15 - 10.09.16 - 09:36
(12) (13)
Представьте себе код:

с=а*б;

его нужно поменять на:

с=а+б;

код без комментария:

с=а*б;

код с комментарием:

с=а*б;//с - это сумма а и б


(да,да здесь ошиблись. поэтому-то и надо код менять)

Задайте себе вопрос: комментарий помогает или мешает?
   Torquader
 
16 - 10.09.16 - 12:10
(15) Если у каждой такой строчки писать комментарий, то у читателя волосы дыбом встанут.
   NorthWind
 
17 - 10.09.16 - 13:29
(15), (16) Наименования переменных должны соответствовать объектам автоматизируемой предметной области, скажем
СуммаПродажи = ЦенаПродажи * КоличествоВБазовойЕдинице;
И тогда к такой строчке можно не писать комментарий, потому что все и так понятно.
   mkalimulin
 
18 - 11.09.16 - 00:21
(16) (17) "Когда я показываю пальцем на Луну, надо смотреть на Луну, а не на мой палец".
   NorthWind
 
19 - 11.09.16 - 09:33
(18) ок, отвечу развёрнуто. не помогает и не мешает, потому что в данном фрагменте назначение кода внутри решаемой задачи лично мне непонятно. Имена переменных его не проясняют, также как и односложный комментарий.
   mkalimulin
 
20 - 11.09.16 - 09:42
(19) Ты все равно смотришь на палец. Причем здесь имена переменных?
Если код работает - то зачем его читать?
А если код не работает, в нем ошибка, написано:

ПеременнаяСПонятнымИменем=ДругаяПеременнаяСПонятнымЛичноТебеИменем*ТретьяПеременнаяСИменемПонятнымВсемДажеРебенку;

вместо:

ПеременнаяСПонятнымИменем=ДругаяПеременнаяСПонятнымЛичноТебеИменем+ТретьяПеременнаяСИменемПонятнымВсемДажеРебенку;

тогда читать нужно код, а не комментарий. Более того, привычка читать комментарии может привести к тому, что ты эту ошибку не найдешь.
   NorthWind
 
21 - 11.09.16 - 11:33
(20) если формула достаточно проста и по именам переменных её назначение понятно, то комментарии не нужны. Но бывают более сложные конструкции, когда уже не получается за одно прочтение без дополнительных пояснений понять, что делается. Я на самом деле не агитирую именно за комментарии. Главное - чтобы вы сами через 5 лет и даже с глубокого бодуна за одно прочтение могли понять, чего ж это такого вы имели в виду. И тут хороши все доступные средства, будь то комментарии, именование переменных и т.д.
   orefkov
 
22 - 11.09.16 - 15:23
(0)
Байт-код для выполнения в виртуальной машине 1С сформируется разный. В первом случае - загрузка одного операнда, загрузка числового операнда, операция умножения одного Value на другое Value.
Во втором случае - загрузка значения, унарная операция смены знака. Так получается и байт-код короче, так и операция смены знака "унутре" выполняется чуть быстрее и оптимальнее, чем операция перемножения двух переменных.
   Torquader
 
23 - 11.09.16 - 19:15
(22)Это если 1С не умеет оптимизировать - хотя, судя по тому, как она написана - она это никогда уметь не будет.
   orefkov
 
24 - 11.09.16 - 21:01
(23)
Я ванговать не берусь, но сейчас таких оптимизаций в реализации скриптовой машины 1С нет.


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