Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Прочая документация

Важная информация

Прочая документация Помощь, книги, инструкции, описания

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.12.2010, 21:50   #1
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию Стандарты написания кода в патчах

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

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

Если есть, то было бы замечательно выложить его в разделе написания патчей и продублировать сюда.
virusav вне форума   Ответить с цитированием
Старый 21.12.2010, 22:37   #2
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

https://github.com/mangos/mangos/wiki/CodingStandards
LordJZ вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
virusav (21.12.2010)
Старый 21.12.2010, 23:00   #3
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Особенно интересуют стандарты написания функций с параметрами, т.к. в ядре есть:
void Func ( uint32 a, uint32 b )
void Func (uint32 a, uint32 b)
void Func(uint32 a, uint32 b)
и различные модификации.
virusav вне форума   Ответить с цитированием
Старый 21.12.2010, 23:24   #4
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Цитата:
void Func(uint32 a, uint32 b)
Стараемся так НО VAssistX зараза предпочитает void Func( uint32 a, uint32 b )
Так что это тоже встречается если не отследили.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Старый 22.12.2010, 07:31   #5
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Это можно настроить.
zergtmn вне форума   Ответить с цитированием
Старый 22.12.2010, 07:35   #6
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

а по уже имеющемуся коду пакетной заменой пройти.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 22.12.2010, 08:56   #7
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

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

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

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

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

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

Последний раз редактировалось Йоха; 22.12.2010 в 09:04.
Йоха вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (22.12.2010)
Старый 22.12.2010, 09:16   #8
Sid
Ученый
 
Аватар для Sid
 
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
Sid Скоро придёт к известностиSid Скоро придёт к известности
По умолчанию

MaNGOS - это открытый проект, его код читают тысячи людей. Для этого существуют стандарты написания кода, чтобы угодить всем, и сделать код читаемым как книжку.
Sid вне форума   Ответить с цитированием
Старый 22.12.2010, 09:20   #9
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

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

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

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

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

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

Последний раз редактировалось Йоха; 22.12.2010 в 09:25.
Йоха вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (22.12.2010)
Старый 22.12.2010, 10:52   #10
PSZ
Ученый
 
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
PSZ Обладатель прекрасной аурыPSZ Обладатель прекрасной ауры
По умолчанию

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

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

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

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



По-моему золотые слова!
Борис, ты не прав. (с)
Если стиль кода стандартизирован, то и писать легче, и искать ошибки, и на психику положительно влияет .
PSZ вне форума   Ответить с цитированием
Старый 22.12.2010, 10:56   #11
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Стандарты придумали не идиоты и не просто так, поэтому надо писать в едином стиле.
virusav вне форума   Ответить с цитированием
Старый 22.12.2010, 14:28   #12
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

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

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

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

Так что мое личное мнение что 100%-ая гарантия единого стиля оформления кода во всем проекте - это обрабатывать все новые файлы автоматическим форматером.
Йоха вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (22.12.2010)
Старый 22.12.2010, 14:30   #13
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

P.S. теоретически я за стандарт в оформлении кода. Было бы забавно если бы компилятор выдавал ошибку если где-то стоит лишний пробел или фигурная скобка как-то не так стоит -)
Йоха вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (22.12.2010)
Старый 22.12.2010, 14:39   #14
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

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

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

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

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

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

а в европе вообще даже и этого не делают. всем срать похоже. мэинтанс этого кода конечно сложнее, но по факту ни разу не вызывал каких либо сложностей.
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (22.12.2010)
Старый 22.12.2010, 17:40   #15
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

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

Последний раз редактировалось Vladimir; 22.12.2010 в 17:43.
Vladimir вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
virusav (22.12.2010)
Старый 23.12.2010, 09:40   #16
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

[cinic mode][/cinic mode]
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
PSZ (24.12.2010)
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбор кода Спелов partizanes Прочая документация 7 24.01.2012 15:29
Помощь написания SQL запроса. NarkoHeal Новичкам 3 10.10.2010 02:31
Редактирование кода Klark Корзина 8 31.05.2010 10:39


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


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot