Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
private:codingstyle [2013/04/19 13:27]
Patrick Wacker weitere überarbeitung
private:codingstyle [2013/04/19 15:07] (aktuell)
Patrick Wacker dies und das
Zeile 9: Zeile 9:
  < tab!  < tab!
  
 +
 +====== Version 1 ======
 +short explanation
 +################################################################################​
  
 ====== Coding Style ====== ====== Coding Style ======
Zeile 40: Zeile 44:
  
  
 +
 +
 +
 +
 +====== Version 2 ======
 +mostly from: http://​techbase.kde.org/​Policies/​Kdelibs_Coding_Style
 +################################################################################​
 +
 +
 +===== Coding style =====
 +
 +This documents describes the coding style I prefer. Coding style is very
 +personal, and I won't force my views on anybody, but this is what goes for
 +anything that I have to be able to maintain, and I'd prefer it for most
 +other things too.
 +
 +Please at least consider the points made here.
 +
 +
 +==== Indentation ====
 +
 +  * use tabs for indentation
 +  * tabs are 8 characters, and thus indentations are also 8 characters.
 +
 +==== Variable declaration ====
 +
 +  * Each new word in a variable name starts with a capital letter\\ (so-called camelCase)
 +  * Avoid abbreviations
 +  * Take usefull names. No short names, except:
 +    * singe character variable names can denote counters and temporary\\ variables whose purpose is obvious
 +  * Variables and functions start with a lowercase letter
 +
 +==== Whitespace ====
 +
 +  * Use blank lines to group statements
 +  * Use only one empty line
 +  * Use one space after each keyword
 +  * For pointers or references, use a single space before '​*'​ or '&',​ but not after
 +  * No space after a cast
 +
 +==== Braces ====
 +
 +As a base rule, the left curly brace goes in the same line as the start of the statement.
 +
 +Example:
 + // wrong
 + if (true)
 + {
 + }
 +
 + // correct
 + if (true) {
 + }
 +
 +Exception: Function implemnetations,​ class, struct and namespace declarations always have the opening brace in the start of a line.
 +
 +Example:
 + void debug(int i)
 + {
 + qDebug("​foo:​ %i", i);
 + }
 +
 + class Debug
 + {
 + };
 +
 +
 +Do not unnecessarily use braces where a single statement will do.
 +
 + if (condition)
 + action();
 +
 +and
 +
 + if (condition)
 + do_this();​
 + else
 + do_that();​
 +
 +This does not apply if one branch of a conditional statement is a 
 +single statement. Use braces in both branches.
 +
 + if (condition) {
 + do_this();​
 + do_that();​
 + } else {
 + otherwise();​
 + }
 +
 +
 +==== Switch statements ====
 +
 +Case labels are on the same column as the switch
 +
 + switch (myEnum) {
 + case Value1:
 + doSomething();​
 + break;
 + case Value2:
 + doSomethingElse();​
 + /* fall through */
 + default:
 + defaultHandling();​
 + break;
 + }
 +
 +==== Line breaks ====
 +
 +Try to keep lines shorter than 80 characters, insert line breaks as necessary.
 +
 +Long strings are as well broken into shorter strings. The exception to this 
 +is where exceeding 80 columns significantly increases readability and does 
 +not hide information.
  
  
Zeile 45: Zeile 162:
  
  
 +====== Version 3 ======
 +mostly from linux kernel
 +################################################################################​
  
  
Zeile 304: Zeile 424:
  
  
 +====== Version 4 ======
 +original linux kernel
 +################################################################################​
  
  
Projektwerkzeuge