Tidy design principles

Welcome

The goal of this book is to help you write better R code. It has four main components:

  • Identifying design challenges that often lead to suboptimal outcomes.

  • Introducing useful patterns that help solve common problems.

  • Defining key principles that help you balance conflicting patterns.

  • Discussing case studies that help you see how all the pieces fit together with real code.

While I’ve called these principles “tidy” and they’re used extensively by the tidyverse team to promote consistency across our packages, they’re not exclusive to the tidyverse. Think tidy in the sense of tidy data (broadly useful regardless of what tool you’re using) not tidyverse (a collection of functions designed with a singular point of view in order to facilitate learning and use).

This book will be under heavy development for quite some time; currently we are loosely aiming for completion in 2025. You’ll find many chapters contain disjointed text that mostly serve as placeholders for the authors, and I do not recommend attempting to systematically read the book at this time. If you’d like to follow along with my journey writing this book, and learn which chapters are ready to read, please sign up for my tid design substack mailing list.