|   |   | 
| 
 | Вопрос по бинарной операции | ☑ | ||
|---|---|---|---|---|
| 0
    
        чувак 09.09.16✎ 06:38 | 
        Столкнулся в одной обработке на такую операцию:
 Результат = Сумма * (-1); И вот задумался. Есть ли какое нибудь принципиальное отличие этой операции от стандартных например: Результат = -Сумма ИЛИ Результат = Сумма * -1; | |||
| 1
    
        Провинциальный 1сник 09.09.16✎ 06:47 | 
        Вообще два знака сразу писать не принято, поэтому и скобки. А минус в начале недостаточно нагляден и не бросается в глаза - а это может быть нужно.     | |||
| 2
    
        чувак 09.09.16✎ 06:51 | 
        (1) Типа для эстетики?     | |||
| 3
    
        Провинциальный 1сник 09.09.16✎ 06:53 | 
        (2) Есть правильные писатели, которые пишут для читателей     | |||
| 4
    
        NorthWind 09.09.16✎ 08:25 | 
        (0) это для понятности. Скорее всего, умножение на минус один подразумевалось по смыслу алгоритма, вот он так и написал - в лоб, чтобы точно никто не запутался.     | |||
| 5
    
        чувак 09.09.16✎ 08:29 | 
        (4) Как обычно код читают не юзеры, а вполне адекватные прогеры. Автор или тролл или педантичный сукин сын.     | |||
| 6
    
        Провинциальный 1сник 09.09.16✎ 08:34 | 
        (5) Надо уважать тех, кто идет за тобой следом. Если есть возможность и время сделать код более понятным - надо это делать. Конечно, всяким пхпшникам этого не понять - они пишут "на один раз".     | |||
| 7
    
        чувак 09.09.16✎ 08:42 | 
        (6) Наоборот такие выкрутасы путают читающего. Прогер начинает искать глубокий смысл в этих строках :)     | |||
| 8
    
        Jokero 09.09.16✎ 08:45 | 
        (7) Если только филосовский...     | |||
| 9
    
        NorthWind 09.09.16✎ 11:18 | 
        (5) нет. Если все оформлять верно, то, во-первых, каменные должны быть к каждой строке, кроме тех, где смысл как конструкции, так и её назначения однозначно понятен. Сто строк кода и 80 строк камментов. Во-вторых, арифметика должна быть расписана примерно так как сделано здесь.     | |||
| 10
    
        NorthWind 09.09.16✎ 11:19 | 
        * камменты     | |||
| 11
    
        mkalimulin 09.09.16✎ 11:26 | 
        (9) Лично я использую комментарии в процессе написания. Это оправдано. Потом постепенно стираю. Когда в программе не остается комментариев, считаю что закончил.
 Мой принцип - в работающей программе комментариев быть не должно. | |||
| 12
    
        NorthWind 09.09.16✎ 14:15 | 
        (11) а зачем стирать? Через год понадобится что-то поменять в коде - ничерта не вспомнишь без камментов... Не знаю. У меня был преподаватель, который говорил, что комментарии надо писать к каждой строке кода, назначение которой человек, первый раз видящий код, не может понять сходу. Тогда мне казалось, что это излишество. Сейчас я полагаю, что такой подход во многих случаях является оправданным.     | |||
| 13
    
        Метранпаж 09.09.16✎ 14:17 | 
        (12) Код, в котором нужно что-то менять - не является завершённым. Поэтому по определению он содержит комментарии     | |||
| 14
    
        NorthWind 09.09.16✎ 15:53 | 
        (13) А он никакой не является завершенным. Даже в системное ПО типа ОС вносят обновления. А про код прикладного ПО, который зависит от таких вещей как законодательство, даже смешно говорить, что он завершенный.     | |||
| 15
    
        mkalimulin 10.09.16✎ 09:36 | 
        (12) (13) 
 Представьте себе код: с=а*б; его нужно поменять на: с=а+б; код без комментария: с=а*б; код с комментарием: с=а*б; //с - это сумма а и б (да,да здесь ошиблись. поэтому-то и надо код менять) Задайте себе вопрос: комментарий помогает или мешает? | |||
| 16
    
        Torquader 10.09.16✎ 12:10 | 
        (15) Если у каждой такой строчки писать комментарий, то у читателя волосы дыбом встанут.     | |||
| 17
    
        NorthWind 10.09.16✎ 13:29 | 
        (15), (16) Наименования переменных должны соответствовать объектам автоматизируемой предметной области, скажем 
 СуммаПродажи = ЦенаПродажи * КоличествоВБазовойЕдинице; И тогда к такой строчке можно не писать комментарий, потому что все и так понятно. | |||
| 18
    
        mkalimulin 11.09.16✎ 00:21 | 
        (16) (17) "Когда я показываю пальцем на Луну, надо смотреть на Луну, а не на мой палец".     | |||
| 19
    
        NorthWind 11.09.16✎ 09:33 | 
        (18) ок, отвечу развёрнуто. не помогает и не мешает, потому что в данном фрагменте назначение кода внутри решаемой задачи лично мне непонятно. Имена переменных его не проясняют, также как и односложный комментарий.     | |||
| 20
    
        mkalimulin 11.09.16✎ 09:42 | 
        (19) Ты все равно смотришь на палец. Причем здесь имена переменных?
 Если код работает - то зачем его читать? А если код не работает, в нем ошибка, написано: ПеременнаяСПонятнымИменем=ДругаяПеременнаяСПонятнымЛичноТебеИменем*ТретьяПеременнаяСИменемПонятнымВсемДажеРебенку; вместо: ПеременнаяСПонятнымИменем=ДругаяПеременнаяСПонятнымЛичноТебеИменем+ТретьяПеременнаяСИменемПонятнымВсемДажеРебенку; тогда читать нужно код, а не комментарий. Более того, привычка читать комментарии может привести к тому, что ты эту ошибку не найдешь. | |||
| 21
    
        NorthWind 11.09.16✎ 11:33 | 
        (20) если формула достаточно проста и по именам переменных её назначение понятно, то комментарии не нужны. Но бывают более сложные конструкции, когда уже не получается за одно прочтение без дополнительных пояснений понять, что делается. Я на самом деле не агитирую именно за комментарии. Главное - чтобы вы сами через 5 лет и даже с глубокого бодуна за одно прочтение могли понять, чего ж это такого вы имели в виду. И тут хороши все доступные средства, будь то комментарии, именование переменных и т.д.     | |||
| 22
    
        orefkov 11.09.16✎ 15:23 | 
        (0)
 Байт-код для выполнения в виртуальной машине 1С сформируется разный. В первом случае - загрузка одного операнда, загрузка числового операнда, операция умножения одного Value на другое Value. Во втором случае - загрузка значения, унарная операция смены знака. Так получается и байт-код короче, так и операция смены знака "унутре" выполняется чуть быстрее и оптимальнее, чем операция перемножения двух переменных. | |||
| 23
    
        Torquader 11.09.16✎ 19:15 | 
        (22)Это если 1С не умеет оптимизировать - хотя, судя по тому, как она написана - она это никогда уметь не будет.     | |||
| 24
    
        orefkov 11.09.16✎ 21:01 | 
        (23)
 Я ванговать не берусь, но сейчас таких оптимизаций в реализации скриптовой машины 1С нет. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |