Wiki » History » Version 11
Version 10 (Krystian Heberlein, 07/26/2018 11:39 AM) → Version 11/15 (Krystian Heberlein, 07/26/2018 11:40 AM)
h1. vDC Wiki
h2. Definition of Done - vDC
h3. Feature and task
# MR added to comment
# No new defects in cppcheck and Coverity
# No new defects in Unit tests
# Unit test added (if possible)
# Developer test done (dev feed) - by other engineer that was implementing
# Spent hours are filled in
h3. Defect
# MR added to comment
# Comment added - cause and solution
# No new defects in Cppcheck and Coverity
# No new defects in Unit tests
# Unit test added (if possible)
# Developer test done (dev feed, different browsers) - by other engineer that was implementing
# Spent hours are filled in
h2. Definition of Done - vDC UI
h3. Feature and task
# MR added to comment
# No new defects in Linting
# No new defects in Unit tests
# Unit test added (if reasonable)
# Developer test done (dev feed) - by other engineer that was implementing
# Spent hours are filled in
h3. Defect
# MR added to comment
# Comment added - cause and solution
# No new defects in Linting
# No new defects in Unit tests
# Unit test added (if reasonable)
# Developer test done (dev feed, different browsers) - by other engineer that was implementing
# Spent hours are filled in
h2. Code review checklist
- block formatting as follows:
<pre>
if () ; // one line in the same line is allowed
if ((wa1) && (wa2)) {
} else if () {
}
for (i; i < 0; ++i) { // other loops in the same form
}
switch () {
case 1: //brackets if needed, one line is acceptable
case 2:
default: //required
}
void Myclass::func(const string& aParam1, int aParam2, auto... aParams)
{
//using aParams...
}
</pre>
- class declaration:
* class member initializations in class declaration if possible
* no 'using namespace' in header
* two lines separation between method definitions in source file
<pre>
/*
==========================================================================
Class name // separator to be used in header and source file
==========================================================================
*/
class A // or struct {
using inherited
public:
ctor // one line definition is allowed in header
dtor // one line definition is allowed in header
overridden
enum class EE; // declaration, but definition out of class
methods // one line definition is allowed in header
protected:
overriden
methods
private:
overriden
methods
protected:
static const
class members
private:
static const
class members
};
enum class A::EE {
A, // camel case
};
</pre>
* (static) constexpr over static const
* std over boost
* unique over shared
* #pragma once over ifdef
* reference over pointers
* raw string literals over special signs
* streams over formatted string
* enum class over enum
* interface over wrappers and (ugh!) friends (yuck!)
* using over typedef
* use vdc-utils
* static const SOME_CONST; AAA; // all caps
* class MyClass // starts with a capital letter + camel case
* method, function void myFunction() // starts with a small letter + camel case
* function args void myFunction(string aParam) // starts wit small 'a' + camel case
* namespace block without indentation
* ifdef without indentation
* comment on closing bracket for namespace or #endif
* multiline comment block if comment is multiline
* interface class with 'I' prefix // IMyInterface
* class member with 'm' prefix // mMyClassMember
* pointer with 'Ptr' suffix // mMyClassMemberPtr / myPointerInMethodPtr / aMyPointerParamPtr
h2. Definition of Done - vDC
h3. Feature and task
# MR added to comment
# No new defects in cppcheck and Coverity
# No new defects in Unit tests
# Unit test added (if possible)
# Developer test done (dev feed) - by other engineer that was implementing
# Spent hours are filled in
h3. Defect
# MR added to comment
# Comment added - cause and solution
# No new defects in Cppcheck and Coverity
# No new defects in Unit tests
# Unit test added (if possible)
# Developer test done (dev feed, different browsers) - by other engineer that was implementing
# Spent hours are filled in
h2. Definition of Done - vDC UI
h3. Feature and task
# MR added to comment
# No new defects in Linting
# No new defects in Unit tests
# Unit test added (if reasonable)
# Developer test done (dev feed) - by other engineer that was implementing
# Spent hours are filled in
h3. Defect
# MR added to comment
# Comment added - cause and solution
# No new defects in Linting
# No new defects in Unit tests
# Unit test added (if reasonable)
# Developer test done (dev feed, different browsers) - by other engineer that was implementing
# Spent hours are filled in
h2. Code review checklist
- block formatting as follows:
<pre>
if () ; // one line in the same line is allowed
if ((wa1) && (wa2)) {
} else if () {
}
for (i; i < 0; ++i) { // other loops in the same form
}
switch () {
case 1: //brackets if needed, one line is acceptable
case 2:
default: //required
}
void Myclass::func(const string& aParam1, int aParam2, auto... aParams)
{
//using aParams...
}
</pre>
- class declaration:
* class member initializations in class declaration if possible
* no 'using namespace' in header
* two lines separation between method definitions in source file
<pre>
/*
==========================================================================
Class name // separator to be used in header and source file
==========================================================================
*/
class A // or struct {
using inherited
public:
ctor // one line definition is allowed in header
dtor // one line definition is allowed in header
overridden
enum class EE; // declaration, but definition out of class
methods // one line definition is allowed in header
protected:
overriden
methods
private:
overriden
methods
protected:
static const
class members
private:
static const
class members
};
enum class A::EE {
A, // camel case
};
</pre>
* (static) constexpr over static const
* std over boost
* unique over shared
* #pragma once over ifdef
* reference over pointers
* raw string literals over special signs
* streams over formatted string
* enum class over enum
* interface over wrappers and (ugh!) friends (yuck!)
* using over typedef
* use vdc-utils
* static const SOME_CONST; AAA; // all caps
* class MyClass // starts with a capital letter + camel case
* method, function void myFunction() // starts with a small letter + camel case
* function args void myFunction(string aParam) // starts wit small 'a' + camel case
* namespace block without indentation
* ifdef without indentation
* comment on closing bracket for namespace or #endif
* multiline comment block if comment is multiline
* interface class with 'I' prefix // IMyInterface
* class member with 'm' prefix // mMyClassMember
* pointer with 'Ptr' suffix // mMyClassMemberPtr / myPointerInMethodPtr / aMyPointerParamPtr