Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Прочая документация (http://mangos.ytdb.ru/forumdisplay.php?f=33)
-   -   Стандарты написания кода в патчах (http://mangos.ytdb.ru/showthread.php?t=3270)

virusav 21.12.2010 21:50

Стандарты написания кода в патчах
 
На текущий момент в ядре одни и те же места (условия, циклы, функции и т.д.) пишутся по-разному, поэтому нередко возникают "пустые" коммиты с правкой этих недочетов.

Есть ли какое-нибудь толковое руководство по стандартам написания кода в ядре мангоса, по которому должны писаться все патчи?

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

LordJZ 21.12.2010 22:37

https://github.com/mangos/mangos/wiki/CodingStandards

virusav 21.12.2010 23:00

Особенно интересуют стандарты написания функций с параметрами, т.к. в ядре есть:
void Func ( uint32 a, uint32 b )
void Func (uint32 a, uint32 b)
void Func(uint32 a, uint32 b)
и различные модификации.

Vladimir 21.12.2010 23:24

Цитата:

void Func(uint32 a, uint32 b)
Стараемся так НО VAssistX зараза предпочитает void Func( uint32 a, uint32 b )
Так что это тоже встречается если не отследили.

zergtmn 22.12.2010 07:31

Это можно настроить.

tempura 22.12.2010 07:35

а по уже имеющемуся коду пакетной заменой пройти.

Йоха 22.12.2010 08:56

Цитата:

Сообщение от virusav (Сообщение 17445)
Особенно интересуют стандарты написания функций с параметрами, т.к. в ядре есть:
void Func ( uint32 a, uint32 b )
void Func (uint32 a, uint32 b)
void Func(uint32 a, uint32 b)
и различные модификации.

эм, я чего-то наверно не понимаю ...
но какая разница как декорированы функции ? для компилятора это три одинаковых объявления

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

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

И вообще в книге Джеффа Элджера есть шикарное высказывание на эту тему, приведу цитату:

Цитата:

Стиль программирования меня не волнует. Я достаточно краток? Если хотя бы
половина времени, израсходованного на правильную расстановку фигурных скобок, тратилась на
обдумывание программы или еще лучше — на общение с пользователями, то вся отрасль работала бы
намного эффективнее. Конечно, единство стиля — вещь хорошая, но я еще не видел книги или
руководства по стилю, которые бы стоили даже часового собрания группы в начале проекта. К тому же
ни одна книга или руководство по стилю не превратят код неаккуратного программиста в нечто
осмысленное. В сущности, стиль часто используется как оправдание недостатка внимания к самой
программе. Наконец, я еще не видел, чтобы в спорах о стиле один программист в чем-то убедил
другого, поэтому любые дискуссии на эту тему считаю бесполезной тратой времени.
По-моему золотые слова!

Sid 22.12.2010 09:16

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

Йоха 22.12.2010 09:20

Цитата:

код читаемым как книжку
хех, код читаемый как книга не зависит от того как расставлены скобки и сколько пробелов перед или после функции
Хорошо читаемый код это прежде всего грамотно продуманая идея

Цитата:

void Func ( uint32 a, uint32 b )
void Func (uint32 a, uint32 b)
void Func(uint32 a, uint32 b)
Лично я не вижу никаких трудностей в прочтении любой из этих трех строк

Уверен что идея заставить всех программистов использовать единый стиль - это утопия.

Так же уверен что бороться надо только с такими формами записи которые действительно трудно читаемы, например:
для примера посмотрите исходники arrai, вот там действительно черт голову сломает

и в конце концов, перед коммитом патчей - прогонять весь новый код через форматер, и будет вам счастье.

PSZ 22.12.2010 10:52

Цитата:

Сообщение от Йоха (Сообщение 17456)
эм, я чего-то наверно не понимаю ...
но какая разница как декорированы функции ? для компилятора это три одинаковых объявления

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

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

И вообще в книге Джеффа Элджера есть шикарное высказывание на эту тему, приведу цитату:



По-моему золотые слова!

Борис, ты не прав. (с)
Если стиль кода стандартизирован, то и писать легче, и искать ошибки, и на психику положительно влияет :).

virusav 22.12.2010 10:56

Стандарты придумали не идиоты и не просто так, поэтому надо писать в едином стиле.

Йоха 22.12.2010 14:28

Цитата:

Сообщение от PSZ (Сообщение 17462)
Борис, ты не прав. (с)
Если стиль кода стандартизирован, то и писать легче, и искать ошибки, и на психику положительно влияет :).

Есть некая разница между понятиями "стандарт" и "следовать этому стандарту", не находите ?

На практике дела обстоят таким образом что у каждого программиста есть свой стиль или свои предпочтения в оформлении исходного кода.
И переучиться достаточно сложно.
Я вообще не думаю об этом когда пишу код, привычка так сказать.

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

Так что мое личное мнение что 100%-ая гарантия единого стиля оформления кода во всем проекте - это обрабатывать все новые файлы автоматическим форматером.

Йоха 22.12.2010 14:30

P.S. теоретически я за стандарт в оформлении кода. Было бы забавно если бы компилятор выдавал ошибку если где-то стоит лишний пробел или фигурная скобка как-то не так стоит -)

RomanRom2 22.12.2010 14:39

парни, вы все правильно говорите. единый стиль и всё такое. я тоже за единый стиль - это сильно упрощяет жизнь.

я вам даже больше скажу, у меня у самого с течением времени этот стиль немного видоизменяется.

короче говоря хочу сказать, работая в большой софтверной компании (около 1000-1500 человек), работая с иностранными кастомерами, которые аутсорсят код одного проекта не только в россию, могу сказать что единый стиль - это действительно утопия :) никого не научишь единому стилю.

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

проблема решается реально просто: в скприпте компиляции встроены команды на запуск тулзов, приводящий код к этому пресловутому единому стилю. и всё. и никто не парится.

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

Vladimir 22.12.2010 17:40

1. В мангосе очень рудиментированные требования по стилю, и старый код правится по мере возможности - кстати это еще одна возможность его просмотреть на предмет глюков.
2. Использование тулзы по приведению всего и вся, а потом расхлебывание каких-нибудь диких багов в вызове макрос, потому что она чего-то там не так пропарсила - извините нам этого не надо. Стиль это не нечто, что требуется применить любой ценой.
3. Речь идеть только о желательности использования неких договоренностей по стилю при добавлении нового кода. Например разномастное использования формата имен для функций/ классов/ типов/ макросов/ аргументов/ локальных-переменных/ полей (всмысле для каждого из перечисленного конкретно) сильно усложняет чтение кода. Тоже относится к отсупам и и т.д.

tempura 23.12.2010 09:40

[cinic mode][/cinic mode]


Текущее время: 11:52. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS