best-practices-checklist
best-practices-checklist copied to clipboard
A list of awesome idiomatic code resources. Rust:crab:, Go, Ruby:gem:, Pony :horse:, Ocaml :camel:, Erlang and more
Best Practices Checklist
Table of Contents
-
Best Practices Checklist
- Table of Contents
- What is this
- Why this repo
- What counts as an acceptable entry
-
Language Specific Resources
- Rust
- Go
- Python
- Ruby
- OCaml
- Haskell
- Erlang
- Elixir
- Common Lisp
- CSharp
- Java
- Scala
- Groovy
- Kotlin
- D
- Clojure
- Nim
- Pony
- Javascript
- C
- C++
- Dart
- SQL
- Objective-C
- Swift
- R
- Shell
- HTML/CSS
- Vimscript
- XML
- General API Design and Tooling
What is this
This is a collection of language specific resources that can be used to look up the best practices followed by a particular language's community.
Why this repo
I am a programming language enthusiast and I like picking up new languages all the time. Like most curious devs I learn different languages by implementing some side projects using them. This can be achieved by writing quick hacks that mostly turn out to be ugly code but if we want our projects to be publicly available to be used or hacked on by others we must ensure that the code we write is idiomatic and easily understood.
The purpose of this repo is to serve as a collection of resources that one can quickly look up while building such projects to make sure that their code is idiomatic before they make it public.
What counts as an acceptable entry
It could be anything from articles to books to videos that describes:
- how to write idiomatic code in a particular language
- what build systems / package managers to use and the best practices surrounding these aforementioned tools
- how to good write unit/integration tests
- different styles and idioms of a language
- software design in general etc
- new language section (if you find that the resources for your favourite language are missing feel free to create a new section and add them)
Note: If you are adding a book to the list make sure that it is a free ebook. Amazon links to buy books will not be accepted.
Language Specific Resources
Rust
- Elements of Rust
- Rust Language Reference
- Rust Programming Language (Book)
- Rust Language Cheat Sheet
- Rust Cookbook
- 3 Day Rust Course by Ferrous Systems
- Rust By Example
- Cargo Guide
- Idiomatic Rust
- Unsafe Code Guidelines
- Rust Performance Book
- Rust Fuzz Book
Go
- Clean Go
- Idiomatic Go - Sourcegraph
- Idiomatic Go - by dmitshur
- Go package style guide by Rakyll
- Go Advice
- Domain Driven Design in Go
- Learn Go With Tests
- Effective Go
- How to Write Go Code
- The Uber Go Style Guide
- Golang Standards
Python
- Hitchhiker's Guide to Python
- Python API Checklist
- Design Patterns Implementations
- PEP8
- Elements Of Python Style
- Design Patterns Toptal Blog Post
- Google Python Style Guide
- Mozilla Style Guide
- wemake-python-styleguide (contains a list of stylistic rules / guidelines for Python code)
- Python style guide (Fuchsia)
Ruby
- RSpec Best Practices
- Let’s Read! — Eloquent Ruby
- Ruby Style Guide
- Best Ruby
- Fast Ruby - Idioms for writing performant code
OCaml
Haskell
Erlang
Elixir
Common Lisp
CSharp
- Open-source library guidance
- C# Programming guide
- .NET Microservices: Architecture for Containerized .NET Applications
- C# Coding conventions
- Unit testing in .NET Core and .NET Standard
- Google C# Style Guide
- ASP.NET Core Performance Best Practices
Java
Scala
Groovy
Kotlin
D
Clojure
Nim
Pony
Javascript
- Eloquent Javascript
- You Don't Know JS
- JS: The Right Way
- Google JavaScript Style Guide
- Mozilla Style Guide
- An AngularJS Style Guide for Closure Users at Google
- Airbnb Style Guide