Programming Conventions

From KratosWiki
(Difference between revisions)
Jump to: navigation, search
Line 49: Line 49:
  
 
== Local Variables ==
 
== Local Variables ==
 +
 +
== Good Hints in programming ==
 +
* avoid using raw pointers and C-arrays! C-arrays are EVIL!
 +
* do not use the structure new/delete or even worst malloc/free. Do memory management via Boost::shared_ptr!
 +
* do not reimplement linear algebra! use ublas instead!
 +
* Use the Kratos data structures as much as possible! They will simplify your life!
 +
* Use the const attribute as much as you can ... it will simplify many errors!
 +
 +
  
  
  
 
[[Category: References]]
 
[[Category: References]]

Revision as of 06:18, 12 July 2010

Imposing a standard usually is restrictive and annoying. But having a coding convention can help in understanding better and faster the code written by a team or even by only one programmer. The coding convection used in Kratos are described briefly in following sections.


Contents

Classes

Class names must be in lower case except the first letter of each word in upper case as separator. For example:

 class MyClassNameExample

Try to describe the type of the class with its name. Some typical cases are:

  • Elements name must be finished with Element word:
 class MyShellElement
  • Conditions name must be finished with Condition word:
 class My2DLoadCondition
  • Linear solvers name must be finished with Solver word:
 class GmresSolver
  • Application classes must be started Kratos and finished with Application :
 class KratosStructuralApplication

It can be seen that in all cases only the first letter of each word is in capital. It's important to mention that there is NO initial letter (like "C") to distinguish a class.


Class Members

Class members are in lower case with first letter of each word in capital starting with following prefixes:

  • lower case m to indicate that they are member variables:
   int mNumberOfElements;
  • lower case mp to indicate that they are member pointers:
   Node::Point mpFirstNode;
  • lower case mr to indicate that they are member references:
   Matrix& mrLocalMatrix;

Class Methods

Macros

Macros in Kratos are all uppercase with underline "_" as seperator and always starting with KRATOS_ as prefix:

 #define KRATOS_AN_EXAMPLE_OF_MACRO

Arguments

Local Variables

Good Hints in programming

  • avoid using raw pointers and C-arrays! C-arrays are EVIL!
  • do not use the structure new/delete or even worst malloc/free. Do memory management via Boost::shared_ptr!
  • do not reimplement linear algebra! use ublas instead!
  • Use the Kratos data structures as much as possible! They will simplify your life!
  • Use the const attribute as much as you can ... it will simplify many errors!
Personal tools
Categories