Difference between revisions of "Coding Style"

From NetXMS Wiki
Jump to navigation Jump to search
Line 3: Line 3:
1. Function names: each word in function name should start with capital letter. No underscores. For example: '''CreateNewUser'''. Underscores allowed in parameter handlers, which can start with '''H_''' prefix, like this: '''H_FreeDiskSpace'''.
1. Function names: each word in function name should start with capital letter. No underscores. For example: '''CreateNewUser'''. Underscores allowed in parameter handlers, which can start with '''H_''' prefix, like this: '''H_FreeDiskSpace'''.


2. Class names: each word in class name should start with capital letter. No underscores. For example: '''NetworkService'''.
2. Class names: each word in class name should start with capital letter. No underscores. For example: '''NetworkService'''. Consecutive capital letters should be avoided, i.e. use '''SnmpObject''' instead of '''SNMPObject'''.


3. Class methods: each word in methos name should start with capital letter, except first word. No underscores. For example: '''NetworkService::createService()'''.
3. Class methods: each word in method name should start with capital letter, except first word. No underscores. For example: '''NetworkService::createService()'''.


4. Class members: name must start with '''m_''' prefix, each word in member name should start with capital letter, except first word. No underscores. For example: '''NetworkService::m_serviceId'''.
4. Class members: name must start with '''m_''' prefix, each word in member name should start with capital letter, except first word. No underscores. For example: '''NetworkService::m_serviceId'''.
Line 60: Line 60:
| QWORD || instead of system's 64 bit unsigned integer
| QWORD || instead of system's 64 bit unsigned integer
|}
|}
= Coding style for Java =
1. Class names: each word in class name should start with capital letter. No underscores. For example: '''NetworkService'''. Consecutive capital letters should be avoided, i.e. use '''SnmpObject''' instead of '''SNMPObject'''.
2. Interfaces should '''not''' be prefixed with I character.
3. Class members (both methods and attributes): each word in member name should start with capital letter, except first word. No underscores. For example: '''NetworkService.serviceId'''. Consecutive capital letters should be avoided, i.e. use '''getSnmpPort''' instead of '''getSNMPPort'''.
4. Indentation offset: 3
5. Opening { should be placed on next line without indentation, like below:
<syntaxhighlight lang="java">
  if (a < b)
  {
      something();
  }
</syntaxhighlight>
6. Operators and operands should be separated by spaces, like below:
<syntaxhighlight lang="java">
  a = x + 20 / (y - z);
</syntaxhighlight>
7. Method arguments should be separated by spaces, like below:
<syntaxhighlight lang="java">
  z = method(p1, p2, p3);
</syntaxhighlight>
8. One-line comments should be placed with the same indentation level as code, like this:
<syntaxhighlight lang="java">
  c = xxx();
  if (a)
  {
      // comment
      func();
  }
</syntaxhighlight>
9. Brackets after for and while operators may or may not be separated by spaces (I prefer not to separate them).

Revision as of 16:53, 2 April 2012

Coding style for C and C++

1. Function names: each word in function name should start with capital letter. No underscores. For example: CreateNewUser. Underscores allowed in parameter handlers, which can start with H_ prefix, like this: H_FreeDiskSpace.

2. Class names: each word in class name should start with capital letter. No underscores. For example: NetworkService. Consecutive capital letters should be avoided, i.e. use SnmpObject instead of SNMPObject.

3. Class methods: each word in method name should start with capital letter, except first word. No underscores. For example: NetworkService::createService().

4. Class members: name must start with m_ prefix, each word in member name should start with capital letter, except first word. No underscores. For example: NetworkService::m_serviceId.

5. Indentation offset: 3

6. Opening { should be placed on next line without indentation, like below:

   if (a < b)
   {
      something();
   }

7. Operators and operands should be separated by spaces, like below:

   a = x + 20 / (y - z);

8. Function arguments should be separated by spaces, like below:

   z = function(p1, p2, p3);

9. One-line comments should be placed with the same indentation level as code, like this:

   c = xxx();
   if (a)
   {
      // comment
      func();
   }

10. Brackets after for and while operators may or may not be separated by spaces (I prefer not to separate them, but it's not a big problem IMHO).

11. For type cast type name must be enclosed in brackets, without spaces. For example: (DWORD)x.

12. It is recommended to use the dollowing typedefs as a replacement for some system data types:

WORD unsigned short (16 bit unsigned integer)
LONG instead of system's 32 signed integer
DWORD unsigned long (32 bit unsigned integer)
INT64 instead of system's 64 bit signed integer
QWORD instead of system's 64 bit unsigned integer


Coding style for Java

1. Class names: each word in class name should start with capital letter. No underscores. For example: NetworkService. Consecutive capital letters should be avoided, i.e. use SnmpObject instead of SNMPObject.

2. Interfaces should not be prefixed with I character.

3. Class members (both methods and attributes): each word in member name should start with capital letter, except first word. No underscores. For example: NetworkService.serviceId. Consecutive capital letters should be avoided, i.e. use getSnmpPort instead of getSNMPPort.

4. Indentation offset: 3

5. Opening { should be placed on next line without indentation, like below:

   if (a < b)
   {
      something();
   }

6. Operators and operands should be separated by spaces, like below:

   a = x + 20 / (y - z);

7. Method arguments should be separated by spaces, like below:

   z = method(p1, p2, p3);

8. One-line comments should be placed with the same indentation level as code, like this:

   c = xxx();
   if (a)
   {
      // comment
      func();
   }

9. Brackets after for and while operators may or may not be separated by spaces (I prefer not to separate them).