Я думаю, що насправді слід вирішити дві речі, і я насправді розглядаю їх окремо, тому що до них не можна підійти однаково, хоча я вважаю, що обидва важливі.
- Технічний аспект: спрямований на те, щоб уникнути ризикованого або неправильно сформованого коду (навіть якщо він прийнятий компілятором / перекладачем)
- Аспект презентації: який стосується того, щоб програма стала зрозумілою для читачів
Технічний аспект я кваліфікую за стандартом кодування , як і Герб Саттер та Андрій Олександреску з ними стандартами кодування C ++ . У презентації я кваліфікуюсь із стилю кодування , який включає умовні позначення, відступ тощо ...
Стандарт кодування
Оскільки він є суто технічним, Стандарт кодування може бути переважно об'єктивним. Як таке, кожне правило повинно підтримуватися причиною. У книзі, про яку я згадував кожен предмет, є:
- Заголовок, простий і суттєвий
- Підсумок, який пояснює назву
- Дискусія, яка ілюструє питання про те, як діяти інакше, і, таким чином, формулює обґрунтування
- необов'язково Деякі приклади, тому що хороший приклад вартує тисячі слів
- необов'язково Перелік винятків, до яких це правило не може бути застосовано, іноді з робочим колом
- Список посилань (інші книги, веб-сайти), які обговорювали цю тему
Обґрунтування та винятки дуже важливі, оскільки вони узагальнюють, чому і коли.
Заголовок має бути чітким, що під час оглядів потрібно мати лише список заголовків (шпаргалка), з якими можна працювати. І очевидно, групуйте елементи за категоріями, щоб легше було доглядати за одним.
Саттеру та Олександреску вдалося скласти список із лише сотні предметів, хоча C ++ вважається волохатим;)
Стиль кодування
Ця частина, як правило, менш об'єктивна (і може бути прямо суб'єктивною). Наміром тут є гарантувати послідовність, оскільки це допомагає обслуговуючим особам та новим бажаючим.
Ви не хочете входити у священну війну щодо того, який тип відступу чи дужки краще тут, є форуми для цього: тож у цій категорії ви робите речі консенсусом> голосування більшості> довільне рішення лідера.
Для прикладу форматування дивіться список варіантів художнього стилю . В ідеалі правила повинні бути чіткими та досконалими, щоб програма могла переписати код (хоча навряд чи ви коли-небудь кодуєте його);)
Для умови іменування я б спробував зробити клас / типи легко відрізнити від змінних / атрибутів.
Також до цієї категорії я класифікую такі "заходи", як:
- віддайте перевагу коротким і довгим методам: зазвичай важко домовитися про те, що таке довго
- віддайте перевагу ранньому поверненню / продовженню / перерві для зменшення відступу
Різне?
І, як остаточне слово, є один пункт, який рідко, якщо взагалі, обговорюється в Стандартах кодування, можливо, тому що це особливе для кожної програми: організація коду. Архітектурне питання, мабуть, найвидатніший випуск, задумайте над початковим дизайном, і ви будете мучитися ним через роки. Вам, можливо, слід додати розділ для основної обробки файлів: державні / приватні заголовки, управління залежностями, розділення проблем, взаємодія з іншими системами або бібліотеками ...
Але це нічого, якщо їх фактично не застосовують і не застосовують .
Будь-яке порушення повинно бути порушено під час перегляду коду, і жодне перегляд коду не повинно бути нормальним, якщо порушення виявлено:
- виправити код відповідно до правила
- виправте правило, щоб код більше не виділявся
Очевидно, що зміна правила означає отримати «йти вперед» від лідерів.