Skip to content

dereknguyen269/programing-best-practices

Repository files navigation

🌟 Programming Best Practices

Your comprehensive guide to writing better code across 30+ languages and frameworks

Curated resources from industry leaders • Production-ready practices • Always updated

Awesome Badge Star Badge GitHub issues GitHub stars Github license

🔗 Quick Links

BackendFrontendDatabaseMobileDevOpsAI/MLToolsFeatured

📖 Introduction

This repository is a curated collection of programming best practices across multiple languages, frameworks, and tools.

It is not an exhaustive list but rather a practical resource containing articles, guidelines, and style guides that have proven helpful in real-world development.

The focus is primarily on Web Development (Ruby, Rails, JavaScript, etc.), but it also covers databases, DevOps, cloud practices, AI tools, and career growth.

With this collection, I hope to support developers in writing cleaner, more maintainable code and growing in their careers.

Status: 🚧 Work in Progress — continuously updated


🎯 Why This Repository?

Curated Quality — Hand-picked resources from industry leaders and experienced developers
🚀 Production-Ready — Practices that work in real-world applications, not just theory
🌍 Multi-Language — Covers 30+ programming languages and frameworks
📚 Comprehensive — From code style to architecture, security to performance
🔄 Always Updated — Regularly maintained with the latest best practices
💡 Community-Driven — Open to contributions from developers worldwide


🚀 Quick Start Setup

Step 1: Clone the Repository

git clone https://github.com/dereknguyen269/programing-best-practices.git
cd programing-best-practices

Step 2: Install Crawler Dependencies (Optional but Recommended)

The crawler downloads all external resources locally for offline access:

# Using pip
pip install -r scripts/crawler/requirements.txt

# Or using pip3
pip3 install -r scripts/crawler/requirements.txt

Step 3: Crawl Resources (Optional)

Download all best practices content locally:

# Crawl all resources (~150+ links, takes 10-15 minutes)
python3 scripts/crawler/crawl.py

# Or crawl specific categories
python3 scripts/crawler/crawl.py --category python
python3 scripts/crawler/crawl.py --category javascript

# Or crawl a limited number for testing
python3 scripts/crawler/crawl.py --limit 20

Step 4: Generate AI Summaries (Optional)

Create condensed summaries optimized for AI assistants:

python3 scripts/crawler/generate_summaries.py

Step 5: Use with Your AI Coding Editor

The repository is now ready! Your AI coding editor will automatically detect:

AI Editor Config File Auto-Detected
Claude Code CLAUDE.md
Kiro .kiro/project.md
Antigravity .agent/instructions.md
Cursor .cursorrules
Windsurf .windsurfrules

📁 Repository Structure

After setup, your repository will look like:

programing-best-practices/
├── README.md                   # Main knowledge base (curated links)
├── CLAUDE.md                   # Claude Code instructions
├── AGENTS.md                   # Universal AI agent instructions
├── .agent/                     # Antigravity config
│   ├── config.json
│   └── instructions.md
├── .kiro/                      # Kiro config
│   └── project.md
├── .cursorrules                # Cursor AI rules
├── .windsurfrules              # Windsurf AI rules
├── content/                    # 📦 Crawled content (after running crawler)
│   ├── index.json              # Master index of all resources
│   ├── metadata.yaml           # Crawl statistics
│   ├── backend_development/    # Content organized by category
│   ├── frontend_development/
│   └── ...
├── summaries/                  # 📝 AI-ready summaries (after generate_summaries.py)
│   ├── SUMMARY.md              # Master overview
│   └── [category].md           # Category summaries
├── scripts/
│   ├── crawler/                # 🕷️ Crawler tools
│   │   ├── crawl.py            # Main crawler
│   │   ├── search.py           # Search tool
│   │   ├── generate_summaries.py
│   │   └── requirements.txt
│   └── setup-kb.sh             # Quick setup script
├── templates/                  # 📋 Templates for your projects
│   ├── CLAUDE.template.md
│   ├── agent/
│   ├── kiro/
│   └── cursorrules.template
└── docs/
    └── INTEGRATION.md          # Integration guide

🔍 Searching the Knowledge Base

After crawling, you can search locally:

# Search for JavaScript content
python3 scripts/crawler/search.py "javascript style guide"

