Wiki » History » Version 9

Version 8 (Krystian Heberlein, 07/26/2018 11:27 AM) → Version 9/15 (Krystian Heberlein, 07/26/2018 11:36 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, Myclass::func(aParam1, 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 overriden
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 formated string
* - enum class over enum
* - interface over wrappers and (ugh!) friends (yuck!)
* - using over typedef

*

**************************************************************************
-
static 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 braket 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

**************************************************************************