📝 docs(_update): update docs

This commit is contained in:
Eshan Roy
2024-12-05 21:13:42 +05:30
parent c7aae4f13a
commit 8ab68e11b1
5 changed files with 215 additions and 110 deletions

View File

@@ -3,71 +3,156 @@ sidebar_position: 8
---
# Coding Standard
1. **Consistent Naming Conventions**:
- Use meaningful names for variables, functions, classes, etc.
- Follow a consistent naming convention (camelCase, PascalCase, snake_case, etc.) throughout the codebase.
### ✨ **Coding Standards for Snigdha OS Development**
2. **Indentation and Formatting**:
- Use consistent indentation (usually 2 or 4 spaces) to improve code readability.
- Follow a consistent code formatting style.
- Avoid unnecessary whitespace or overly long lines.
To ensure that Snigdha OS maintains a high-quality codebase, its essential to follow these coding standards. These guidelines promote readability, maintainability, and collaboration while ensuring the code remains efficient and secure. 🚀
3. **Comments**:
- Include comments to explain complex algorithms, business logic, or any tricky parts of the code.
- Comments should be clear, concise, and kept up-to-date with the code changes.
---
4. **Modularity and Code Reusability**:
- Break down code into smaller, reusable functions or modules.
- Encapsulate related functionality into classes or modules.
### 1⃣ **Consistent Naming Conventions**
✅ Use meaningful and descriptive names for variables, functions, and classes.
✅ Stick to a consistent naming convention across the codebase:
- **camelCase** for variables and functions.
- **PascalCase** for classes and constructors.
- **snake_case** for constants and configuration keys.
5. **Error Handling**:
- Implement proper error handling mechanisms.
- Use try-catch blocks (or equivalent) to handle exceptions gracefully.
---
6. **Code Readability**:
- Write code that is easy to read and understand.
- Avoid overly complex or convoluted code structures.
- Use descriptive variable and function names.
### 2⃣ **Indentation and Formatting**
✅ Use consistent indentation (2 or 4 spaces preferred). Avoid using tabs.
✅ Follow a consistent formatting style (e.g., braces alignment, spacing).
✅ Limit line length to 80-100 characters for better readability.
✅ Remove unnecessary whitespaces and trailing spaces.
7. **Consistent Code Style**:
- Follow a consistent coding style guide for the chosen programming language.
- Adhere to any industry-standard coding conventions or best practices.
---
8. **Documentation**:
- Provide clear documentation for functions, classes, modules, and APIs.
- Document function parameters, return values, and any side effects.
### 3⃣ **Comments**
✅ Add comments to explain complex logic, algorithms, or unusual decisions.
✅ Keep comments concise, relevant, and synchronized with code changes.
✅ Avoid obvious comments like `// Incrementing i by 1`.
9. **Testing**:
- Write unit tests for critical functionality.
- Automate testing where possible.
- Aim for high code coverage.
```javascript
// Good Example:
function calculateTax(income) {
// Calculates tax based on progressive slabs.
...
}
```
10. **Version Control**:
- Use version control systems (e.g., Git) effectively.
- Follow best practices for branching, merging, and commit messages.
---
11. **Performance Considerations**:
- Write efficient code, considering both time and space complexity.
- Avoid unnecessary loops, nested loops, or expensive operations.
### 4⃣ **Modularity and Code Reusability**
✅ Break down code into small, reusable functions or modules.
✅ Group related functionalities into classes or namespaces for better organization.
12. **Security**:
- Follow security best practices to prevent vulnerabilities such as injection attacks, XSS, CSRF, etc.
- Sanitize user inputs and use parameterized queries to prevent SQL injection.
---
13. **Dependencies and Third-party Libraries**:
- Minimize dependencies and only include necessary libraries.
- Keep dependencies up-to-date to ensure compatibility and security.
### 5⃣ **Error Handling**
✅ Use proper error-handling mechanisms like `try-catch` blocks or error codes.
✅ Avoid exposing internal logic in error messages.
14. **Internationalization and Localization**:
- Design code with internationalization (i18n) and localization (l10n) in mind.
- Externalize strings and user-facing messages for easy translation.
```python
try:
result = perform_operation()
except ValueError as e:
print("Invalid input. Please try again.") # Avoid exposing "ValueError: details"
```
15. **Accessibility**:
- Ensure that your code is accessible to users with disabilities.
- Follow accessibility guidelines and standards (e.g., WCAG) where applicable.
---
16. **Concurrency and Thread Safety**:
- Write thread-safe code when dealing with concurrent operations.
- Use synchronization mechanisms to prevent race conditions and deadlocks.
### 6⃣ **Code Readability**
✅ Write simple and clear code. Avoid unnecessary complexity.
✅ Use descriptive variable and function names instead of single-letter identifiers.
✅ Favor clarity over cleverness.
These coding standards provide a solid foundation for writing clean, maintainable, and efficient code across different programming languages and paradigms. However, it's essential to adapt and extend these standards based on the specific requirements and characteristics of your project or organization.
---
### 7⃣ **Consistent Code Style**
✅ Follow the style guide for the programming language used (e.g., PEP 8 for Python, ESLint for JavaScript).
✅ Adopt consistent practices for spacing, indentation, and braces placement.
---
### 8⃣ **Documentation**
✅ Document every function, class, and module with clear descriptions.
✅ Include parameter details, return values, and potential exceptions in documentation.
```python
def calculate_area(radius):
"""
Calculates the area of a circle.
Args:
radius (float): The radius of the circle.
Returns:
float: The area of the circle.
"""
return 3.14 * radius ** 2
```
---
### 9⃣ **Testing**
✅ Write unit tests for all critical functionality.
✅ Aim for at least 80% code coverage.
✅ Automate tests where possible with frameworks like `pytest`, `Jest`, or `JUnit`.
---
### 🔟 **Version Control**
✅ Use Git for version control. Follow branching strategies like **Git Flow**.
✅ Write clear, descriptive commit messages in the [Conventional Commits](https://www.conventionalcommits.org) format:
```
feat: add feature for user authentication
fix: resolve bug in payment gateway integration
docs: update README with installation steps
```
---
### 1⃣1⃣ **Performance Considerations**
✅ Write efficient algorithms with optimal time and space complexity.
✅ Avoid unnecessary loops, nested loops, or redundant operations.
✅ Use lazy loading or caching for heavy computations or data fetching.
---
### 1⃣2⃣ **Security**
✅ Sanitize and validate all user inputs.
✅ Use parameterized queries for database operations to avoid SQL injection.
✅ Regularly audit code for vulnerabilities like XSS, CSRF, or buffer overflows.
---
### 1⃣3⃣ **Dependencies and Third-party Libraries**
✅ Use only necessary and trusted libraries.
✅ Keep dependencies updated to ensure compatibility and fix vulnerabilities.
---
### 1⃣4⃣ **Internationalization (i18n) and Localization (l10n)**
✅ Design code to support multiple languages and locales.
✅ Externalize strings into resource files for easy translation.
---
### 1⃣5⃣ **Accessibility**
✅ Ensure UI components follow accessibility standards (e.g., WCAG).
✅ Provide alternative text for images and ensure keyboard navigation.
---
### 1⃣6⃣ **Concurrency and Thread Safety**
✅ For concurrent operations, write thread-safe code to avoid race conditions.
✅ Use synchronization mechanisms like locks or semaphores.
---
### 🔑 **Key Principles**
1**Readability**: Write code as if the next person maintaining it is you in six months.
2**Modularity**: Make changes easier by keeping code decoupled and modular.
3**Consistency**: Adopt a uniform style to avoid confusion and ensure maintainability.
Following these standards will not only improve code quality but also foster a collaborative and professional environment. Happy coding! 🎉👩‍💻👨‍💻