Страница 1 из 3

Оформление кода

Добавлено: Пт ноя 20, 2015 19:52:33
gauss
Доброго вечера всем!
Пишу код на ассемблере уже довольно давно. Проги все сложнее, все больше...
Естественно, пытаюсь оформлять, использую .def, .equ, различные макросы,
чтобы хоть как-то повысить уровень абстракции.
Мой вопрос, собственно говоря, именно по макросам:
Со временем они начинают накапливаться, их становится реально много. Но вот, например, выкладываю
куда-либо пример кода. И что, все макросы надо заменять на спрятанный внутрь код?

Просто у каждого разработчика со временем появляются вот такие библиотеки макросов, но каждый видит
их по-своему - становится намного труднее читать чужой код. Существуют ли какие-либо стандарты в данной области,
и вообще, кто как оформляет свои проекты? :)

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 21:07:29
pyzhman
Стандарт один - завязка, кульминация и развязка. А пишут все по-разному. У Чехова один стиль, у Пушкина другой. Но все читаемы. Главное, чтобы буквы были знакомые.

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 22:19:15
gauss
pyzhman, под читаемостью я понимаю удобство восприятия.
Скажем, заглянете в код через несколько месяцев(а то и больше) - сможете разобраться в логике работы программы?

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

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 22:21:59
YS
Пишите обширные комментарии. Это очень помогает читателям кода. Причем желательно на английском - национальные кодировки везде разные, а латиница везде одна. Только ради бога, не транслитом - это выглядит... Нехорошо. Да и коллеги по всему миру на английском поймут.

Также рекомендуется давать переменным осмысленные имена.
Проги все сложнее, все больше...
Ну и да, в таком случае с некоторого момента проще перейти на Си. Правда, это не отменяет совета насчет написания комментариев.

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 22:27:03
ARV
YS писал(а):проще перейти на Си. Правда, это не отменяет совета насчет написания комментариев
на счет комментариев я бы не стал так категорично утверждать...

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 22:30:44
YS
В любом случае, лучше когда они есть, чем когда их нет. Если читающему они покажутся мешающими, он может просто удалить их.

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 22:33:58
ARV
не хотелось бы повторяться... но лучше не в любом случае

Код: Выделить всё

a = a * 2; // удваиваем переменную
я бы убивал...

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 22:36:05
YS
Ну так и что? Да, такой комментарий абсолютно бесполезен, но и вреда от него ноль.

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 22:41:50
ARV
не можешь сделать добро - не делай ничего :)))
бесполезный комментарий вреден как минимум тем, что отучает делать полезные комментарии.

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 22:47:18
gauss
Не надо комментировать каждую строку - код разделяется тем же энтером на отдельные блоки, отвечающие за
что-то одно, вот такой блок и комментируется :)

И комментятся не команды, а СУТЬ данного блока, может быть, какие-либо переменные, нюансы...

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 22:59:38
ARV
gauss, если вы хотите в порядке самообразования получить дополнительное удовольствие от макросов - осваивайте GNU AVR-AS :) вот там макросы - это МАКРОСЫ, а не жалкое убожество от Atmel...

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

P.S. написал и вдруг подумал: а с чего это я решил, что вы пишите на ассемблере под AVR?! :dont_know: так что если не в тему - извините...

Re: Оформление кода

Добавлено: Пт ноя 20, 2015 23:00:49
gauss
ARV, наверное, это в силу особенностей языка :)

Re: Оформление кода

Добавлено: Сб ноя 21, 2015 06:48:14
pyzhman
gauss писал(а):заглянете в код через несколько месяцев
Я забываю собственный код уже через пару дней, после выходных точно. Посему акромя каментов, в чем согласен с YS, имею нехилую стопку черновиков.
ARV писал(а):

Код: Выделить всё

a = a * 2; // удваиваем переменную
Согласен. А за это:

Код: Выделить всё

a*= 2; // удваиваем переменную
орден давать.

Re: Оформление кода

Добавлено: Сб ноя 21, 2015 09:08:47
OKF
А ещё случаются "обманывающие" комментарии, которые вводят в заблуждение, а также запутывающие, мешающие, дублирующие, тупые, идиотские и т.п.
А нет комментариев - нет и проблем.))
Только блоки. Только непонятные.
Внутри в крайнем случае. Только нюансы.

Re: Оформление кода

Добавлено: Сб ноя 21, 2015 17:26:34
ARV
pyzhman писал(а):А за это:

Код: Выделить всё

a*= 2; // удваиваем переменную
орден давать.
если речь о комментарии - то только посмертно

Re: Оформление кода

Добавлено: Сб ноя 21, 2015 17:34:02
СКАЗОЧНИК
Знаю, что правильно писать кроме кода и комментарии тоже надо учится...
Но и учиться надо с чего-то начинать. А когда уже самому глупые и ненужные комментарии мешать будут, то и писать их перестанешь...
А вот конструкции на Си, которые "упрощают" написание... :facepalm: Лучше да. Орден. :kill:

А я вот привык и мне нравится отделять блоки на ассемблере отступами. Ну, как в С. Тогда мне понятнее, что этот блок идет как вложенный для того, что сверху написано. :)

Re: Оформление кода

Добавлено: Сб ноя 21, 2015 18:47:47
dr.doc
Мне очень помогает написанный словами (вложенная картинка в папку с проектом) краткий алгоритм работы всего прибора. Еще - очень хорошо, когда встречаемые по коду сложные участки также комментируются. Также стараюсь отлаженные блоки с комментариями закидывать в include файлы. Тогда новый проект делается намного проще и по отображаемому коду короче. Подключил блок математики - а там в заголовке написано, что на входе, а что на выходе...

Re: Оформление кода

Добавлено: Сб ноя 21, 2015 18:52:55
Siarzhuk
pyzhman писал(а):

Код: Выделить всё

a*= 2; // удваиваем переменную
орден давать.
ИМХО хватит и медали, а орден не менее чем за

Код: Выделить всё

a <<= 1; // удваиваем переменную

;)

Re: Оформление кода

Добавлено: Сб ноя 21, 2015 20:19:30
gauss
dr.doc писал(а):Также стараюсь отлаженные блоки с комментариями закидывать в include файлы.
dr.doc, тут один минус есть - если подключается слишком много и названия функций/блоков "плохие" -
придется слишком часто лезть в инклюдники. :)

Просто об оформлении задумался сравнительно недавно - после интенсивного курса С++.
Именно поэтому функции с большой буквы, переменные с маленькой и в CamelCase -нотации.
Внутри функций, между метками у кода отступ в 1таб, также на командах условного перехода и с разными sbrc/sbic.


Ну и препроцессор, конечно :)

Re: Оформление кода

Добавлено: Сб ноя 21, 2015 22:39:48
pyzhman
ARV писал(а):посмертно
Зачем так сразу. Повторение - мать учения. Но улыбнуло.
Siarzhuk писал(а):

Код: Выделить всё

a <<= 1; // удваиваем переменную
Пробел и два знака < требуют большего пальцедвижения нежели *. Засим был отсечён этот вариант.