{"id":13515965,"url":"https://github.com/palash25/best-practices-checklist","last_synced_at":"2025-05-16T05:06:10.684Z","repository":{"id":38712307,"uuid":"202397474","full_name":"palash25/best-practices-checklist","owner":"palash25","description":"A list of awesome idiomatic code resources. Rust:crab:, Go, Ruby:gem:, Pony :horse:, Ocaml :camel:, Erlang and more","archived":false,"fork":false,"pushed_at":"2024-08-26T16:57:29.000Z","size":112,"stargazers_count":957,"open_issues_count":0,"forks_count":84,"subscribers_count":33,"default_branch":"master","last_synced_at":"2025-04-10T01:06:13.094Z","etag":null,"topics":["best-practices","idioms","polyglot-dev","software-design","software-development"],"latest_commit_sha":null,"homepage":"https://twitter.com/palash2504/status/1180570821351366656","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/palash25.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-14T17:36:24.000Z","updated_at":"2025-04-02T03:41:17.000Z","dependencies_parsed_at":"2024-01-06T10:00:05.424Z","dependency_job_id":"1c229b81-2574-4f12-b0a1-63568af68fac","html_url":"https://github.com/palash25/best-practices-checklist","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palash25%2Fbest-practices-checklist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palash25%2Fbest-practices-checklist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palash25%2Fbest-practices-checklist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palash25%2Fbest-practices-checklist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/palash25","download_url":"https://codeload.github.com/palash25/best-practices-checklist/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254471061,"owners_count":22076585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["best-practices","idioms","polyglot-dev","software-design","software-development"],"created_at":"2024-08-01T05:01:17.919Z","updated_at":"2025-05-16T05:06:10.667Z","avatar_url":"https://github.com/palash25.png","language":null,"funding_links":[],"categories":["Technical","Others","Tools"],"sub_categories":["ramanihiteshc@gmail.com","Mentoring"],"readme":"# Best Practices Checklist\n\n## Table of Contents\n\n- [Best Practices Checklist](#best-practices-checklist)\n  - [What is this](#what-is-this)\n  - [Why this repo](#why-this-repo)\n  - [What counts as an acceptable entry](#what-counts-as-an-acceptable-entry)\n  - [Language Specific Resources](#language-specific-resources)\n    - [C](#c)\n    - [C++](#c-1)\n    - [Clojure](#clojure)\n    - [Common Lisp](#common-lisp)\n    - [C#](#csharp)\n    - [D](#d)\n    - [Dart](#dart)\n    - [Erlang](#erlang)\n    - [Elixir](#elixir)\n    - [F#](#fsharp)\n    - [Go](#go)\n    - [Groovy](#groovy)\n    - [Haskell](#haskell)\n    - [HTML/CSS](#htmlcss)\n    - [Java](#java)\n    - [Javascript](#javascript)\n    - [Kotlin](#kotlin)\n    - [Nim](#nim)\n    - [Objective-C](#objective-c)\n    - [OCaml](#ocaml)\n    - [Pony](#pony)\n    - [Prolog](#prolog)\n    - [Python](#python)\n    - [R](#r)\n    - [Ruby](#ruby)\n    - [Rust](#rust)\n    - [Scala](#scala)\n    - [Shell](#shell)\n    - [SQL](#sql)\n    - [Swift](#swift)\n    - [Vimscript](#vimscript)\n    - [XML](#xml)\n    - [Zig](#zig)\n\n## What is this?\n\nThis is a collection of language specific resources that can be used to look up the best practices followed by a particular language's community.\n\n## Why does this repo exist?\n\nI dabble into multiple programming languages and I wanted to have a central place that I can refer to whenever I am looking up best practices for a particular language.\n\n## What counts as an acceptable entry?\n\nIt could be anything from articles to books to videos that describes:\n\n- how to write idiomatic code in a particular language\n- what build systems / package managers to use and the best practices surrounding these aforementioned tools\n- how to good write unit/integration tests\n- different styles, design patterns \u0026 idioms of a language\n- 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)\n\n**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.\n\n## Language Specific Resources\n\n\n\n### C\n\n- [C Coding Style](https://developer.gnome.org/programming-guidelines/stable/c-coding-style.html.en)\n- [C Style](https://github.com/mcinglis/c-style)\n- [Making The Best Use of C](https://www.gnu.org/prep/standards/html_node/Writing-C.html)\n- [Recommended C Style and Coding Standards](https://www.doc.ic.ac.uk/lab/cplus/cstyle.html)\n\n### C++\n\n- [ISO C++ Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)\n- [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)\n- [Mozilla Style Guide](https://firefox-source-docs.mozilla.org/tools/lint/coding-style/coding_style_cpp.html)\n- [C++ style guide (Fuchsia)](https://fuchsia.dev/fuchsia-src/development/languages/c-cpp/cpp-style)\n\n### Clojure\n\n- [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n\n### Common Lisp\n\n- [Standard CL Symbols](https://www.hexstreamsoft.com/articles/notes-tips-standard-common-lisp-symbols/)\n- [Google Common Lisp Style Guide](https://google.github.io/styleguide/lispguide.xml)\n\n### CSharp\n\n- [Open-source library guidance](https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/)\n- [C# Programming guide](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/)\n- [.NET Microservices: Architecture for Containerized .NET Applications](https://docs.microsoft.com/en-us/dotnet/architecture/microservices/)\n- [C# Coding conventions](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions)\n- [Unit testing in .NET Core and .NET Standard](https://docs.microsoft.com/en-us/dotnet/core/testing/)\n- [Google C# Style Guide](https://google.github.io/styleguide/csharp-style.html)\n- [ASP.NET Core Performance Best Practices](https://docs.microsoft.com/en-us/aspnet/core/performance/performance-best-practices?view=aspnetcore-5.0)\n\n\n### D\n\n- [The D Style](https://dlang.org/dstyle.html)\n- [Pragmatic D Tutorial: Idiomatic D](https://qznc.github.io/d-tut/idiomatic.html)\n\n### Erlang\n\n- [Spawned Shelter (a list of various Erlang resources)](http://spawnedshelter.com)\n- [Erlang Patterns (the site is no longer accessible but one can read the md files in the repo)](https://github.com/gar1t/erlang-patterns)\n\n### Elixir\n\n- [Fast Elixir - Idioms for writing performant code](https://github.com/devonestes/fast-elixir)\n- [Credo's Elixir Style Guide](https://github.com/rrrene/elixir-style-guide)\n- [The Zen of Elixir](https://github.com/tony612/the-zen-of-elixir)\n\n\n### FSharp\n\n- [F# style guide](https://learn.microsoft.com/en-us/dotnet/fsharp/style-guide/)\n- [Effective F#, tips and tricks ](https://gist.github.com/swlaschin/31d5a0a2c4478e82e3ed60d653c0206b)\n\n### Go\n\n- [Google's Go Style Guide](https://google.github.io/styleguide/go/)\n- [Clean Go](https://github.com/Pungyeon/clean-go-article)\n- [Idiomatic Go - Sourcegraph](https://about.sourcegraph.com/go/idiomatic-go)\n- [Idiomatic Go - by dmitshur](https://dmitri.shuralyov.com/idiomatic-go)\n- [Go package style guide by Rakyll](https://rakyll.org/style-packages/)\n- [Go Advice](https://github.com/cristaloleg/go-advice)\n- [Domain Driven Design in Go](https://github.com/marcusolsson/goddd)\n- [Effective Go](https://golang.org/doc/effective_go.html)\n- [How to Write Go Code](https://golang.org/doc/code.html)\n- [The Uber Go Style Guide](https://github.com/uber-go/guide)\n- [Golang Standards](https://github.com/golang-standards/project-layout)\n- [Advanced Testing Patterns Talk](https://www.youtube.com/watch?v=8hQG7QlcLBk)\n\n### Groovy\n\n- [Style guide](https://groovy-lang.org/style-guide.html)\n\n### Haskell\n\n- [Programming Guidelines](https://wiki.haskell.org/Programming_guidelines)\n- [Things to Avoid](https://wiki.haskell.org/Haskell_programming_tips)\n- [Useful Idioms](https://wiki.haskell.org/Blow_your_mind)\n- [Haskell Mini Patterns Book](https://kowainik.github.io/posts/haskell-mini-patterns)\n\n### Java\n\n- [Principles of Lean Java](http://www.ameyalokare.com/software/2018/01/13/lean-java-principles.html)\n- [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html)\n- [Java Code Conventions](https://www.oracle.com/technetwork/java/codeconventions-150003.pdf)\n\n### Kotlin\n\n- [Coding Conventions](https://kotlinlang.org/docs/reference/coding-conventions.html)\n- [Google Kotlin Style Guide for Android](https://developer.android.com/kotlin/style-guide)\n\n### Nim\n\n- [Nim Style Guide](https://nim-lang.org/docs/nep1.html)\n- [Nim Notes](https://scripter.co/notes/nim)\n  \n\n### OCaml\n\n- [OCaml Style Guide](https://github.com/lindig/ocaml-style)\n\n\n### Pony\n\n- [Pony Patterns](https://patterns.ponylang.io/)\n\n\n### Python\n\n- [Hitchhiker's Guide to Python](https://docs.python-guide.org/)\n- [Python API Checklist](https://github.com/vintasoftware/python-api-checklist)\n- [Design Patterns Implementations](https://github.com/faif/python-patterns)\n- [PEP8](https://www.python.org/dev/peps/pep-0008/)\n- [Elements Of Python Style](https://github.com/amontalenti/elements-of-python-style)\n- [Design Patterns Toptal Blog Post](https://www.toptal.com/python/python-design-patterns)\n- [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html)\n- [Mozilla Style Guide](https://firefox-source-docs.mozilla.org/tools/lint/coding-style/coding_style_python.html)\n- [Python style guide (Fuchsia)](https://fuchsia.dev/fuchsia-src/development/languages/python/python_style)\n\n### Ruby\n\n- [RSpec Best Practices](https://github.com/abinoda/rspec-best-practices)\n- [Let’s Read! — Eloquent Ruby](https://medium.com/@baweaver/lets-read-eloquent-ruby-ch-1-b2115d1416a6)\n- [Ruby Style Guide](https://rubystyle.guide/)\n- [Best Ruby](http://franzejr.github.io/best-ruby/)\n- [Fast Ruby - Idioms for writing performant code](https://github.com/JuanitoFatas/fast-ruby)\n\n### Rust\n\n- [Elements of Rust](https://github.com/ferrous-systems/elements-of-rust)\n- [Official Rust Guidelines](https://github.com/rust-lang/api-guidelines)\n- [Rust Language Cheat Sheet](https://cheats.rs/)\n- [Rust Cookbook](https://rust-lang-nursery.github.io/rust-cookbook/)\n- [Rust By Example](https://doc.rust-lang.org/rust-by-example/macros/overload.html)\n- [Cargo Guide](https://doc.rust-lang.org/cargo/guide/)\n- [Idiomatic Rust](https://github.com/mre/idiomatic-rust)\n- [Unsafe Code Guidelines](https://rust-lang.github.io/unsafe-code-guidelines/)\n- [Rust Performance Book](https://nnethercote.github.io/perf-book/title-page.html)\n- [Rust Fuzz Book](https://rust-fuzz.github.io/book/introduction.html)\n- [Test Idioms](https://github.com/spacejam/test-idioms) (an example crate showcasing idiomatic test layout for Rust projects)\n- [List of Idiomatic Rust Resources by Corrode](https://corrode.dev/blog/idiomatic-rust-resources/)\n- [Maintenance Checklist for Production Grade Rust Codebases by Corrode](https://corrode.notion.site/Rust-Maintenance-Checklist-3fa116db4c6149cbacbe3c16f81c6bb0)\n- [Secure Rust Guidelines](https://anssi-fr.github.io/rust-guide/)\n\n### Scala\n\n- [Scala Idioms](https://leanpub.com/scalaidioms/read)\n- [Scala Best Practice Idioms](https://alvinalexander.com/scala/scala-best-practices-idioms-cookbook)\n- [Scala School](https://twitter.github.io/scala_school/)\n\n\n### Javascript\n\n- [Eloquent Javascript](http://eloquentjavascript.net/)\n- [You Don't Know JS](https://github.com/getify/You-Dont-Know-JS)\n- [JS: The Right Way](https://jstherightway.org/)\n- [Google JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html)\n- [Mozilla Style Guide](https://firefox-source-docs.mozilla.org/tools/lint/coding-style/coding_style_js.html)\n- [An AngularJS Style Guide for Closure Users at Google](https://google.github.io/styleguide/angularjs-google-style.html)\n- [Airbnb Style Guide](https://github.com/airbnb/javascript)\n\n### Dart\n\n- [Effective Dart](https://dart.dev/guides/language/effective-dart)\n- [Dart style guide (Fuchsia)](https://fuchsia.dev/fuchsia-src/development/languages/dart/style)\n- [Style guide for Flutter repo](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo)\n\n### SQL\n\n- [SQL Style Guide by Simon Holywell](https://www.sqlstyle.guide)\n\n### Objective-C\n\n- [Google Objective-C Style Guide](https://google.github.io/styleguide/objcguide.html)\n\n### Swift\n\n- [Google Swift Style Guide](https://google.github.io/swift/)\n\n### R\n\n- [Google R Style Guide](https://google.github.io/styleguide/Rguide.html)\n\n### Shell\n\n- [Google Shell Style Guide](https://google.github.io/styleguide/shellguide.html)\n\n### HTML/CSS\n\n- [Google HTML/CSS Style Guide](https://google.github.io/styleguide/htmlcssguide.html)\n\n### Vimscript\n\n- [Google Vimscript Style Guide](https://google.github.io/styleguide/vimscriptguide.xml)\n\n### XML\n\n- [Google XML Style Guide](https://google.github.io/styleguide/xmlstyle.html)\n\n### Zig\n- [Zig Design Patterns](https://github.com/SuperAuguste/zig-patterns)\n\n### Prolog\n- TODO\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalash25%2Fbest-practices-checklist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpalash25%2Fbest-practices-checklist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalash25%2Fbest-practices-checklist/lists"}