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