Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ParanoidUser/awesome-practices

Software engineering best practices 📚
https://github.com/ParanoidUser/awesome-practices

List: awesome-practices

awesome awesome-list best-practices guidelines policies software-engineering

Last synced: about 1 month ago
JSON representation

Software engineering best practices 📚

Awesome Lists containing this project

README

        

# Awesome Practices [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

![banner](https://user-images.githubusercontent.com/5120290/213342525-d7aefbd0-1068-47bd-8a53-f0fb6f61a0dd.png)

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

## Contents

- [Design](#design)
- [Development](#development)
- [Methodology](#methodology)
- [Tools](#tools)
- [Data](#data)
- [Security](#security)
- [Culture](#culture)

## Design

*Creating user-friendly and visually appealing software interfaces.*

- [8 Principles of Information Architecture](https://asistdl.onlinelibrary.wiley.com/doi/full/10.1002/bult.2010.1720360609) - Eight principles to help designers make the right decisions when creating their build strategies.
- [A11Y Project](https://www.a11yproject.com/checklist/) - Community-driven effort to make digital accessibility easier.
- [BEM Methodology](https://getbem.com) - Front-end naming method for organizing and naming CSS classes.
- [Contrast Rebellion](https://contrastrebellion.com) - Multitude of accessibility problems with unreadable, low-contrast texts.
- [Guide to Accessible Form Validation](https://www.smashingmagazine.com/2023/02/guide-accessible-form-validation/) - Considerations, so that nobody gets stuck on an inaccessible invalid field.
- [Laws of UX](https://lawsofux.com) - Collection of best practices that designers can consider when building user interfaces.
- [Material Design Guidelines](https://m2.material.io/design/guidelines-overview) - Usability and platform guidance describe how to make sure your app is usable for all users.

## Development

*Writing code to build software applications.*

- [Android Developer Guides](https://developer.android.com/guide) - These documents teach you how to build Android apps using APIs in the Android framework and other libraries.
- [AWS Well-Architected](https://aws.amazon.com/architecture/well-architected/) - Helps cloud architects build secure, high-performing, resilient, and efficient infrastructure for a variety of applications and workloads.
- [Best practices for writing Dockerfiles](https://docs.docker.com/develop/develop-images/dockerfile_best-practices) - This topic covers recommended best practices and methods for building efficient images.
- [Conventional Logs](https://www.conventionallogs.org) - Specification for adding human and machine-readable meaning to log messages.
- [EKS Best Practices Guides](https://aws.github.io/aws-eks-best-practices/) - Set of best practices for day 2 operations for Amazon EKS.
- [Google API Design Guide](https://cloud.google.com/apis/design/) - General design guide that Google follows when designing Cloud APIs and other Google APIs.
- [Google Best Practices for Java Libraries](https://jlbp.dev) - Rules that minimize problems for consumers of interconnected Java libraries.
- [Google Cloud Architecture Framework](https://cloud.google.com/architecture/framework) - Provides recommendations and best practices for designing and operating a cloud topology.
- [Google Engineering Practices](https://google.github.io/eng-practices/) - Collective experience of various best practices that were developed over time in Google.
- [Google Style Guides](https://google.github.io/styleguide/) - Complete definition of Google's coding standards for different languages.
- [Guiding Principles of REST](https://restfulapi.net/rest-architectural-constraints/) - Guiding principles for designing loosely coupled applications over the network.
- [Hitchhiker's Guide to Python!](https://docs.python-guide.org) - Best practice handbook for the installation, configuration, and usage of Python on a daily basis.
- [OpenFeature](https://openfeature.dev) - Open specification that provides a vendor-agnostic, community-driven API for feature flagging that works with your favorite feature flag management tool.
- [Style Guide for Protobuf](https://docs.buf.build/best-practices/style-guide/) - This document is meant as a short reference for developers to refer to when writing Protobuf schemas.
- [Kubernetes Configuration Best Practices](https://kubernetes.io/docs/concepts/configuration/overview/) - Consolidates configuration best practices that are introduced throughout the user guide, Getting Started documentation, and examples.

## Methodology

*Methods for software development, delivery, and maintenance.*

- [C4 Model](https://c4model.com) - An easy to learn, developer friendly approach to software architecture diagramming.
- [Conventional Commits](https://www.conventionalcommits.org) - Specification for adding human and machine-readable meaning to commit messages.
- [Functional Documentation](https://heydonworks.com/article/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](https://docs.gitlab.com/ee/development/documentation/styleguide/) - Standards for GitLab documentation, including grammar, formatting, word use, and more.
- [Java Design Patterns](https://java-design-patterns.com) - Software design patterns, principles, and snippets.
- [Keep Changelog](https://keepachangelog.com) - Guidelines for maintaining a curated, chronologically ordered list of notable changes for each version of a project.
- [Manifesto for Agile Software Development](https://agilemanifesto.org/iso/en/manifesto.html) - Outlines the central values and principles of Agile software development.
- [Manifesto for Fluid Software Development](https://fluidmanifesto.org) - Defines a new approach to software development focused on fluidity and adaptability.
- [Minimum Viable CD](https://minimumcd.org) - Set of practices that give the expected improvements to organizational structure that come with continuous delivery.
- [Open GitOps](https://opengitops.dev) - 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](https://martinfowler.com/articles/branching-patterns.html) - 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](https://semver.org) - Formal convention for determining the version number of new software releases.
- [The Twelve-Factor App](https://12factor.net) - Methodology for building software-as-a-service applications.
- [Trunk Based Development](https://trunkbaseddevelopment.com) - Version management practice where developers merge small, frequent updates into a "trunk" or main branch.
- [Write the Docs](https://www.writethedocs.org/guide/) - Collective wisdom of the Write the Docs community around best practices for creating software documentation.
- [Writing Better Release Notes](https://simonwillison.net/2022/Jan/31/release-notes/) - Some thoughts on how to write better release notes.

## Tools

*Software and hardware for software development and testing.*

- [Choose a License](https://choosealicense.com) - Non-judgmental guidance on choosing a license for your open source project.
- [Command Line Interface Guidelines](https://clig.dev) - Guide to help you write better command-line programs.
- [Command-not-found](https://command-not-found.com) - Helpful tool for installing any command on any operating system.
- [End-of-life](https://endoflife.date) - Documents EOL dates and support lifecycles for various products.
- [IP Guide](https://ip.guide) - Easy to use API for looking up IP, Network, and ASN data.
- [Maven Code Style and Code Conventions](https://maven.apache.org/developers/conventions/code.html) - Rules for how the sources should be formatted in order to improve consistency, readability, and maintainability.
- [Terraform Best Practices](https://www.terraform-best-practices.com) - Best practices for using Terraform and recommendations for the most common issues.
- [Think Like (a) Git](https://think-like-a-git.net) - Guide to help understand how Git works under the hood.
- [Typograms](https://google.github.io/typograms/) - Lightweight image format useful for defining simple diagrams in technical documentation.

## Data

*Information storage, processing, and analysis in software.*

- [MLOps Principles](https://ml-ops.org/content/mlops-principles) - Best practices and tools to test, deploy, manage, and monitor ML models in real-world production.
- [Transparent Telemetry](https://research.swtch.com/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.*

- [Node.js Security Best Practices](https://nodejs.org/en/docs/guides/security) - This document intends to extend the current [threat model](https://github.com/nodejs/node/security/policy#the-nodejs-threat-model) and provide extensive guidelines on how to secure a Node.js application.
- [OWASP Top 10](https://owasp.org/Top10/) - Standard awareness document for developers and web application security.
- [TLS Cipher Suite Search](https://ciphersuite.info) - Searchable directory of TLS cipher suites and related security details.

## Culture

*Values and practices influencing software development.*

- [Amazon Leadership Principles](https://www.amazon.jobs/content/en/our-workplace/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](https://www.contributor-covenant.org) - Set of rules outlining the norms, rules, and responsibilities or proper practices of an individual party or an organization.
- [Conventional Comments](https://conventionalcomments.org) - Standard for formatting comments of any kind of review/feedback process.
- [Dangit, Git!?!](https://dangitgit.com) - List of common Git issues and ways to work around them.
- [Developer Roadmaps](https://roadmap.sh) - Step-by-step guides and paths to learn different tools or technologies.
- [JSON Resume](https://jsonresume.org) - Open source initiative to create a JSON-based standard for resumes.
- [Open Source Guides](https://opensource.guide) - 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](https://principles.green) - Set of competencies needed to define, build and run green software applications.
- [StaffEng](https://staffeng.com/guides) - Guides for reaching and succeeding at Staff-plus roles.
- [Which Version of JDK Should I Use?](https://whichjdk.com) - This site gives independent, yet opinionated recommendations.