| 
    
        
     
     | 
    
  | 
Какие у вас есть правила по комментированию кода в конфигурации? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        toypaul    
     гуру 
    02.12.20 
            ✎
    15:38 
 | 
         
        Сейчас у меня есть в основном только отрицательный опыт при работе с конфигурациями, над которыми глумились разные фирмы и разработчики.
 
        Представляет это из себя жуткое зрелище - сплошные вложенные камменты и среди них код с ускользающим смыслом. Каждый раз когда вижу такую конфу какая-то моральная травма. Ведь должно же быть как-то по другому - в идеальном мире :) Какой у вас есть положительный опыт когда нужно куче разработчиков вносить изменения в конфы которые поддерживаются годами? Сколько должен жить старый код и должен ли он вообще жить?  | 
|||
| 
    1
    
        toypaul    
     гуру 
    02.12.20 
            ✎
    15:44 
 | 
         
        И расскажите не стесняйтесь если у вас такой же подход в разработке используется :)
 
        Почему так вышло? Может и в этом есть какой-то смысл :)  | 
|||
| 
    2
    
        Garykom    
     гуру 
    02.12.20 
            ✎
    15:46 
 | 
         
        git самое лучшее, там и история и комменты     
         | 
|||
| 
    3
    
        fisher    
     02.12.20 
            ✎
    15:48 
 | 
         
        А куда деваться, если нету VCS?
 
        А многие такое даже при наличии хранилища фигачат. При наличии VCS (если недовозможности хранилища напрягают, то можно зеркалировать его в git или сразу в git) - это все нафиг не нужно. Код должен быть предельно чистым. Все остальное - задача VCS  | 
|||
| 
    4
    
        fisher    
     02.12.20 
            ✎
    15:54 
 | 
         
        Проблема обычно с "беспризорными" продуктами, которые время от времени сопровождаются разными франчами. Там уж особо ничего не попишешь. Приходится в коде "версионировать". Но там обычно и изменения "заплаточные", поэтому до абсурда редко дотягивают.     
         | 
|||
| 
    5
    
        mikecool    
     02.12.20 
            ✎
    15:59 
 | 
         
        начал читать "Чистый код" и тоже понял, насколько текущая конфига завалена комментами
 
        предложил почистить, а в ответ "не надо, а то потом не найдем кто и что изменял, для быстрого разбора полетов надо оставить" гит не пользуем, только хранилище и дежит тонна лапши из комментов мертвым грузом...  | 
|||
| 
    6
    
        toypaul    
     гуру 
    02.12.20 
            ✎
    16:00 
 | 
         
        каменты к комиту это как бы одно. а каменты к смыслу кода - это другое. иногда между собой вроде и связанное но не обязательно.
 
        я вот где-то регламент читал такой - если комментируем чужой код, то оставляем максимум 2 уровня вложенности - свой и комментируемы. все остальное удаляем к чертям.  | 
|||
| 
    7
    
        toypaul    
     гуру 
    02.12.20 
            ✎
    16:01 
 | 
         
        предложил почистить, а в ответ "не надо, а то потом не найдем кто и что изменял, для быстрого разбора полетов надо оставить" - это бред сивой кобылы     
         | 
|||
| 
    8
    
        toypaul    
     гуру 
    02.12.20 
            ✎
    16:01 
 | 
         
        + (7) имею ввиду отговорка эта     
         | 
|||
| 
    9
    
        Джинн    
     02.12.20 
            ✎
    16:09 
 | 
         
        (6) Добавленный код отмечаю начальным и конечным комментарием со значком "+"
 
        Удаленный код отмечаю начальным и конечным комментарием со значком "-" и комментирую его Измененный код отмечаю начальным и конечным комментарием со значком "+/-", комментирую старый кусок и добавляю свой. Иногда сложно так сделать, т.к. куски "неразрывные". Тогда меняю и в комментарии пишу что поменял. Естественно во всех случая в комментарии пишу для чего изменено.  | 
