Difference between revisions of "Coding standards"
Jump to navigation
Jump to search
(4 intermediate revisions by the same user not shown) | |||
Line 47: | Line 47: | ||
General rules | General rules | ||
* Starts uppercase | * Starts uppercase | ||
* Foreign keys ends with ID ( | * Next word in name starts with uppercase (eg ThisIsAnExample) | ||
* Foreign keys ends with ID (eg UserID) | |||
Changelog attributes fixed names | Changelog attributes fixed names | ||
Line 54: | Line 55: | ||
* ModifiedAt | * ModifiedAt | ||
* ModifiedBy | * ModifiedBy | ||
* FinalizedAt | |||
* FinalizedBy | |||
== Compliance standards == | == Compliance standards == | ||
Line 78: | Line 81: | ||
* Creation of OR changes to | * Creation of OR changes to | ||
** Servlets | ** Servlets | ||
** Servlet Filters | |||
** CodeunitPagePublic | ** CodeunitPagePublic | ||
** Code containing SQL | ** Code containing SQL | ||
* Any code that | |||
** Deletes DB columns OR tables |
Latest revision as of 13:34, 2 October 2024
Naming standards
Code naming standards
Package / naming placement
- Package name all lowercase
- General platform entities
- Servlets: com.tsnocode.server.servlet
- Filters: com.tsnocode.server.filter
- Core: com.tsnocode.ui
- Fields: com.tsnocode.ui.field.<group>
- Views: com.tsnocode.ui.views.<type> (item,list,statistics,)
- Codeunit: com.tsnocode.codeunit.common
- Solution specific code
- TS customer app:
- com.tsnocode.solution.app
- com.tsnocode.solution.customer
- com.tsnocode.solution.customer.app
- Vendor app:
- com.vendor.tsnocode.app
- com.vendor.solution.app
- TS customer app:
Class naming
Naming convention follows Java standard
- Starting with uppercase
- No special characters
- Seperate words with uppercase
In addition the following are recommended
- CodeunitPage post fix name "Page"
- CodeunitService post fix name "Service"
- Shared ressources include "Helper"
Database naming standards
Table naming
System tables should follow this syntax
- lowercase
- no special characters
Reserved prefixes include
- data_
- _data_ (deleted tables)
Table attribute naming
General rules
- Starts uppercase
- Next word in name starts with uppercase (eg ThisIsAnExample)
- Foreign keys ends with ID (eg UserID)
Changelog attributes fixed names
- CreatedAt
- CreatedBy
- ModifiedAt
- ModifiedBy
- FinalizedAt
- FinalizedBy
Compliance standards
The platform must be able to run on
- Current versions of Java
- Current versions of Tomcat
- MySQL and MariaDB
- Do not use current_timestamp (property)
Safety standards
- Input sanitization used in SQL, using either
- Escape all string parameters using DbConnection.EscapeSQL
- Prepared statements
- All Page codeunits should contain some user group restrictions, and set to be default off
Review standards
The following changes requires a formal code review
- Changes to the API
- Changes to common objects
- Command
- Security
- Controller
- DbConnection
- Creation of OR changes to
- Servlets
- Servlet Filters
- CodeunitPagePublic
- Code containing SQL
- Any code that
- Deletes DB columns OR tables