vDC Wiki¶
Definition of Done - vDC¶
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
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
Definition of Done - vDC UI¶
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
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
Code review checklist¶
- block formatting as follows:
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... }
- class declaration:
- class member initializations in class declaration if possible
- no 'using namespace' in header
- two lines separation between method definitions in source file
/* ========================================================================== 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 };
- (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; // 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
Usefull things¶
Increase log level of vdc¶
VDC_DSUID should be replaced by vdc dsuid. This command can be executed from local UI.
dS.utils.ajaxRequest('/json/circuit/invokeMethod', { method: 'loglevel', dsuid: "VDC_DSUID", params: JSON.stringify({ value: 7 }) });