Talk:03 Coding Standards & Guidelines: Difference between revisions
Appearance
No edit summary |
|||
| Line 1: | Line 1: | ||
== 1 Purpose == | == 1. Purpose == | ||
This document defines the coding standards and guidelines to ensure consistency, readability, maintainability, and quality across all software development projects within the organization. | This document defines the coding standards and guidelines to ensure consistency, readability, maintainability, and quality across all software development projects within the organization. | ||
== 2 Scope == | == 2. Scope == | ||
These standards apply to all developers, contractors, and third parties who contribute to software development for Hein Fricke. | These standards apply to all developers, contractors, and third parties who contribute to software development for Hein Fricke. | ||
== 3 General Principles == | == 3. General Principles == | ||
* Code must be clean, consistent, and self-explanatory. | * Code must be clean, consistent, and self-explanatory. | ||
| Line 13: | Line 13: | ||
* Ensure cross-platform and cross-browser compatibility where applicable. | * Ensure cross-platform and cross-browser compatibility where applicable. | ||
== 4 Coding Conventions == | == 4. Coding Conventions == | ||
=== Naming Conventions === | === 4.1 Naming Conventions === | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
| Line 43: | Line 43: | ||
|} | |} | ||
=== Indentation and Spacing === | === 4.2 Indentation and Spacing === | ||
* Use 4 spaces per indentation level (no tabs). | * Use 4 spaces per indentation level (no tabs). | ||
| Line 49: | Line 49: | ||
* Leave a blank line between method definitions. | * Leave a blank line between method definitions. | ||
=== Line Length === | === 4.3 Line Length === | ||
* Maximum of 120 characters per line. | * Maximum of 120 characters per line. | ||
=== File Structure === | === 4.4 File Structure === | ||
* One class/component per file. | * One class/component per file. | ||
| Line 59: | Line 59: | ||
* Group logically related functions and classes. | * Group logically related functions and classes. | ||
== 5 Language-Specific Standards == | == 5. Language-Specific Standards == | ||
=== JavaScript/TypeScript === | === 5.1 JavaScript/TypeScript === | ||
* Use `const` and `let`, avoid `var`. | * Use `const` and `let`, avoid `var`. | ||
| Line 68: | Line 68: | ||
* Use ES6+ syntax. | * Use ES6+ syntax. | ||
=== Python === | === 5.2 Python === | ||
* Follow PEP8 standards. | * Follow PEP8 standards. | ||
| Line 74: | Line 74: | ||
* Document functions with docstrings. | * Document functions with docstrings. | ||
=== Java === | === 5.3 Java === | ||
* Follow Oracle Java Code Conventions. | * Follow Oracle Java Code Conventions. | ||
| Line 80: | Line 80: | ||
* Use appropriate access modifiers. | * Use appropriate access modifiers. | ||
=== HTML/CSS === | === 5.4 HTML/CSS === | ||
* Use semantic HTML tags. | * Use semantic HTML tags. | ||
| Line 86: | Line 86: | ||
* Use BEM naming for CSS classes. | * Use BEM naming for CSS classes. | ||
== 6 Version Control == | == 6. Version Control == | ||
Commit messages should be clear and follow the format: | * Use Git for source control. | ||
* Commit messages should be clear and follow the format: | |||
<type>: <short description> | <blockquote><type>: <short description> | ||
[optional body] | [optional body] | ||
[optional footer] | [optional footer] </blockquote> | ||
Common commit types: feat, fix, docs, style, refactor, test, chore. | * Common commit types: feat, fix, docs, style, refactor, test, chore. | ||
== 7 Code Review == | == 7. Code Review == | ||
* All code must be reviewed via pull requests. | * All code must be reviewed via pull requests. | ||
| Line 109: | Line 109: | ||
** Security and performance issues | ** Security and performance issues | ||
== 8 Testing == | == 8. Testing == | ||
* Write unit tests for all functions/methods. | * Write unit tests for all functions/methods. | ||
| Line 118: | Line 118: | ||
For more details refer document JUnit_Test_Cases_Document.docx | For more details refer document JUnit_Test_Cases_Document.docx | ||
== 9 Documentation == | == 9. Documentation == | ||
* All public APIs, classes, and modules must be documented. | * All public APIs, classes, and modules must be documented. | ||
| Line 127: | Line 127: | ||
** Usage examples | ** Usage examples | ||
== 10 Security Practices == | == 10. Security Practices == | ||
* Validate all user input. | * Validate all user input. | ||
Revision as of 11:22, 22 December 2025
1. Purpose
This document defines the coding standards and guidelines to ensure consistency, readability, maintainability, and quality across all software development projects within the organization.
2. Scope
These standards apply to all developers, contractors, and third parties who contribute to software development for Hein Fricke.
3. General Principles
- Code must be clean, consistent, and self-explanatory.
- Follow the DRY (Don't Repeat Yourself) principle.
- Optimize for readability over cleverness.
- Include meaningful comments where necessary.
- Ensure cross-platform and cross-browser compatibility where applicable.
4. Coding Conventions
4.1 Naming Conventions
| Element | Convention | Example |
|---|---|---|
| Classes | PascalCase | EmployeeManager |
| Functions/Methods | camelCase | calculateSalary() |
| Variable | camelCase | employeeName |
| Constants | UPPER_CASE_SNAKE_CASE | MAX_RETRIES |
| Files | kebab-case or snake_case | employee-manager.js |
4.2 Indentation and Spacing
- Use 4 spaces per indentation level (no tabs).
- Place opening braces on the same line.
- Leave a blank line between method definitions.
4.3 Line Length
- Maximum of 120 characters per line.
4.4 File Structure
- One class/component per file.
- Keep imports at the top.
- Group logically related functions and classes.
5. Language-Specific Standards
5.1 JavaScript/TypeScript
- Use `const` and `let`, avoid `var`.
- Prefer arrow functions.
- Use strict equality (===).
- Use ES6+ syntax.
5.2 Python
- Follow PEP8 standards.
- Use type hints for function signatures.
- Document functions with docstrings.
5.3 Java
- Follow Oracle Java Code Conventions.
- Use JavaDocs for documentation.
- Use appropriate access modifiers.
5.4 HTML/CSS
- Use semantic HTML tags.
- Use external stylesheets.
- Use BEM naming for CSS classes.
6. Version Control
- Use Git for source control.
- Commit messages should be clear and follow the format:
<type>: <short description>
[optional body]
[optional footer]
- Common commit types: feat, fix, docs, style, refactor, test, chore.
7. Code Review
- All code must be reviewed via pull requests.
- At least one peer reviewer is required before merging.
- Reviewers should check for:
- Adherence to coding standards
- Readability and clarity
- Test coverage and documentation
- Security and performance issues
8. Testing
- Write unit tests for all functions/methods.
- Maintain at least 80% code coverage.
- Include integration and end-to-end tests where applicable.
- Use automated CI pipelines for running tests.
For more details refer document JUnit_Test_Cases_Document.docx
9. Documentation
- All public APIs, classes, and modules must be documented.
- Use tools like JSDoc, Sphinx, or Swagger as appropriate.
- Maintain a project README.md with:
- Project purpose
- Setup instructions
- Usage examples
10. Security Practices
- Validate all user input.
- Use parameterized queries to prevent SQL injection.
- Never store passwords in plain text.
- Sanitize data before rendering on the UI.
11. Compliance & Enforcement
- All developers must acknowledge this document.
- Non-compliance may result in code rejection or disciplinary action.
- Regular audits will be conducted.
12. References
- PEP8 - Python Style Guide: https://peps.python.org/pep-0008/
- Google Java Style Guide: https://google.github.io/styleguide/javaguide.html
- Airbnb JavaScript Style Guide: https://github.com/airbnb/javascript