Changeset 146 in pacpusframework for branches/2.0-beta1/CODING_STYLE.txt
- Timestamp:
- 07/31/13 11:20:11 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.0-beta1/CODING_STYLE.txt
r89 r146 1 Fo r the aspects not explained in this document, follow the coding style described in:2 http:// llvm.org/docs/CodingStandards.html1 Follow the coding style described in: 2 http://www.webkit.org/coding/coding-style.html 3 3 4 == #include Style == 5 * Avoid #includes in the header files. Use forward declarations if possible. 6 * Immediately after the header file comment (and include guards if working on a header file), the minimal list of #includes required by the file should be listed. We prefer these #includes to be listed in this order: 7 1) Main Module Header 8 2) Local/Private Headers 9 3) <Pacpus/...> 10 4) System #includes 11 * do not use 'using ...;' in header files 12 13 == Mechanical Source Issues == 14 * use standard header-guard: 15 #ifndef PACPUS_EXAMPLE_H 16 #define PACPUS_EXAMPLE_H 17 ... 18 #endif // PACPUS_EXAMPLE_H 19 * use C++-style comments (//) 20 * ALWAYS use curly brackets with statements if, for, etc. 21 * use curly brackets {} as follows: 22 * on the same line with: 23 - namespace { 24 - statements if, for, etc. 25 if (cond) { 26 } else if (cond2) { 27 } else { 28 } 29 * on the next line with: 30 - classes 31 - function and method definitions 32 - local scope blocks 33 class A 34 { 35 void fun A; 36 37 struct AB 38 { 39 }; 40 41 void fun A 42 { 43 } 44 }; 45 * write Doxygen-style comments as much as possible, put it in the header file if possible, add developer-only comments in source file 46 * use Java-style Doxygen comments, i.e. @returns over \returns 47 * use preprocessor directives for long-range comments (#if 0 .... #endif) 48 * indent with 4 spaces, do not use tabs 49 * do not indent namespaces 50 * use camelCaseNotation / CamelCaseNotation 51 * end namespace with its name in a comment 52 * start with a lowercase letter for local variables, namespaces, function names, method names, ... 53 * start with an Uppercase for classes, structs, ... 54 * prefix member variables with 'm' 55 * prefix (static) const variables with 'k' 56 * prefix static (non-const) variables with 's' 57 * separate member methods from member variables with a repetion of 'protected:' / 'private:' 58 59 ======================================== 60 Example.h: 61 ======================================== 62 /// File description 63 64 #ifndef PACPUS_EXAMPLE_H 65 #define PACPUS_EXAMPLE_H 66 67 #include "BaseClass.h" 68 69 namespace pacpus { 70 /// Constant description 71 static const double kConstA; 72 /// Static variable description 73 static int sStaticA; 74 75 /// Brief description of this class 76 /// 77 /// Somewhat longer description of this class 78 class SomeClass 79 : public BaseClass 80 { 81 public: 82 SomeClass 83 84 private: 85 void methodA(); 86 87 private: 88 int mMemberA; 89 }; 90 91 } // namespace pacpus 92 93 #endif // PACPUS_EXAMPLE_H 94 95 ======================================== 96 Example.cpp: 97 ======================================== 98 #include "Example.h" 99 100 #include "Something.h" 101 #include "SomethingElse.h" 102 103 #include <Pacpus/kernel/DbiteFile.h> 104 105 #include <iostream> 106 107 using namespace pacpus; 108 109 const double kConstA = 3.14159265; 110 111 SomeClass::SomeClass() 112 : BaseClass() 113 { 114 int someIntegerVariable; 4 If possible, use clang-format tool to format your code: 5 // in-place formatting 6 clang-format -i --style="WebKit" INPUT_FILE 115 7 116 if (a) { 117 a(); 118 } else { 119 b(); 120 } 121 122 if (isConditionSatisfied()) { 123 doSomething(); 124 return 0; 125 } 126 return 1; 127 } 8 // out-of-place formatting 9 clang-format --style="WebKit" INPUT_FILE > OUTPUT_FILE
Note:
See TracChangeset
for help on using the changeset viewer.