Readalong

Practical Object-Oriented Design: An Agile Primer Using Ruby

Hosted by xoruby
01 Jan 25 - 12 Mar 25
170 participants

About

Practical Object Oriented Design with Ruby (POODR) shows programmers how to write better code that's easier to change and fix later. The author, Sandi Metz, explains that good code is like building with LEGO blocks - each piece should do just one thing well and fit nicely with other pieces. She teaches ways to organize code so that when you need to make changes, you only have to change one small part instead of rewriting everything. The book uses lots of real examples to show how to spot common problems in code and fix them using object-oriented programming ideas. These ideas help programmers write code that's easier to understand, test, and update. While the book uses Ruby programming language for its examples, the lessons work for any kind of programming.

Forums

Preface

Target: 08 Jan 2025

When considering which book to start off this Community readalong series there was only one that came to mind, Practical Object Oriented Design with Ruby more affectionately referred to as POODR. It has something for everyone and has already impacted a generation of Rubyists.

These days we are more connected than ever before, with instant access to vast networks of people and an unprecedented wealth of information at our fingertips. Ironically, however, many people are feeling increasingly isolated and disconnected from meaningful social interactions. This isolation, I believe, stems from the superficial nature of many online connections, the curated personas we present on social media, and the reduction in face-to-face interactions. While technology offers the promise of bringing people together, it can sometimes create a false sense of community that fails to satisfy our deep-seated need for genuine human connection.

The constant barrage of information and the pressure to maintain a flawless online presence can also lead to feelings of overwhelm and inadequacy, further contributing to a sense of disconnection from real-world relationships and experiences. As a result, many find themselves surrounded by virtual connections yet yearning for more authentic and fulfilling social engagement.

POODR's structure makes it well-suited for bringing people together in this format. As the concepts build gradually from chapter to chapter while remaining digestible, it creates natural spaces for readers to pause, reflect, and most importantly - connect with others who are processing the same material. The book's approach of encouraging experimentation and questioning our assumptions about code creates perfect opportunities for conversations and reflections.

Whether this is your first readthrough of POODR or yet another pass, this XO Ruby Community readalong is intended to provide a space where folks can interact, fail, learn, and connect with each other.
0 comments

Introduction

Target: 08 Jan 2025

This chapter allows author Sandi Metz to set the tone for the book as well as describe who should read the book and how best to follow along. However given this is a community readalong we would like you to take the opportunity to introduce yourself here in the comments.

  1. What's your experience level with Ruby?
  2. Where are you located geographically?
  3. What's one other fact that other folks should know about you?
57 comments

Chapter 1: Object-Oriented Design

Target: 15 Jan 2025

In this first chapter, Metz makes the case that application change is unavoidable and that the best way to handle this expected volatility is through object oriented design (OOD). By following the principles and patterns of design, engineers can create malleable objects that pass meaningful messages among one another.

Below are a few questions to get our conversation started around Chapter 1.  Feel free to answer any one of these and reply with a helpful comment on someone else’s post as well.

  1. How would you contrast procedural and object-oriented programming based on the chapter's explanation?

  2. Think about a project you’re currently working on. What criteria can you use to determine successful design in the next feature that you build?

  3. Any other thoughts or questions you have on this chapter?

19 comments

Chapter 2: Designing Classes with a Single Responsibility

Target: 22 Jan 2025

Forum unlocked when you reach 4% in the book

20 comments

Chapter 3: Managing Dependencies

Target: 29 Jan 2025

Forum unlocked when you reach 11% in the book

17 comments

Chapter 4: Creating Flexible Interfaces

Target: 05 Feb 2025

Forum unlocked when you reach 20% in the book

3 comments

Chapter 5: Reducing Costs with Duck Typing

Target: 12 Feb 2025

Forum unlocked when you reach 29% in the book

0 comments

Chapter 6: Acquiring Behavior Through Inheritance

Target: 19 Feb 2025

Forum unlocked when you reach 36% in the book

0 comments

Chapter 7: Sharing Role Behavior with Modules

Target: 26 Feb 2025

Forum unlocked when you reach 48% in the book

0 comments

Chapter 8: Combining Objects with Composition

Target: 05 Mar 2025

Forum unlocked when you reach 56% in the book

0 comments

Chapter 9: Desiging Cost-Effective Tests

Target: 12 Mar 2025

Forum unlocked when you reach 83% in the book

0 comments