OSDU Java stack Standards
Change Type:
-
Feature -
Bugfix -
Refactoring
Context and Scope
Standardization has a positive impact for successful software development.
Java coding standards makes sure that all the developers working on the project are following certain specified guidelines.
This is especially critical for OSDU community, where many Java teams develop independently and contribute into the common codebase.
The code should be easily understood and proper consistency maintained.
Currently, Java coding standards are not defined in the community. It leads to the following issues:
- Poor code readability
- Difficult onboarding
- Same functionality redundancy
- Libraries and frameworks versioning mess
- Testing frameworks mess
- Security Concerns
- Performance Issues
- etc.
Decision
Define, adopt and enforce a single Java coding standard for the community. Improve code quality and maintainability.
Rational
Achieve the following advantages:
- Enhanced Efficiency - detect the problems early or even prevent them completely, increase efficiency throughout the software process.
- Reduced risk of project failure - IT projects fails happen due to problems while developing software.
- Decreased Complexity - coding standards help to develop less complex software and thereby reduce the errors.
- Simplified Maintenance - when code is consistent it can be easily maintained, cause anyone can easily understand and modify it.
- Bug Rectification - it becomes really easy to locate and correct bugs if the source code is written in a consistent manner.
- Comprehensive Look - a clear view of how code fits in the larger application or fits into the company as a whole.
- Cost-Efficiency - a clear code gives an opportunity to reuse it. This reduces the cost along with the efforts put in the development.
Consequences
The following definition of Java code Standard should be adopted and enforced:
[OSDU GCP Java Coding Standards]
All CSPs will need to:
- enforce and follow the adopted Java coding Standard in their Java teams;
- start contributing only compliant new Java code;
- refactoring existing Java code where possible;