Page 2 of 7

Re: Правила оформления кода

Posted: Fri Oct 07, 2011 6:52 pm
by CleverMouse
IgorA, после включения проверки будет один коммит, который приведёт всё к узаконенному стилю и который не будет изменять функциональность. ВебЛомастер тут ни при чём, это довольно банальная замена по регулярному выражению, с которой на ура справляются стандартные юниксовые средства.

Re: Правила оформления кода

Posted: Fri Oct 07, 2011 6:59 pm
by mike.dld
Легче потратить один день и отформатировать весь код. И не нужно лишних телодвижений в будущем.
Насчёт коротких меток, есть только одна такая, которую я лично всегда пишу на одной строке с инструкцией - это @@. Все остальные метки не имеют права быть короткими (и я никогда не пишу их на одной строке с инструкцией), дабы не затруднять понимание кода.
Что касается вопроса SoUrcerer'а насчёт редакторов, то таким является по крайней мере FASMW (удивительно, не правда ли). А вообще, любой уважающий себя и ориентированный на программистов редактор по крайней мере поддерживает авто-отступ.
По поводу lock согласен с Serge'ем.
И ещё, я бы всё-таки подумал над 5-м пунктом, потому что решать проблему наполовину - это как-то странно. Пусть даже и без валидации, но соглашения должны быть достигнуты.

Re: Правила оформления кода

Posted: Fri Oct 07, 2011 6:59 pm
by mike.dld
Легче потратить один день и отформатировать весь код. И не нужно лишних телодвижений в будущем.
Насчёт коротких меток, есть только одна такая, которую я лично всегда пишу на одной строке с инструкцией - это @@. Все остальные метки не имеют права быть короткими (и я никогда не пишу их на одной строке с инструкцией), дабы не затруднять понимание кода.
Что касается вопроса SoUrcerer'а насчёт редакторов, то таким является по крайней мере FASMW (удивительно, не правда ли). А вообще, любой уважающий себя и ориентированный на программистов редактор по крайней мере поддерживает авто-отступ.
По поводу lock согласен с Serge'ем.
И ещё, я бы всё-таки подумал над 5-м пунктом, потому что решать проблему наполовину - это как-то странно. Пусть даже и без валидации, но соглашения должны быть достигнуты.

Re: Правила оформления кода

Posted: Mon Oct 10, 2011 8:19 pm
by turbanoff
может быть стоит разделить метки: глобальные, локальные (.label:) и супер-локальные(@@)
я привык начинать глобальные с начала, а остальные с отступом 4 пробела.
и теперь визуальное оформление циклов будет невозможно, что не есть хорошо.

еще 2 момента которые хотелось бы стандартизировать:
1. описание процедур (in, out параметры)
2. логические разделители:
;********************************************
;======================
и т.п.

Re: Правила оформления кода

Posted: Mon Oct 10, 2011 8:34 pm
by CleverMouse
Тексты, преобразованные текущей версией автоматики, можно посмотреть на http://ftp.kolibrios.org/users/CleverMouse/kernel-trunk .
Отступы меток пока никак не стандартизуются.
Визуальное оформление циклов в ассемблере скорее затрудняет восприятие и в любом случае должно либо быть по всему ядру, либо не быть по всему ядру, и по всему ядру его нет.

Re: Правила оформления кода

Posted: Mon Oct 10, 2011 8:37 pm
by SII
Я в своё время пробовал использовать отступы для циклов и вложенных условий, но не понравилось (да и не всегда возможно, если пишется с прицелом на оптимизацию)...

А ещё надо бы каждую подпрограмму снабжать подробным комментарием относительно её функций, входных-выходных параметров, особых условий и т.д. и т.п.

Re: Правила оформления кода

Posted: Tue Oct 11, 2011 10:07 pm
by CleverMouse
Мне несложно, раз я ввожу правила, заодно добавить ещё какие-нибудь правила для проверятора и/или украшателя, но а) поскольку мне для комфортной работы достаточно уже приведённых, то новых правил от меня не ждите и б) необходимое условие для ввода правила - поддержка хотя бы двоих участников обсуждения.

Re: Правила оформления кода

Posted: Wed Oct 12, 2011 12:23 am
by Serge
В kernel.asm метки l.5 l.6 l.7 (отличные имена для глобальных меток) выравнены на 4 байта.

Re: Правила оформления кода

Posted: Wed Oct 12, 2011 7:07 am
by popovpa
Я конечно не программист со стажем, совсем без стажа, но на сколько мне удалось въехать, именно так я и оформляю код, по этому я за. :)

Re: Правила оформления кода

Posted: Wed Oct 12, 2011 11:56 am
by CleverMouse
Отступы для меток не регулируются никак, я жду консолидированных предложений.

Re: Правила оформления кода

Posted: Wed Oct 12, 2011 1:40 pm
by turbanoff
предлагаю так:
глобальные - с начала
локальные - 4 пробела
@@ - 4 пробела, на одной строке с командой

Re: Правила оформления кода

Posted: Wed Oct 12, 2011 1:49 pm
by CleverMouse
Метки на одной строке с командой неудобны при необходимости добавления кода с учётом того, что svn оперирует строками:

Code: Select all

...
jnz @f
xor ecx, ecx
@@: dec ebx
jnz label
...
Если в этом коде выяснится, что после первого перехода, но до второго нужно добавить xor eax,eax, то это затронет две строки

Code: Select all

...
jnz @f
xor ecx, ecx
@@: xor eax, eax ; добавленная строка
dec ebx ; как бы изменённая строка; на самом деле она не менялась
jnz label
...
Кроме того, добавление исключения из общего правила - в данном случае, "каждая метка на отдельной строке" - должно быть чем-то обосновано.

Re: Правила оформления кода

Posted: Wed Oct 12, 2011 1:52 pm
by popovpa
Если следовать логике ассемблера, то каждая строка это команда, у него ведь строчно-последовательное выполнение :), значит в одной строке одна команда...

Re: Правила оформления кода

Posted: Wed Oct 12, 2011 2:15 pm
by turbanoff
для меня не принципиально. Хотя я тоже пишу на отдельной строке.

Re: Правила оформления кода

Posted: Wed Oct 12, 2011 2:27 pm
by Serge
Лучше метки совсем без отступа и глобальные и локальные. Ещё я бы увеличил отступ команд с 8 до 12 пробелов что бы длинные метки не наползали на код. И совсем хорошо было бы заменить глобальные метки локальными там, где они в действительности локальные. Свой код от ненужных глобальный меток я почищу.