[
  {
    "path": "README.md",
    "content": "# Ruby Best Practices List 📚\n\nA list of well-written Ruby codebases and resources to help you extract and apply best practices in your Ruby apps.\n\nFor the exercises, we suggest you follow [this exercise format](https://www.hexdevs.com/posts/learn-ruby-best-practices-with-one-exercise/#one-exercise-to-teach-you-ruby-on-rails-best-practices) to get the most out of this list.\n\n---\n## Open-Source Projects 💻\n- [Upcase by thoughtbot](https://github.com/thoughtbot/upcase)\n- [dry-rb/dry-validation](https://github.com/dry-rb/dry-validation)\n- [fog](https://github.com/fog/fog)\n- [Sustainable Rails Template](https://github.com/davetron5000/rails-app-template-sustainable)\n\n## Articles 📰\n- [Learn Ruby on Rails Best Practices With One Exercise 🍝](https://www.hexdevs.com/posts/learn-ruby-best-practices-with-one-exercise/)\n- [How to Improve Code Quality on a Ruby on Rails Application](https://www.hexdevs.com/posts/technical-debt-ruby-on-rails/)\n- [Sandi Metz' Rules For Developers](https://thoughtbot.com/blog/sandi-metz-rules-for-developers)\n- [Breaking Up the Behemoth by Sandi Metz](https://sandimetz.com/blog/2017/9/13/breaking-up-the-behemoth)\n- [The Doctrine of Useful Objects](http://docs.eventide-project.org/user-guide/useful-objects.html)\n\n## Papers\n\n- [Defining, Measuring, and Managing Technical Debt](https://www.computer.org/csdl/magazine/so/2023/03/10109339/1MESXKyAYNO)\n\n## Courses 📺\n- [Clean-Code Series - Upcase](https://thoughtbot.com/upcase/clean-code)\n- [Sandi Metz's Rules - Upcase](https://thoughtbot.com/upcase/videos/sandi-metzs-rules)\n\n## Books 🔖\n- [Ruby Science - The reference for writing fantastic Rails applications](https://github.com/thoughtbot/ruby-science)\n- [Practical Object-Oriented Design (POODR)](https://sandimetz.com/products#product-poodr)\n- [Sustainable Web Development with Ruby on Rails](https://sustainable-rails.com/)\n- [The Mythical Man-Month](https://en.wikipedia.org/wiki/The_Mythical_Man-Month)\n- [Exceptional Ruby](https://store.avdi.codes/l/NWtnk)\n- [Refactoring: Ruby Edition](https://martinfowler.com/books/refactoringRubyEd.html)\n- [Working Effectively with Legacy Code](https://www.goodreads.com/book/show/44919.Working_Effectively_with_Legacy_Code)\n\n## Talks🎤\n- [Polly want a message - Sandi Metz](https://www.youtube.com/watch?v=XXi_FBrZQiU)\n- [Get a Whiff of This - Sandi Metz](https://www.youtube.com/watch?v=PJjHfa5yxlU)\n- [Escaping The Tar Pit - Ernesto Tagwerker](https://www.youtube.com/watch?v=ZyU6K6eR-_A)\n- [Makers vs Menders Talk by M. Scott Ford](https://www.youtube.com/watch?v=YW0BpCThjuM)\n\n## Podcasts 🎧\n- [hexdevs podcast - Ruby Code Quality with Ernesto Tagwerker](https://www.hexdevs.com/posts/ruby-code-quality-ernesto-tagwerker/)\n- [hexdevs podcast - Building Technical Wealth and Improving Legacy Code with M. Scott Ford](https://www.hexdevs.com/posts/building-technical-wealth-legacy-code-m-scott-ford/)\n\n## Tools 🧰\n- [RubyCritic](https://github.com/whitesmith/rubycritic): a gem that wraps around static analysis gems such as Reek, Flay and Flog to provide a quality report of your Ruby code.\n- [Skunk](https://github.com/fastruby/skunk): A SkunkScore Calculator for Ruby Code -- Find the most complicated code without test coverage!\n- [rails_stats - See more stats about a Rails app](https://github.com/fastruby/rails_stats)\n- [metric_fu - A list of code metrics (best practices, code smells, etc.) for Ruby projects](https://github.com/metricfu/metric_fu)\n- [Coverband](https://github.com/danmayer/coverband) - Ruby production code coverage collection and reporting (line of code usage)\n- [Sonarqube](https://www.sonarqube.org/) - Thousands of automated Static Code Analysis rules, protecting your app on multiple fronts, and guiding your team.\n- [CodeScene](https://codescene.com/) - One tool to visualise, understand and improve your software when it comes to code, knowledge and people behind it. \n- [Code Quality Tools - a massive list of code quality tools and metrics for Ruby projects](https://github.com/metricfu/metric_fu/wiki/Code-Tools)\n\n## Challenges 🛠️\n- [The Code Quality Challenge](https://tuple.app/code-quality-challenge)\n\n## Cheat Sheets 🔍\n- [Smells to Refactorings Quick Reference Guide](https://www.industriallogic.com/img/blog/2005/09/smellstorefactorings.pdf)\n\n---\nList compiled by [hexdevs](https://www.hexdevs.com).\nHave a suggestion or a question? Discussions are welcomed [here](https://github.com/hexdevs/ruby-best-practices-list/discussions/1).\n"
  }
]