|||
| 
    10
    
        Garykom    
     гуру 
    02.12.20 
            ✎
    16:10 
 | 
         
        Было бы прикольно если 1С встроила гит в платформу и данные хранились в самой конфе/базе, по желанию     
         | 
|||
| 
    11
    
        mikecool    
     02.12.20 
            ✎
    16:10 
 | 
         
        (8) согласен, надо подумать насчет гит и выгружать модули в него
 
        я пока с ним не особо знаком, но думаю разбор полетов в нем должно мочь быстро устраивать  | 
|||
| 
    12
    
        toypaul    
     гуру 
    02.12.20 
            ✎
    16:12 
 | 
         
        (9) а если уровней каментов 10? да даже не 10 уровней, а небольшой модуль в 5-10 строк превращается в кашу из 100 строк каментов?     
         | 
|||
| 
    13
    
        Джинн    
     02.12.20 
            ✎
    16:16 
 | 
         
        (12) Мне проще - я "хозяин" конфигурации и комментарии отделяют "типовой" код от измененного. Если я переписываю свои куски, что в них всегда "финальная" версия. История изменений мне не интересна. Собственно из задача в том, чтобы при сравнении/объединении отделить агнцев от козлищ.     
         | 
|||
| 
    14
    
        pudher    
     02.12.20 
            ✎
    16:19 
 | 
         
        (13) Кустарь и есть кустарь :)     
         | 
|||
| 
    15
    
        fisher    
     02.12.20 
            ✎
    16:20 
 | 
         
        (11) В гит в основном зеркалят из хранилища из-за git blame, чтобы быстро можно было расковыривать кто/когда.
 
        Но если это надо от случая к случаю, то и в хранилище вполне терпимо после появления "быстрых" опций анализа (те, которые "Выборочно")  | 
|||
| 
    16
    
        Вафель    
     02.12.20 
            ✎
    16:44 
 | 
         
        комменты внутри кода рано или поздно превращаются в такую кашу, что лучше бы их не было     
         | 
|||
| 
    17
    
        1Сергей    
     02.12.20 
            ✎
    16:55 
 | 
         
        Если в типовой код внесены изменения (Пользуем расширения, но иногда приходится), то они обрамляются комментариями типа 
 
        // Иванов И.И. 02.12.2020 тикет 0123456 { ... тут код // } Иванов И.И. если на форме есть изменения, внизу кода формы в таких же каментах перечисляется что именно изменили.  | 
|||
| 
    18
    
        H A D G E H O G s    
     02.12.20 
            ✎
    17:01 
 | 
         
        Камментю только что то реально запутанное.
 
        ДельтаПравки можно найти сравнением храна. Камменты по стандартам Совместимо, все равно потом их суко править  | 
|||
| 
    19
    
        Креатив    
     02.12.20 
            ✎
    17:38 
 | 
         
        Про комментарии у меня одно правило:"Никаких правил!"
 
        Изредка комментирую те места в коде, где смысл условий не очевиден.  | 
|||
| 
    20
    
        mikecool    
     02.12.20 
            ✎
    17:43 
 | 
         
        (19) если комментируешь код - значит твой код не оптимален и его можно и нужно переделать     
         | 
|||
| 
    21
    
        1Сергей    
     02.12.20 
            ✎
    17:43 
 | 
         
        (20) 
 
        // Я не виноват - меня заставили!!!  | 
|||
| 
    22
    
        PuhUfa    
     02.12.20 
            ✎
    17:56 
 | 
         
        Комментирую
 
        //===== Доработка начало ===== ... тут изменения/добавления //===== Доработка конец ===== Если нужно поправить строку(ки) типового когда, то делаю копипаст оригинального куска и в нем правлю. Оригинальный кусок коменчу. Делаю так что бы потом можно было сразу понять что именно изменял. По ходу своего кода, делаю для себя комментарии, что и для чего делается в этом месте. А то потом даже сам забываю для чего это написано. Так как работаю один, ФИО даты и т.п. не пишу -)  | 
