dlinyj: (Default)
[personal profile] dlinyj
Хочется воскликнуть - КОМЕНТИРУЙ КОД, СУКА!

Date: 2012-04-23 05:08 pm (UTC)
From: [identity profile] dru4.livejournal.com
а я ещё обычно добавляю: "ну какой мудила эту хню написал?!" -)))

Date: 2012-04-23 05:10 pm (UTC)
From: [identity profile] stalex.livejournal.com
мб банально, но у меня код начинается с коментов
типа это блок будет делать тото, и его уже реализую ниже

Date: 2012-04-23 06:07 pm (UTC)
From: [identity profile] svchost1101.livejournal.com
Какой идиот это писал? а, блин, я. Вот черт.

Date: 2012-04-23 06:47 pm (UTC)
From: [identity profile] side2k.livejournal.com
А потом придет осознание того, что код надо писать так, чтобы комменты были не нужны.

Date: 2012-04-23 06:48 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Отныне я так и буду делать!

Просто программы пишутся в творческом порыве, когда мысль опережает руки, и там не до комментариев.

Date: 2012-04-23 06:49 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
правильное написание комментов - чтоб помогло - наука сама по себе
непросто так вот взять и начать их писать

Date: 2012-04-23 06:49 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Осознание приходит, я в общем-то стараюсь так и делать. Но когда код взаимодействует с контролером, который в свою очередь на себе несёт не меньшую по строкам кода программулину, то разобратся где зарыта собака просто невозможно :)

Date: 2012-04-23 06:52 pm (UTC)
From: [identity profile] side2k.livejournal.com
Ну, если речь об асме, то там без комментов совсем никуда, да.
А на высокоуровневых языках - надо стремиться 8)

Date: 2012-04-23 06:53 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Я давно перестал быть извращенцем. Да и код для арма.

Date: 2012-04-23 06:54 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Полное их отсутствие - это большая беда, чем хоть какой-то комментарий.

Date: 2012-04-23 06:56 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
зависит от кода
иногда хочется повыкидывать комменты чтоб вообще найти код :)

Date: 2012-04-23 07:01 pm (UTC)
From: [identity profile] side2k.livejournal.com
Ну тогда тем более.
Я, например, с давних пор перестал использовать однобуквенные переменные для счетчиков цикла. С одной стороны - в маленьких программульках может оно и не столь актуально, а с другой - нельзя быть в одном месте собранным, а в другом - расхлябанным. Поэтому стараюсь следить за такими вещами. Впрочем - после нескольких лет такой практике оно уже автоматически.
Что не мешает, конечно же, более серьезным спецам, чем я, находить косяки в моем коде 8)

Date: 2012-04-23 07:05 pm (UTC)
From: [identity profile] gorl.livejournal.com
а я обычно когда заглядываю в какой-нибудь свой древний проект, когда вникаю, всегда думаю одно: "бля, круто ж я написал!" ;)

Date: 2012-04-23 07:05 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Буду честен, я отношу себя к начинающим, слаборазвитым программистам. Но мои программы имеют сложную структуру и разбросаны по куче файлов. Например, я имею большую глупость делать множество перекрёстных вызовов из одного файла в другой. В результате функции начинают быть не переносимыми. А без комментариев, нафига я делаю такой вызов становится вообще не ясно что и зачем.

Это опыт, и я понимаю что так делать нельзя. Для переносимости надо передавать _указатель_ на вызываемую функцию, и в случае переноса кода, просто передавать нужный указатель.

Date: 2012-04-23 07:07 pm (UTC)
From: [identity profile] side2k.livejournal.com
Т.е. со временем идет деградация умений? 8)

Date: 2012-04-23 07:09 pm (UTC)
From: [identity profile] side2k.livejournal.com
> я отношу себя к начинающим, слаборазвитым программистам.

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

> я имею большую глупость делать

Т.е. ты считаешь это глупостью - и все равно так делаешь?

Date: 2012-04-23 07:14 pm (UTC)
From: [identity profile] gorl.livejournal.com
да нет, ты же в голове все решения не держишь (я точно не держу).
просто восторг от того, что уже тогда ход мысли был правильным и в неочевидных местах все красиво ;).

Date: 2012-04-23 07:30 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Скажем я сейчас это осознал :)

Date: 2012-04-23 07:33 pm (UTC)
From: [identity profile] side2k.livejournal.com
Следующая ступень просветления - это когда не позволяешь своим эмоциям овладеть тобой и заставить тебя переписать "всё начисто" 8)

Date: 2012-04-23 07:35 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Нет, я не буду писать начисто. Я просто вообще буду писать новую программу :).

Date: 2012-04-23 07:38 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Код часть большого электронного устройства. При чём есть код как на стороне компа, так и самого девайса. У меня вызывает умиление вся конструкция. Хотя я понимаю, что было лучше сделать так, а тут исправить это. Как верно сказали, когда ты доволен собой в прошлом и не видишь ошибок, то это означает, что некуда расти.

