Best Practices
-
Chesterton's Fence
We should heed Chesterton’s Fence and be careful to consider why our teammates wrote the code that they did before we look at it and think “there is a better way”.
-
has_few :god_objects
We can achieve better object design and smaller interfaces by defining associations in one direction only.
-
Design Your Codebase with Low Fan-out, High Fan-in Classes
Smaller, simpler classes are easier to reason about than larger, more complex ones. Building low fan-out, high fan-in classes helps in designing simple systems.
-
Stabby Stubbing
Define a .call() on service objects to stub with Procs.
-
Iceberg Classes
An “Iceberg Class” is loosely defined as a class with more private than public methods, but we will be specifically talking about those classes with only one or two public methods (other than an initializer).
-
Wrong, Sir, Wrong!
You are wrong about a few things, and that is okay.
-
How to Write a README
There is a science and an art to writing an effective README for an open source project.
-
Sandi Metz’ Four Rules for Developers
Four rules for clean and maintainable code from Sandi Metz
-
5 Useful Tips for a Better Commit Message
You’re already writing decent commit messages. Let’s see if we can level you up to awesome. Other developers, especially you-in-two-weeks and you-from-next-year, will thank you for your forethought and verbosity when they run
git blame
to see why that conditional is there.
-
Stop Counting Hours
An Open Letter To the Management of (Generally) Small Companies with Internal Software Teams