|||
| 
    23
    
        GreyK    
     02.12.20 
            ✎
    17:59 
 | 
         
        А я не комментирую, я метки ставлю, типа "здесь был Я" :)     
         | 
|||
| 
    24
    
        Smallrat    
     02.12.20 
            ✎
    20:39 
 | 
         
        “Code is like humor. When you have to explain it, it’s bad.”     
         | 
|||
| 
    25
    
        mkalimulin    
     02.12.20 
            ✎
    20:44 
 | 
         
        (0) Я комментирую, пока нахожусь в процессе разработки. По мере того, как отдельные куски делаются, комментарии убираются. В готовом модуле комментариев нет. Очень удобно. Раз глянул и сразу видишь: здесь все готово или нет, есть еще зеленого мальца     
         | 
|||
| 
    26
    
        Джинн    
     02.12.20 
            ✎
    21:19 
 | 
         
        (20) Если Вы работаете с типовой, то хорошее комментирование своих изменений снижает трудозатраты на обновления в разы.     
         | 
|||
| 
    27
    
        olegi3007    
     03.12.20 
            ✎
    01:49 
 | 
         
        (22) также делаю, но еще и добавляю свои инициалы и дату (г-м-ч) и время, чтоб потом понять что я сначала делал, а что потом доделывал...
 
        Вообще в 1С (да и в любом другом языке) суть кода должна быть в основном ясна из названий переменных и процедур-функций... Если код нужно много коментить, то это не есть хороший код... Разве при вызове ф. или п. не понятно зачем и почему именно это, то имеет смысл коротенько написать... Как-то пробовал на php прокоментить почти каждую строчку... ужас, очень сложно потом читать.... отказался от этого дела... обычно ставлю короткие коменты и то на время, типа: "// для отладки" " // пока не доработал"... это помогает... только их писать надо однообразно, чтобы искать потом можно было...  | 
|||
| 
    28
    
        prog1Csww    
     03.12.20 
            ✎
    03:23 
 | 
         
        // Начало измененного блока
 
        ... // Окончание измененного блока ... // Начало и окончание измененного блока Раньше делал через шаблоны автоподстановки.  | 
|||
| 
    29
    
        MadHead    
     03.12.20 
            ✎
    05:48 
 | 
         
        Когда-то услышал фразу
 
        "Комментарии- это извинение за плохо написаный код" )  | 
|||
| 
    30
    
        Paint_NET    
     03.12.20 
            ✎
    05:54 
 | 
         
        Когда кодил, пользовался таким подходом - оригинальную процедуру/функцию оставлял на месте, копипастил её в свой модуль с префиксом (к примеру, изм_ОбменДаннымиСервер), там её правил, как мне надо и менял вызовы исходной процедуры на обращение к этому модулю. В самом модуле перед функцией делал развёрнутый комментарий с перечнем изменений, при необходимости его дополнял с датой и причиной.     
         | 
|||
| 
    31
    
        Paint_NET    
     03.12.20 
            ✎
    05:55 
 | 
         
        (29) Согласен. Хорошо структурированный код с правильно именованными переменными, процедурами и функциями не нуждается в комментариях.     
         | 
|||
| 
    32
    
        Mikhail Volkov    
     03.12.20 
            ✎
    06:54 
 | 
         
        (30) > при необходимости его дополнял с датой и причиной.
 
        Свою метку и дату ставлю всегда при внесении своих изменений в исходном коде, чтобы не затерлись обновлениями. Но когда изменения не более двух строк. Если больше, то вставляю свою функцию или процедуру. Которую вызываю из своего общего модуля. В нем при необходимости пишу нужные комментарии.  | 
|||
| 
    33
    
        Мимохожий Однако    
     03.12.20 
            ✎
    07:45 
 | 
         
        Важно научиться читать чужой код без агрессии и нервотрепки. Свой код читать при этом как чужой.     
         | 