Date: 2012-04-23 07:38 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
И становится так горько :)

Date: 2012-04-23 08:24 pm (UTC)
From: [identity profile] zyrg.livejournal.com
хороший код не нуждается в комментариях. на ассемблере достаточно вменяемо называть макроопределения и писать пояснения что вообще происходит. но это приходит с практикой, потому что ламерские понты в начале не позволяют раздувать код ради читаемости. я всегда пишу if flag == true, и жопой чувствую места которые через время станут неясны, там поясняю, и вообще всегда пишу код из расчета что его будет ктото другой править

Date: 2012-04-23 08:32 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Я к счастью давным-давно не пишу на ассемблере. Кстати, с ассемблером таких проблем не возникает. Там слишком всё и так понятно.

Но мысль твоя верная и мне нравится.

Date: 2012-04-23 08:47 pm (UTC)
From: [identity profile] zyrg.livejournal.com
еще на будущее замечу, что в очень больших проектах, крайне удобно юзать тегированные комментарии. потом по этим комментариям составляется автодокументация на проект. это все работает, если структура кода при конвертации на выходе дает логическую структуру. google: doxygen

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

Date: 2012-04-23 08:55 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Доксиген знаю, а вот про тегерированые комментарии слышу впервые.

Вообще, я сейчас думаю искать работу линукс-программиста.

Date: 2012-04-23 09:02 pm (UTC)
From: [identity profile] zyrg.livejournal.com
ооочень хорошая тема, и хлеб будет всегда, и развитие. Желаю быстрого завершения поиска

Date: 2012-04-23 09:40 pm (UTC)

Date: 2012-04-24 03:50 am (UTC)
From: [identity profile] minimumlaw.livejournal.com
И это правильно. Главное не комменты - а толково написанных код.
Чтоб никаких "int a,b,c,temp,temp2,tmp" или "DDRA |= 0x80" или "void function3 (char a, int* b)"

Код надо писать так, чтоб он сам себя комментировал. А для этого надо всего-то давать осмысленные имена имена переменным и функциям и поменьше использовать цифровых констант. Из того что выше

#define LCD_PIN_CD (1<<7)
...
DDRA |= LCD_PIN_CD;

Длинные определения констант, переменных и функций в итоговый код не попадают и размеры его не увеличивают. Так что экономить на них смысла нет. А вот комментировать написанный так код практически не надо. Вообще есть замечательный документ - линукс кодинг стайл. Увы, ссылка сразу заносит сообщение в спам, но ижется очень легко. Очень рекомендую к ознакомлению.

Date: 2012-04-24 04:44 am (UTC)
From: [identity profile] casamusa.livejournal.com
У тебя этот пост раз в полгода/год проскакивает =)

Как уже говорил в предыдущие разы, пиши самодокументируемый код.

my ( $iCount , $sLine , $fFileConf , $bFlag ) = 0;
my ( @aFile ) = ();

sub checkFiles{
open FH , '<' , $fFileConf;
@aFile = ;
close FH;

while( (defined( $sLine )) = ){
print "$iCount\n";
$iCount++;
}
}
Глупенький код (да и неправильный) на перле, но смысл передаст о своей работе и через пять лет.
Точно так же и C/ASM
На асме, согласен, труднее.
Но даже там получается.

Date: 2012-04-24 04:57 am (UTC)
From: [identity profile] krino2.livejournal.com
Откуда-то вспомнилось: "Комментарии к программе написаны на языке Си"

Date: 2012-04-24 06:34 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Смеялся

Date: 2012-04-24 06:35 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Я потом из спама достаю :). Так что можно давать, но скоро отключу эту опцию

Date: 2012-04-24 07:42 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Будем стараться. Просто у меня множество перекрёсттных вызовов функций из файла в файл, и просто мозг сломался.

Date: 2012-04-24 12:39 pm (UTC)
From: [identity profile] getinaks.livejournal.com
У меня другое возникает:
"Харэ писать в пьяном виде". Ибо в этом состоянии я могу не понять какой-то простой вещи из документации и написать работающий, но вообще не понятно как и куда и вообще кто все эти переменные, хак. Который на следующий день уже никто не поймет, включая меня.

Date: 2012-04-24 04:30 pm (UTC)
From: [identity profile] di-halt.livejournal.com
А я неплохо помню как работает вообще любой код который я писал, похрену когда и зачем. Если я писал, то вспомню что там и как. Даже без комментов :)

Date: 2012-04-25 08:59 am (UTC)
From: [identity profile] 007-and.livejournal.com
А я уже нет, поэтому пишу комменты.

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 08:48 pm
Powered by Dreamwidth Studios