# Search within a specific category
python3 scripts/crawler/search.py "best practices" --category python

# Get results as JSON
python3 scripts/crawler/search.py "security" --json

📚 How to Use This Repository

For Beginners

  1. Start with your primary language — Navigate to your language section in the Table of Contents
  2. Read style guides first — Understanding code style is fundamental
  3. Practice with examples — Apply the practices in your own projects
  4. Bookmark for reference — Keep this as a go-to resource when coding

For Experienced Developers

  1. Explore new languages — Learn best practices before starting a new tech stack
  2. Code review reference — Use during code reviews to maintain quality standards
  3. Team onboarding — Share relevant sections with new team members
  4. Stay updated — Check back regularly for new resources and practices

For Team Leads

  1. Establish standards — Use these guides to create team coding standards
  2. Training resource — Assign relevant sections for team learning
  3. Quality benchmarks — Set expectations for code quality
  4. Architecture decisions — Reference system design and scalability sections

🤖 Use for Existing Projects

Want to integrate this knowledge base into your existing project? We provide multiple options:

Option 1: Quick Setup Script

# Run the setup script in your project directory
curl -sSL https://raw.githubusercontent.com/dereknguyen269/programing-best-practices/main/scripts/setup-kb.sh | bash

Option 2: Git Submodule

# Add as a submodule in your project
cd your-project
git submodule add https://github.com/dereknguyen269/programing-best-practices.git .kb/best-practices

Option 3: Copy Templates

Download the templates from the /templates directory and customize for your project:

Template Copy To Purpose
CLAUDE.template.md CLAUDE.md Claude Code
agent/instructions.template.md .agent/instructions.md Antigravity
agent/config.template.json .agent/config.json Antigravity
kiro/project.template.md .kiro/project.md Kiro
cursorrules.template .cursorrules Cursor

📖 Full integration guide: See docs/INTEGRATION.md


⭐ Featured Resources

Here are some standout resources that every developer should know:

🏆 Must-Read Guides

🎨 Design Patterns

🔧 Language-Specific Gems


📂 Table of Contents

🔹 Backend Development

Systems Programming

Enterprise & JVM Languages

Web Backend

Functional & Specialized

🔹 Frontend Development

Core Technologies

Frameworks & Libraries

Performance

🔹 Database & Data

SQL Databases

NoSQL & Big Data

🔹 Mobile Development

🔹 DevOps & Infrastructure

Cloud & Deployment

Security

🔹 AI & Data Science

🔹 Development Tools & Practices

Version Control & Collaboration

Scripting & Automation

Performance & Architecture

🔹 Specialized Languages


🔹 Backend Development

Systems Programming

🖥️ C Best Practices


🖥️ C++ Best Practices


🦀 Rust Best Practices


Enterprise & JVM Languages

☕ Java Best Practices


🌀 Kotlin Best Practices


🌀 Scala Best Practices


🖥️ C# Best Practices


Web Backend

🟢 Node.js Best Practices


🐍 Python Best Practices


💎 Ruby Best Practices


🚂 Rails Best Practices


🐘 PHP Best Practices


🎯 Laravel Best Practices


🟣 NestJS Best Practices


Functional & Specialized

🧪 Elixir Best Practices


🐹 Go (Golang) Best Practices


🍎 Swift Best Practices


🍏 Objective-C Best Practices


🐪 Perl Best Practices


🪶 Lua Best Practices


🎨 Frontend Development

Core Technologies

🌐 HTML Best Practices


🎨 CSS Best Practices


🎨 SASS Best Practices


📜 JavaScript Best Practices


🟦 TypeScript Best Practices


Frameworks & Libraries

⚛️ ReactJS Best Practices


📱 React Native Best Practices


🖼️ Vue Best Practices


🅰️ Angular Best Practices


⚡ Next.js Best Practices


⚡ Nuxt Best Practices


Performance

🚀 Frontend Performance Best Practices


🗄️ Database & Data

SQL Databases

📊 SQL Best Practices


🐘 PostgreSQL Best Practices


🐬 MySQL Best Practices


NoSQL & Big Data

📦 NoSQL Best Practices


📱 Mobile Development

📱 Flutter Best Practices


🎯 Dart Best Practices


☁️ DevOps & Infrastructure

Cloud & Deployment

☁️ AWS Best Practices


📦 Microservices & Cloud-Native Best Practices


Security

🔐 API Security Best Practices


🔐 DevSecOps & Security Best Practices


🤖 AI & Data Science

🤖 AI/ML Engineering Best Practices


🤖 AI Tools for Developers


🛠️ Development Tools & Practices

Version Control & Collaboration

🔎 Code Review Best Practices


🧑‍🤝‍🧑 Team & Collaboration Best Practices


Scripting & Automation

🐚 Bash Script Best Practices


Performance & Architecture

🏗️ System Design Best Practices


⚡ Performance & Scalability Best Practices


🌍 Specialized Languages

📊 R Best Practices


🆕 What's New

Stay updated with the latest additions to this repository:

Recent Updates

  • Enhanced README — Added quick navigation, featured resources, and usage guides
  • AI/ML Section — Expanded with LLM best practices and MLOps resources
  • Security Focus — Added DevSecOps and API security best practices
  • Performance Guides — New frontend performance and scalability resources
  • Modern Frameworks — Added Next.js, Nuxt, and NestJS best practices

Coming Soon

  • 🔜 Video Tutorials — Curated video resources for visual learners
  • 🔜 Code Examples — Practical code snippets demonstrating best practices
  • 🔜 Interactive Checklists — Ready-to-use checklists for code reviews
  • 🔜 Language Comparison — Side-by-side best practices across languages
  • 🔜 Community Picks — Top-voted resources from contributors

🌟 Community & Support

💬 Get Involved

We believe in the power of community! Here's how you can participate:

🤝 Ways to Contribute

  • 📝 Submit Resources — Found a great article or guide? Share it!
  • 🐛 Report Issues — Broken links or outdated content? Let us know!
  • 💡 Suggest Improvements — Ideas for better organization or new sections?
  • ⭐ Star the Repo — Show your support and help others discover this resource
  • 🔄 Share — Spread the word on social media, blogs, or with your team

📢 Discussions

  • Questions? Open a GitHub Discussion
  • Ideas? Share your thoughts in the Ideas category
  • Showcase — Share how you're using these best practices in your projects

🏆 Contributors

A huge thank you to all our contributors! 🙏


📈 Star History

Star History Chart


💡 Related Resources

Looking for more? Check out these complementary resources:


🎯 Repository Stats

Last Commit Contributors Forks Watchers

🤝 Contributing

Contributions are always welcome! 🎉 Before contributing, please read the Contribution Guidelines.


� Support This Project

If you find this repository helpful, here are some ways you can show your support:

⭐ Star This Repository

Click the ⭐ button at the top of this page — it helps others discover this resource!

🔄 Share With Others

🤝 Contribute

See our Contributing Guidelines to add your favorite resources!

☕ Sponsor

If this project has saved you time or helped your career, consider sponsoring to support continued maintenance and updates.


�📜 License

CC0 This project is licensed under Creative Commons Zero v1.0 Universal (CC0 1.0)Public Domain Dedication.


❓ Frequently Asked Questions

How often is this repository updated?

This repository is actively maintained and updated regularly. We add new resources as they emerge and remove outdated ones. Check the What's New section for recent updates.

Can I suggest a resource?

Absolutely! We welcome contributions. Please read our Contributing Guidelines and submit a pull request with your suggestions.

Are these practices suitable for beginners?

Yes! We've organized resources for all skill levels. Beginners should start with the How to Use section and focus on style guides first.

How do I know which resources to prioritize?

Check out our Featured Resources section for must-read guides. Also, resources from well-known organizations (Google, Airbnb, etc.) are generally excellent starting points.

Can I use this for my team?

Definitely! Many teams use this repository as a reference for establishing coding standards. Feel free to share relevant sections with your team or use them in onboarding materials.

Is this repository language-specific?

No, we cover 30+ programming languages and frameworks. Use the Table of Contents or Quick Links to navigate to your preferred technology.

How can I stay updated with new additions?

  • ⭐ Star and Watch this repository on GitHub
  • Check the What's New section periodically
  • Follow the repository for notifications

📜 License

CC0 This project is licensed under Creative Commons Zero v1.0 Universal (CC0 1.0)Public Domain Dedication.


Made with ❤️ by developers, for developers

⬆ Back to Top