|||
| 
    34
    
        toypaul    
     гуру 
    03.12.20 
            ✎
    08:00 
 | 
         
        Похоже большинство не совсем правильно поняли суть проблемы. Суть не в том как вы расставляете плюсики/минусики или фигурные скобочки. Вопрос в том как избавляться от мусорки, в которую превращается код от бесконечных каментов.
 
        Я работаю, например в конфе, в которой каменты как минимум с 11 года. Иногда встречаются и с 04 года. В итоге на одну строчку кода бывает 10-20 строк каментов. Учиться читать такой код? Да упаси боже. Душевное здоровье дороже. И по всей видимости это болото незаметно затягивает любого кто в него наступил. Сначала ты учишься читать чужой код, а потом сам незаметно превращаешься в этакого 1С-ника Голума :)  | 
|||
| 
    35
    
        pudher    
     03.12.20 
            ✎
    08:04 
 | 
         
        (34) Я если вижу комменты старше 1 года, их просто убираю. Никому они не понадобятся 100%.     
         | 
|||
| 
    36
    
        Галахад    
     гуру 
    03.12.20 
            ✎
    08:05 
 | 
         
        (34) Кровавый энтерпрайз. :-)
 
        Решение. Переход на новую систему...  | 
|||
| 
    37
    
        Mikhail Volkov    
     03.12.20 
            ✎
    08:15 
 | 
         
        (34) > Вопрос в том как избавляться от мусорки, в которую превращается код от бесконечных каментов.
 
        Делай также (32), минимальные изменения исходного кода.  | 
|||
| 
    38
    
        Paint_NET    
     03.12.20 
            ✎
    08:21 
 | 
         
        Либо как в (30). Плюс практически все доработки будут в твоих отдельных модулях, что может пригодиться в будущем.     
         | 
|||
| 
    39
    
        Галахад    
     гуру 
    03.12.20 
            ✎
    08:29 
 | 
         
        (37) (38) Как этом можно сделать, когда  задача оптимизировать код? Например снизить время операции.     
         | 
|||
| 
    40
    
        Bigbro    
     03.12.20 
            ✎
    08:30 
 | 
         
        я не удаляю старые комментарии и закомментированные куски кода, даже когда они начинают занимать половину текста.
 
        потому что даже через несколько лет иногда встает вопрос - а почему именно так, и как было тогда то. по истории можно восстановить картину с тем как модуль работал 2, 3 и 5 лет назад, как менялся и по чьим заявкам. в итоге бывает приходят к тому что все вот это нам теперь не надо - верни как было в 2008м, только одну штуку добавь и все. без комментов было бы невозможно реализовывать такие хотелки.  | 
|||
| 
    41
    
        Paint_NET    
     03.12.20 
            ✎
    08:33 
 | 
         
        (39) Каким образом описанные схемы увеличивают время операций?     
         | 
|||
| 
    42
    
        Масянька    
     03.12.20 
            ✎
    08:39 
 | 
         
        В универе с первого курса преподы говорили: "Комментируйте свой код."
 
        Полностью согласна. В зависимости от задачи: бывает достаточно одной строчки (описания), бывает нужно больше.  | 
|||
| 
    43
    
        Галахад    
     гуру 
    03.12.20 
            ✎
    08:39 
 | 
         
        (41) Никаким. Вопрос каким способом можно оптимизировать время, если отдельные процедуры уже в принципе нормальны.
 
        А оптимизацию можно сделать, только через какой-то новый подход.  | 
|||
| 
    44
    
        Мимохожий Однако    
     03.12.20 
            ✎
    08:40 
 | 
         
        (34) Если это мусор, то его надо выкинуть. Это очевидно. Если сомневаешься, то перебирай этот мусор аккуратно и без брезгливости.Это твоя работа.     
         | 
