This repository contains the official development conventions, standards, and guidelines for all Bayat projects. Following these standards ensures consistency, quality, and efficiency across all teams and project types.
The purpose of these conventions is to:
- Ensure Consistency: Maintain uniform practices across all projects
- Improve Quality: Follow industry best practices and proven patterns
- Increase Efficiency: Reduce decision fatigue and standardize workflows
- Enable Collaboration: Make it easier for team members to work on different projects
- Simplify Onboarding: Provide clear guidance for new team members
- New Developers: Start with our Developer Onboarding Path
- Contributing: Read our Contribution Guidelines
- Recent Changes: View our Changelog
- Self-Assessment: Use our Compliance Checklist
- Example Implementations: See Example Repositories
- Cursor Integration: Use our Cursor IDE Templates for Unity, Tauri, React, Node.js, and full-stack projects
The conventions are organized into the following categories:
- Git Flow - Branching strategy and workflow
- Commit Conventions - Standards for commit messages
- Repository Structure - Organization and configuration of repositories
- Multi-Repository Management - Standards for managing multiple repositories
Language-specific conventions for coding style, patterns, and best practices:
- C# - Conventions for C# development
- JavaScript - Standards for JavaScript development
- TypeScript - TypeScript-specific guidelines
- Python - Python coding standards
- C++ - C++ development guidelines
- C - C development standards
- Java - Java development standards
- Rust - Rust development standards
- Go - Go development guidelines
- Swift - Swift development standards for Apple platforms
- Kotlin - Kotlin development standards
- PHP - PHP development standards
- Ruby - Ruby development standards
- Dart - Dart development standards
- Lua - Lua development standards
- Solidity - Solidity blockchain development standards
Framework-specific conventions and best practices:
- Unity - Guidelines for Unity game development
- Unreal Engine - Standards for Unreal Engine development
- React - React development patterns and practices
- Angular - Angular development standards
- Flutter - Flutter and Dart best practices
- Node.js - Node.js development guidelines
- Electron.js - Electron.js desktop application standards
- Tauri - Tauri desktop application guidelines
- Qt - Qt framework development standards
- .NET MAUI - .NET MAUI cross-platform application guidelines
Standards for development processes and team workflows:
- Documentation Standards - Guidelines for creating and maintaining documentation
- Onboarding Journey - Structured approach to developer onboarding
- Code Review Automation - Standards for automating code review processes
- Developer Experience - Guidelines for improving developer experience
- Developer Experience Metrics - Standards for measuring developer experience
- Developer Experience Optimization - Standards for improving developer workflows and productivity
- Knowledge Management Protocol - Standards for documentation maintenance and knowledge sharing
- Innovation Framework - Guidelines for innovation processes and experimentation
Standards for ensuring quality:
- Testing - Testing strategies and requirements
- Frontend Testing - Comprehensive frontend testing best practices
- Code Reviews - Code review process and checklist
- CI/CD - Continuous integration and deployment standards
- Code Generation - Standards for using AI-assisted code generation tools
- Code Refactoring - Guidelines for when and how to approach code refactoring
Documentation standards:
- API Documentation - API documentation guidelines
- Code Documentation - Code-level documentation standards
- User Documentation - End-user documentation guidelines
- Technical Documentation - System and architecture documentation
- End-User Documentation - Guidelines for creating user-facing documentation
- Technical Writing - Standards for technical writing
- Developer Portal - Standards for developer portal content and structure
- Interactive Documentation - Recommendations for implementing interactive documentation solutions
DevOps practices and standards:
- Deployment - Deployment processes and environments
- Infrastructure as Code - IaC standards and patterns
- Monitoring - Application and system monitoring standards
- Observability - Observability and telemetry guidelines
- Performance Monitoring - Standards for application performance monitoring
- Containerization - Docker and container best practices
- Disaster Recovery - Disaster recovery and business continuity standards
- Incident Response - Incident response and postmortem processes
Security standards and best practices:
- Secure Coding - Secure coding guidelines
- Authentication - Authentication best practices
- Password Policy - Comprehensive password standards and implementation
- Data Protection - Data security standards
- Vulnerability Management - Handling security vulnerabilities
- DevSecOps - DevSecOps practices and integration
- Supply Chain Security - Software supply chain security standards
- AI Governance - Policies for responsible AI development and deployment
- Compliance Automation - Standards for automating compliance checks
- Zero Trust Security - Zero trust security implementation
- Certificates and Compliance - Certificate management and compliance
- SAST/DAST - Static and Dynamic Application Security Testing
Architecture standards:
- Microservices - Microservices architecture guidelines
- Monoliths - Monolithic application architecture
- Frontend Architecture - Frontend architecture patterns
- Backend Architecture - Backend architecture patterns
- Event-Driven Architecture - Event-driven architecture patterns and best practices
- Feature Flags - Feature flag implementation standards and strategies
- Cloud-Native - Cloud-native application architecture
- Cloud Providers - Cloud provider-specific guidelines and best practices
- API Design - API design standards and best practices
- API Versioning - API versioning and deprecation strategy
- Database Standards - Database design and management standards
- Technical Debt - Technical debt management
- Technical Debt Quantification - Methods for measuring technical debt
- Technical Debt Management - Strategies for managing technical debt
- Performance Engineering - Performance engineering standards
- Emerging Technologies - Guidelines for AI/ML, AR/VR, IoT, and edge computing
- Tech Radar - Technology recommendations and adoption guidance
- Serverless - Serverless architecture guidelines
- Blockchain and Web3 - Blockchain and Web3 development standards
- AI and ML Integration - AI and machine learning integration standards
- AI Engineering - AI systems development, deployment, and maintenance standards
- AI/ML Engineering Standards - Comprehensive AI/ML engineering standards
- MLOps - Machine learning operations standards and best practices
- Edge Computing - Edge computing architecture and implementation standards
- Data Engineering - Data engineering and analytics standards
- Data Engineering Governance - Data governance and management
- Legacy Modernization - Legacy system modernization guidelines
- Quantum Computing - Quantum computing readiness guidelines
- Low-Code/No-Code - Low-code/no-code integration guidelines
- Architecture Decision Records - Standards for documenting architectural decisions
- Architecture Diagrams - Standards and templates for creating architecture diagrams
- Platform Engineering - Platform engineering standards
- GraphQL Standards - Standards for GraphQL API development
- Event-Driven Architecture - Detailed event-driven architecture standards
- Naming Conventions - Standardized naming conventions for namespaces and package identifiers across all Bayat projects
Standards for specific project types:
- Game Development - Game-specific standards and patterns
- Web Applications - Web application standards
- Mobile Applications - Mobile application standards
- Mobile Development (Native) - Native iOS and Android development best practices
- Desktop Applications - Desktop application standards and patterns
- Native Multi-Platform - Standards for native multi-platform development
- Cross-Platform Code Sharing - Strategies for sharing code between web, mobile, and desktop platforms
- Libraries and Packages - Standards for building libraries
- Progressive Web Apps - PWA development standards
- Design Systems - Design system development and maintenance
- Embedded Systems and IoT - Embedded systems and IoT development standards
- AR/VR/XR - Augmented, virtual, and mixed reality development standards
Standards for development environment setup:
- Environment Setup - Development environment standards and configurations
Guidelines for managing dependencies:
- Dependency Management - Best practices for managing external and internal dependencies
- Dependency Upgrade Strategies - Comprehensive standards for evaluating, upgrading, and maintaining dependencies
Standards for release processes:
- Release Management - Guidelines for version management and release processes
- Release Templates - Templates for release documentation
Standards for cross-cutting concerns:
- Accessibility - Accessibility compliance guidelines
- Accessibility Testing - Comprehensive accessibility testing standards and procedures
- Internationalization - Internationalization and localization standards
- Performance - Performance optimization guidelines
- Performance Budgets - Specific metrics, targets, and measurement approaches for performance
- Frontend Optimization - Frontend performance optimization techniques and standards
- Green Software - Green software engineering standards
- Cultural and Regional - Cultural and regional considerations in software development
- Ethical AI - Ethical AI and responsible technology development
- Dark Mode Implementation - Guidelines for implementing dark mode across all platforms
- Inclusive Engineering - Standards for creating inclusive software
Guidelines for team collaboration:
- Team Collaboration - Standards for communication, meetings, and collaborative processes
- Remote Collaboration - Standards and best practices for effective remote collaboration
- Community Contribution - Guidelines for external contributions to open-source projects
- Mentorship and Knowledge Sharing - Structured approach to internal knowledge transfer and technical mentorship
- Community Standards - Standards for community engagement and governance
Curated learning resources:
- Learning Resources - Recommended books, courses, and resources for various technologies
- Knowledge Management - Knowledge management standards and practices
Standardized project templates:
- Project Templates - Available project templates and starter kits
Standard tools and automation practices:
- Tooling and Automation - Standard development tools and automation practices
Guidelines for versioning:
- Versioning Standards - Versioning schemes and practices
Legal guidelines and standards:
- Licensing Guide - Guidelines for software licensing and compliance
- Glossary of Terms - Definitions of common terms and acronyms used across projects
All team members are expected to follow these conventions for new projects and when contributing to existing ones. For legacy projects that don't follow these standards, a migration plan should be created when significant changes are planned.
To ensure documentation consistency and completeness:
-
Use the validation script to check if all documentation files are properly referenced:
make validate
-
Check for broken links in documentation:
make check-links
-
Run all validation checks at once:
make check-all
When creating new documentation files:
- Use the document version header template from Document Version Header
- Follow the section organization guide in Section Organization
- Keep documentation up to date, with correct version information
These conventions are not static and should evolve with industry trends and team experiences. To propose changes:
- Create a new branch from
main
following our Git Flow - Make your proposed changes
- Submit a pull request with detailed explanation of the rationale for the change
- After review and approval, changes will be merged and communicated to all teams
These conventions are enforced through:
- Code review processes
- Automated linting and formatting tools
- CI/CD pipeline checks
- Regular training and workshops
Exceptions to these conventions may be allowed in specific circumstances but must be documented and approved by team leads.