Document purpose :
The purpose of this document is to "standardize" slack-get development by
imposing a naming convention for both (but not only) : slack-get clients,
sg_daemon, all Perl modules and the C++ library.
This include of course, all plug-in which can be released in the futur.
Vocabulary :
In the future, we will refers to the slack-get naming convention as :
SGNC: for
Slack-
Get
Naming
Convention.
Additionally, we will refers to SGNC compliant code as
SGNCC (
SGNC Compliant).
Scope of the SGNC :
All the code released under the "slack-get development team" label must be SGNC
compliant (SGNCC).
More generally, all code released and packaged with slack-get must be (and will
be) SGNCC.
The SGNC apply to all API visible method names. Every methods in a class or
bundle must be SGNCC. By extension to this principle all methods in the
sg_daemon, slack-get and the upcoming slack-get GUI have to be SGNCC.
All script released and packaged with slack-get should be SGNCC too. But in
order to not slow down some developments it is acceptable to keep not SGNCC
code in the branch/ SVN tree. If released with slack-get, this code will be
optional at building and installation time. It will also be released in a
different package.
Rules of SGNC :
We refer to functions and methods as the same generic term of "method".
The SGNC consist in the following 3 simple programing rules :
- a method name consist of lower case, English words where space are replaced
with underscores ;
- if the method name is conflicting with Perl or C++ built-in function or
language syntax, change the case of the first letter to upper case.
- if a conflict was solved according to rule 2), and if the name conflicts
with only one of the supported languages (Perl and C++), add a wrapper method
around the renamed one, in order to comply with the rule 1).
The slack-get development team