|||
| 
    45
    
        Малыш Джон    
     03.12.20 
            ✎
    08:45 
 | 
         
        (34)Скопируй кусок кода с мусором ниже, старый кусок полностью комментируй(можно в область завернуть: потом сворачивать можно, чтоб глаза не мозолил), из нового куска удаляй весь мусор (да и, как правило, за такое время мусор не только в комментариях, но и в коде есть; его тоже полезно почистить). Если через год старый закомментированный кусок никому не понадобился - смело удаляй.     
         | 
|||
| 
    46
    
        Масянька    
     03.12.20 
            ✎
    08:45 
 | 
         
        + (42) Если в одном блоке (по смыслу) получается больше двух-трех (по ситуации) комментов - полностью ремарю исходную.     
         | 
|||
| 
    47
    
        Paint_NET    
     03.12.20 
            ✎
    09:04 
 | 
         
        (43) Так если оптимизируем, то так же и делаем. Оставляем оригинал, делаем его копию и там оптимизируем. Ничего страшного в том, что после оптимизации в конфе останется неиспользуемый код, нет. Зато, повторюсь, все доработки будут вне базовой конфы в одном месте лежать, что очень удобно.     
         | 
|||
| 
    48
    
        toypaul    
     гуру 
    03.12.20 
            ✎
    09:18 
 | 
         
        (37) я так делаю иногда с запросами. потому что все эти каменты в запросах это полный бред с точки зрения поддержки. но вот недавно сказали - не надо так делать. потому что в моей новой процедуре не видно что именно было изменено.     
         | 
|||
| 
    49
    
        Ёпрст    
     гуру 
    03.12.20 
            ✎
    09:31 
 | 
         
        (0) каменчу только то, что самому нужно, а так , не каменчу ничего.     
         | 
|||
| 
    50
    
        ptiz    
     03.12.20 
            ✎
    09:53 
 | 
         
        Главное, писать не только то, что делает код, но также "зачем", и "по чьей хотелке", и "почему поменяли обратно".     
         | 
|||
| 
    51
    
        spiller26    
     03.12.20 
            ✎
    10:14 
 | 
         
        (0)
 
        //--> Фамилия И.О. (контора если нужно), дд.мм.год, № задачи // основной код мой код //<-- Фамилия И.О. (контора если нужно), дд.мм.год, № задачи Старый код удаляется, если не нужен, или ставиться условие дата до какого момента он должен работать. Ненавижу: - когда в условиях ставят конкретного пользователя типа "Если пользователь = "Пупкин" Тогда ..." - свои реквизиты, справочники, доки и т.д. называют стандартно без дополнительных обозначений. (я ставлю пару букв и "_", например "ссс_НазваниеОбъекта")  | 
|||
| 
    52
    
        aka MIK    
     03.12.20 
            ✎
    10:26 
 | 
         
        (0) есть же хранилище. комменты старше пары лет можно безболезненно чистить - обработку бы еще написал кто-то..     
         | 
|||
| 
    53
    
        aka MIK    
     03.12.20 
            ✎
    10:27 
 | 
         
        (51) это неправильно, формат даты должен быть год.мм.дд, иначе не найдешь изменения, сделанные "примерно в прошлом месяце"     
         | 
|||
| 
    54
    
        aka MIK    
     03.12.20 
            ✎
    10:28 
 | 
         
        (25) переучивай потом таких..     
         | 
|||
| 
    55
    
        Bigbro    
     03.12.20 
            ✎
    10:33 
 | 
         
        (50) именно так. важно понимать почему и для чего именно таким образом работает модуль. а комменты к самому коду - имхо нужны, только когда что-то совсем нестандартное наворачивается. остальное должно быть и без комментариев читабельно и прозрачно, для нормального кода.     
         | 
|||
| 
    56
    
        spiller26    
     03.12.20 
            ✎
    10:35 
 | 
         
        (52) Хранилище может умереть, многие не пользуются хранилищем.     
         | 
|||
| 
    57
    
        ДенисЧ    
     03.12.20 
            ✎
    10:38 
 | 
         
        (56) Умереть может кто угодно. Н, в отличие от человека, хранилище можно ежедневно резервнокопировать     
         | 
