Skip to content

Software engineering best practices πŸ“š

License

Notifications You must be signed in to change notification settings

ParanoidUser/awesome-practices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Awesome Practices Awesome

banner

A curated list of best practices, guidelines, standards, and conventions accepted for software engineering.

Contents

Design

Creating user-friendly and visually appealing software interfaces.

Development

Writing code to build software applications.

Methodology

Methods for software development, delivery, and maintenance.

  • C4 Model - An easy to learn, developer friendly approach to software architecture diagramming.
  • Conventional Commits - Specification for adding human and machine-readable meaning to commit messages.
  • Functional Documentation - Some collected thoughts and ideas around applying a functional approach to writing and maintaining documentation, especially for design systems.
  • GitLab Documentation Style Guide - Standards for GitLab documentation, including grammar, formatting, word use, and more.
  • Java Design Patterns - Software design patterns, principles, and snippets.
  • Keep Changelog - Guidelines for maintaining a curated, chronologically ordered list of notable changes for each version of a project.
  • Manifesto for Agile Software Development - Outlines the central values and principles of Agile software development.
  • Manifesto for Fluid Software Development - Defines a new approach to software development focused on fluidity and adaptability.
  • Minimum Viable CD - Set of practices that give the expected improvements to organizational structure that come with continuous delivery.
  • Open GitOps - Set of open-source standards, best practices, and community-focused education to help organizations adopt a structured, standardized approach to implementing GitOps.
  • Patterns for Managing Source Code Branches - Patterns that can allow teams to use branching effectively, concentrating around integrating the work of multiple developers and organizing the path to production releases.
  • Semantic Versioning - Formal convention for determining the version number of new software releases.
  • The Twelve-Factor App - Methodology for building software-as-a-service applications.
  • Trunk Based Development - Version management practice where developers merge small, frequent updates into a "trunk" or main branch.
  • Write the Docs - Collective wisdom of the Write the Docs community around best practices for creating software documentation.
  • Writing Better Release Notes - Some thoughts on how to write better release notes.

Tools

Software and hardware for software development and testing.

  • Choose a License - Non-judgmental guidance on choosing a license for your open source project.
  • Command Line Interface Guidelines - Guide to help you write better command-line programs.
  • Command-not-found - Helpful tool for installing any command on any operating system.
  • End-of-life - Documents EOL dates and support lifecycles for various products.
  • Gitignore - Web service designed to help you create .gitignore files for your Git repositories.
  • IP Guide - Easy to use API for looking up IP, Network, and ASN data.
  • Maven Code Style and Code Conventions - Rules for how the sources should be formatted in order to improve consistency, readability, and maintainability.
  • Terraform Best Practices - Best practices for using Terraform and recommendations for the most common issues.
  • Think Like (a) Git - Guide to help understand how Git works under the hood.
  • Typograms - Lightweight image format useful for defining simple diagrams in technical documentation.

Data

Information storage, processing, and analysis in software.

  • MLOps Principles - Best practices and tools to test, deploy, manage, and monitor ML models in real-world production.
  • Transparent Telemetry - Designed to give developers the information they need to be effective without having to track detailed user activity.

Security

Protecting software from attacks and misuse.

Culture

Values and practices influencing software development.

  • Amazon Leadership Principles - Core principles for discussing ideas for new projects or deciding the best way to solve a problem in everyday life.
  • Code of Conduct for Open Source Communities - Set of rules outlining the norms, rules, and responsibilities or proper practices of an individual party or an organization.
  • Conventional Comments - Standard for formatting comments of any kind of review/feedback process.
  • DORA Guides - Long running research program that seeks to understand the capabilities that drive software delivery and operations performance.
  • Dangit, Git!?! - List of common Git issues and ways to work around them.
  • Developer Marketing Guide - Learn about essential developer content types, distribution plans, community projects, tools, services, and more.
  • Developer Roadmaps - Step-by-step guides and paths to learn different tools or technologies.
  • JSON Resume - Open source initiative to create a JSON-based standard for resumes.
  • Open Source Guides - Collection of resources for individuals, communities, and companies who want to learn how to run and contribute to an open-source project.
  • Principles of Green Software Engineering - Set of competencies needed to define, build and run green software applications.
  • StaffEng - Guides for reaching and succeeding at Staff-plus roles.
  • Which Version of JDK Should I Use? - This site gives independent, yet opinionated recommendations.