Skip to content

Official development conventions, standards, and guidelines for Bayat projects. Includes coding standards, architecture principles, project workflows, and technical best practices to ensure consistency and quality across all teams.

Notifications You must be signed in to change notification settings

BayatGames/conventions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bayat Development Conventions

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.

Purpose

The purpose of these conventions is to:

  1. Ensure Consistency: Maintain uniform practices across all projects
  2. Improve Quality: Follow industry best practices and proven patterns
  3. Increase Efficiency: Reduce decision fatigue and standardize workflows
  4. Enable Collaboration: Make it easier for team members to work on different projects
  5. Simplify Onboarding: Provide clear guidance for new team members

Getting Started

Structure

The conventions are organized into the following categories:

Git & Version Control

Languages

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

Frameworks

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

Process & Workflows

Standards for development processes and team workflows:

Quality Assurance

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

Documentation standards:

DevOps

DevOps practices and standards:

Security

Security standards and best practices:

Project Architecture

Architecture standards:

Project-Specific Standards

Standards for specific project types:

Development Environment

Standards for development environment setup:

Dependency Management

Guidelines for managing dependencies:

Release Management

Standards for release processes:

Cross-functional Requirements

Standards for cross-cutting concerns:

Team Collaboration

Guidelines for team collaboration:

Learning Resources

Curated learning resources:

Project Templates and Starter Kits

Standardized project templates:

Tooling and Automation

Standard tools and automation practices:

Versioning Standards

Guidelines for versioning:

Legal Documentation

Legal guidelines and standards:

Glossary

Using These Conventions

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.

Validation and Consistency

To ensure documentation consistency and completeness:

  1. Use the validation script to check if all documentation files are properly referenced:

    make validate
  2. Check for broken links in documentation:

    make check-links
  3. Run all validation checks at once:

    make check-all

Document Templates

When creating new documentation files:

  1. Use the document version header template from Document Version Header
  2. Follow the section organization guide in Section Organization
  3. Keep documentation up to date, with correct version information

Contributing to Conventions

These conventions are not static and should evolve with industry trends and team experiences. To propose changes:

  1. Create a new branch from main following our Git Flow
  2. Make your proposed changes
  3. Submit a pull request with detailed explanation of the rationale for the change
  4. After review and approval, changes will be merged and communicated to all teams

Enforcement

These conventions are enforced through:

  1. Code review processes
  2. Automated linting and formatting tools
  3. CI/CD pipeline checks
  4. Regular training and workshops

Exceptions to these conventions may be allowed in specific circumstances but must be documented and approved by team leads.