|||
| 
    58
    
        aka MIK    
     03.12.20 
            ✎
    10:42 
 | 
         
        (56) умереть может, это да, но можно хранить бекап cf с этим всем мусором до чистки.     
         | 
|||
| 
    59
    
        Ботаник Гарден Меран    
     03.12.20 
            ✎
    10:46 
 | 
         
        Когда рвал БП в лоскуты в одну харю, то комментировал как в (9) примерно. 
 
        //+= Здесь мой код //+- Вся строка добавлена мной //++ //Типовой код //-- Потом влился в большие коллективы и комментирую по принятым правилам //((Банда погоняло дата номер приказа Мой код //))Банда погоняло дата номер приказа  | 
|||
| 
    60
    
        Timon1405    
     03.12.20 
            ✎
    10:57 
 | 
         
        (15) +1 за git+blame. в самом коде только подробости по неочевидным строкам кода. по любой строке кода можно мгновенно(!) получить историю (никаких нудных открыть версию конфигурацию в хранилище, сравнить с текущей и пр.)+ пишем в "коммите" в хранилище номера задач в трекере - подробности по задаче смотрим там.     
         | 
|||
| 
    61
    
        aka MIK    
     03.12.20 
            ✎
    11:08 
 | 
         
        (60) да уж, поднимать историю в стандартном хранилище - это ад     
         | 
|||
| 
    62
    
        kumena    
     03.12.20 
            ✎
    11:45 
 | 
         
        Никогда не понимал комментариев с надписью в стиле "Здесь был Вася, такого то числа, такого то года". Потом приходит Петя, и пишет что он тоже здесь был, но позднее. 
 
        А еще позднее Федя, пытается разобраться что-же делали Вася и Петя, которых уже давно нет и найти нельзя. И толку от этих комментариев? Получаем ситуацию как у автора. Единственные комментарии, которые я понимаю, это номер заявки в учетной системе заявок, по которой можно найти заказчика, исполнителя и узнать зачем сделаны изменения. так же они должны быть сделаны в каком-то едином формате, по которым можно их все найти. Это бывает удобно, когда нужно обновить типовую конфигурацию, и соответственно, можно легко сравнить число комментариев до обновления и после, и понять, все ли изменения кода перенесены. Но с приходом расширений это стало не так нужно. По хранилищу можно найти все изменения, а если указывать там всю нужную информацию, то все очень удобно. У меня на прошлом месте работы после внедрения изменений была рассылка изменений хранилища пользователям и команде разработчиков, чтобы все видели какие проблемы/заявки исправлены.  | 
|||
| 
    63
    
        kumena    
     03.12.20 
            ✎
    11:47 
 | 
         
        > да уж, поднимать историю в стандартном хранилище - это ад
 
        Какие сложности? Правая кнопка мыши на объекте - История объекта. Все, весь лог изменений перед вами!  | 
|||
| 
    64
    
        NWsFF    
     03.12.20 
            ✎
    12:21 
 | 
         
        В коде убираю все комментарии, оставляю только те что над процедурами/функциями     
         | 
|||
| 
    65
    
        aka MIK    
     03.12.20 
            ✎
    13:10 
 | 
         
        (63) и как найти кто изменил конкретную строку?     
         | 
|||
| 
    66
    
        xenos    
     03.12.20 
            ✎
    13:57 
 | 
         
        //{имяфранча
 
        //задача: описание задачи (описание в нескольких местах должно совпадать до символа,чтобы искать по разным модуля, или номер задачи в хелп деске) //иванов - кто делал //2020 12 03 //прим. - примечания, заказчик //{убрано ///.... убраный кусок кода //убрано} //{добавлено Новый код //добавлено} //имяфранча}  | 
|||
| 
    67
    
        Малыш Джон    
     03.12.20 
            ✎
    14:01 
 | 
         
        Первое правило по комментированию кода: никому не говорить про комментирование кода.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |