Board.KolibriOS.org
http://board.kolibrios.org/

Правила оформления кода
http://board.kolibrios.org/viewtopic.php?f=7&t=1950
Page 2 of 7

Author:  CleverMouse [ Fri Oct 07, 2011 6:52 pm ]
Post subject:  Re: Правила оформления кода

IgorA, после включения проверки будет один коммит, который приведёт всё к узаконенному стилю и который не будет изменять функциональность. ВебЛомастер тут ни при чём, это довольно банальная замена по регулярному выражению, с которой на ура справляются стандартные юниксовые средства.

Author:  mike.dld [ Fri Oct 07, 2011 6:59 pm ]
Post subject:  Re: Правила оформления кода

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

Author:  mike.dld [ Fri Oct 07, 2011 6:59 pm ]
Post subject:  Re: Правила оформления кода

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

Author:  turbanoff [ Mon Oct 10, 2011 8:19 pm ]
Post subject:  Re: Правила оформления кода

может быть стоит разделить метки: глобальные, локальные (.label:) и супер-локальные(@@)
я привык начинать глобальные с начала, а остальные с отступом 4 пробела.
и теперь визуальное оформление циклов будет невозможно, что не есть хорошо.

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

Author:  CleverMouse [ Mon Oct 10, 2011 8:34 pm ]
Post subject:  Re: Правила оформления кода

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

Author:  SII [ Mon Oct 10, 2011 8:37 pm ]
Post subject:  Re: Правила оформления кода

Я в своё время пробовал использовать отступы для циклов и вложенных условий, но не понравилось (да и не всегда возможно, если пишется с прицелом на оптимизацию)...

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

Author:  CleverMouse [ Tue Oct 11, 2011 10:07 pm ]
Post subject:  Re: Правила оформления кода

Мне несложно, раз я ввожу правила, заодно добавить ещё какие-нибудь правила для проверятора и/или украшателя, но а) поскольку мне для комфортной работы достаточно уже приведённых, то новых правил от меня не ждите и б) необходимое условие для ввода правила - поддержка хотя бы двоих участников обсуждения.

Author:  Serge [ Wed Oct 12, 2011 12:23 am ]
Post subject:  Re: Правила оформления кода

В kernel.asm метки l.5 l.6 l.7 (отличные имена для глобальных меток) выравнены на 4 байта.

Author:  popovpa [ Wed Oct 12, 2011 7:07 am ]
Post subject:  Re: Правила оформления кода

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

Author:  CleverMouse [ Wed Oct 12, 2011 11:56 am ]
Post subject:  Re: Правила оформления кода

Отступы для меток не регулируются никак, я жду консолидированных предложений.

Author:  turbanoff [ Wed Oct 12, 2011 1:40 pm ]
Post subject:  Re: Правила оформления кода

предлагаю так:
глобальные - с начала
локальные - 4 пробела
@@ - 4 пробела, на одной строке с командой

Author:  CleverMouse [ Wed Oct 12, 2011 1:49 pm ]
Post subject:  Re: Правила оформления кода

Метки на одной строке с командой неудобны при необходимости добавления кода с учётом того, что svn оперирует строками:
Code:
...
jnz @f
xor ecx, ecx
@@: dec ebx
jnz label
...

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

Кроме того, добавление исключения из общего правила - в данном случае, "каждая метка на отдельной строке" - должно быть чем-то обосновано.

Author:  popovpa [ Wed Oct 12, 2011 1:52 pm ]
Post subject:  Re: Правила оформления кода

Если следовать логике ассемблера, то каждая строка это команда, у него ведь строчно-последовательное выполнение :), значит в одной строке одна команда...

Author:  turbanoff [ Wed Oct 12, 2011 2:15 pm ]
Post subject:  Re: Правила оформления кода

для меня не принципиально. Хотя я тоже пишу на отдельной строке.

Author:  Serge [ Wed Oct 12, 2011 2:27 pm ]
Post subject:  Re: Правила оформления кода

Лучше метки совсем без отступа и глобальные и локальные. Ещё я бы увеличил отступ команд с 8 до 12 пробелов что бы длинные метки не наползали на код. И совсем хорошо было бы заменить глобальные метки локальными там, где они в действительности локальные. Свой код от ненужных глобальный меток я почищу.

Page 2 of 7 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/