Difference between revisions of "Coding Style"
m (Text replacement - "^" to "{{deprecated}}") |
|||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
= Coding style for C and C++ = | {{deprecated}}= 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'''. | 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'''. | ||
Line 47: | Line 47: | ||
11. For type cast type name must be enclosed in brackets, without spaces. For example: '''(DWORD)x'''. | 11. For type cast type name must be enclosed in brackets, without spaces. For example: '''(DWORD)x'''. | ||
12. It is recommended to use the | 12. It is recommended to use the following typedefs as a replacement for certain system data types: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
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 = | = Coding style for Java = |
Latest revision as of 18:13, 13 September 2022
This Wiki is deprecated and we are are currrently migrating remaining pages into product documentation (Admin Guide, NXSL Guide) |
= 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 following typedefs as a replacement for certain 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();
}
the only exception is anonymous inner class definition, like below:
menuMgr.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager mgr)
{
fillContextMenu(mgr);
}
});
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).