Перенесено на http://wiki.etersoft.ru/CodingStyle
Требования к стилю разработки в Etersoft
Общий подход
- нельзя вписывать конструкции «на всякий случай», не понимая, что происходит
- нельзя оставлять «на потом» форматирование и комментарии
Работа со строками
- не вписывать конструкции вида textbuf[len]=0 на всякий случай
- если известен размер копируемой строки, лучше использовать memcpy
- не рекомендуется использовать strcat и strcpy (нужен контроль границ)
Работа с константами
- в коде не должно быть числовых констант, обозначающих символы (if (buf[i]==63)
- минимум использования числовых констант в явном виде (типа j += 25)
Форматирование кода, стиль, стандарт
- код должен быть отформатирован
- код должен быть написан в стиле, принятом для соответствующего языка
- программа должна компилироваться с помощью mingw без выдачи предупреждений
- программа должна состоять из модулей (логически завершённых блоков), разнесённых по файлам
- временно отключаемые участки кода можно выключать через if (0) или #if 0
Запись логических выражений
- конструкции вида if (a !=0 ) должны выглядеть как if (a)
- конструкции вида if (strcmp(...)==0) должны выглядеть как if (!strcmp())
Типы данных и память
- выделять память нужно с помощью принятых для этого в данном языке и среде функций, в едином стиле
- преобразования типов должны быть минимизированы и применяться по осознанной необходимости
- выделенную память надо освобождать
- параметры функции и сама функция как член класса должны иметь модификатор const, если возможно
- используйте define с осторожностью, определяя типы и константы с простыми названиями (типа BOOL и TRUE), легко натолкнуться на конфликт
Пути к файлам
- программа не должна содержать прямых путей к файлам (переносимость!)
- для разделителя путей надо применять специальную константу
Совместная работа и релизы
- для каждой протестированной или выпускаемой сборки должен быть установлен tag в GIT
- запрещается копировать файлы с исходным кодом между разработчиками. Используйте GIT.
- для возможно большего числа функций в программе должны быть написаны тесты
- по каждому релизу должна быть сохранена бинарная сборка
Ссылки
Ссылок на эту страницу нет