40.00% off original price of $299.00
×
-
-
-
-
-
C1. Download: "99 Bottles of OOP" book (Ruby)
-
C2. Download: "99 Bottles of OOP" book (JS)
-
C3. Download: "99 Bottles of OOP" book (PHP)
-
C4.Download: "99 Bottles of OOP" book (Python)
-
-
Read: Block 1 Introduction
-
A. Code: Write Shameless Green
-
B. Compare: Your Solution to Mine
-
C. Take: Block 1 Gentle Quiz
-
-
-
Read: Block 2 Introduction
-
A: Help: A few git Suggestions
-
B. Watch: Writing the Tests
-
C. Take: Block 2 Gentle Quiz
-
-
-
Read: Block 3 Introduction
-
A. Watch: Listening to Change
-
B. Watch: Starting With the Open/Closed Principle
-
C. Watch: Recognizing Code Smells
-
D. Watch: Identifying the Best Point of Attack
-
E. Watch: Refactoring Systematically
-
-
Watch: Get a Whiff of This
-
-
Read: Block 4 Introduction
-
A. Watch: Following the Flocking Rules
FREE PREVIEW
-
B. Watch: Converging on Abstractions
-
C. Code: Extract the #container Abstraction
-
-
-
Read: Block 5 Introduction
-
A. Code: Continue Applying the Flocking Rules
-
B. Watch: Replacing Difference With Sameness
-
C. Watch: Equivocating About Names
FREE PREVIEW
-
D. Watch: Deriving Names From Responsibilities
-
E. Watch: Choosing Meaningful Defaults
-
F. Watch: Seeking Stable Landing Points
-
G. Watch: Obeying the Liskov Substitution Principle
-
H. Watch: Taking Bigger Steps
-
I. Watch: Discovering Deeper Abstractions
-
J. Watch: Depending on Abstractions
-
K. Code: Revert and Repeat
-
-
-
Read: Block 6 Introduction
-
A. Watch: Selecting the Target Code Smell
-
B. Watch: Extracting Classes
-
C. Code: Extract the BottleNumber class
-
-
Read: Block 7 Introduction
-
A. Watch: Appreciating Immutability
-
B. Watch: Assuming Fast Enough
-
-
Read: Block 8 Introduction
-
A. Watch: Creating BottleNumbers
-
B. Watch: Recognizing Liskov Violations
FREE PREVIEW
-
C. Code: Cache BottleNumbers
-
-
E. Take: Block 8 Gentle Quiz
-
-
-
Watch: All the Little Things
-
-
Read: Block 9 Introduction
-
A. Watch: Consolidating Data Clumps
-
B. Code: Resolve Data Clump
-
-
Read: Block 10 Introduction
-
A. Watch: Making Sense of Conditionals
FREE PREVIEW
-
B. Watch: Replacing Conditionals with Polymorphism
-
C. Code: Extract BottleNumber-ish Objects
-
D. Take: Block 10 Gentle Quiz
-
-
-
Read: Block 11 Introduction
-
A. Watch: Transitioning Between Types
-
B: Code: Alter #successor to Return BottleNumbers
-
C. Take: Block 11 Gentle Quiz
-
-
-
Read: Block 12 Introduction
-
A. Code: Implement six-pack!
-
B. Watch: Making the Easy Change
-
C. Watch: Defending the Domain
-
-
E. Take: Block 12 Gentle Quiz
-
-
-
Read: Block 13 Introduction
-
A. Watch: Contrasting the Concrete Factory with Shameless Green
-
B. Watch: Fathoming Factories
FREE PREVIEW
-
C. Watch: Opening the Factory
-
D. Watch: Supporting Arbitrary Class Names
-
E. Watch: Dispersing the Choosing Logic
-
F. Watch: Self-registering Candidates
-
G. Watch: Auto-registering Candidates
-
H. Code: Write Some Factories
-
-
Read: Block 14 Introduction
-
A. Watch: Converting Numbers to BottleNumbers
-
-
-
-
Watch: Go Ahead, Make A Mess
-
-
Read: Block 15 Introduction
-
A. Watch: Appreciating the Mechanical Process
FREE PREVIEW
-
B. Watch: Clarifying Responsibilities with Pseudocode
-
C. Watch: Extracting the Verse
-
D. Watch: Coding by Wishful Thinking
-
E. Watch: Inverting Dependencies
-
F. Code: Extract BottleVerse
-
G. Take: Block 15 Gentle Quiz
-
-
-
Read: Block 16 Introduction
-
A. Watch: Obeying the Law of Demeter
FREE PREVIEW
-
B. Watch: Identifying What the Verse Method Wants
-
C. Watch: Pushing Object Creation to the Edge
-
D. Code: Fix the Demeter Violation and Isolate Object Construction
-
-
F. Take Block 16 Gentle Quiz
-
-
-
Read: Block 17 Introduction
-
A. Watch: Choosing Which Units to Test
-
B. Watch: Reorganizing Tests
-
C. Watch: Seeking Context Independence
-
D. Watch: Communicating With the Future
-
E. Code: Rewrite the Tests
-
-
-
-
Read: Block 18 Introduction
-
A. Watch: Finding Shameless Green (up to 1:00)
-
B. Code: Attempt Shameless Green
-
C. Watch: Finding Shameless Green (1:00 to end)
-
D. Code: Finish Shameless Green
-
-
Read: Block 19 Introduction
-
A. Watch: Handling a New Requirement (up to 2:54)
-
B. Code: Attempt DRYing out House
-
C. Watch: Handling a New Requirement (2:54 to end)
-
D. Code: Finish DRYing out House
-
-
Read: Block 20 Introduction
-
A. Watch: Using Inheritance
FREE PREVIEW
-
B. Ponder: Inheritance in Your Own Code
-
-
Read: Block 21 Introduction
-
A. Watch: Understanding Composition (up to 9:45)
-
B. Code: Write Random and Pirate House
-
C. Watch: Understanding Composition (9:45 to 12:17)
-
D. Code: Write Random House With 'Jack Built' Always Last (Escalation #1)
-
E. Watch: Understanding Composition (12:17 to end)
-
F. Code: Finish Escalation #1 of House
-
-
Read: Block 22 Introduction
-
A. Watch: Seeking Abstractions (up to 1:05)
-
B. Code: Randomize Actor/Action
-
C. Watch: Seeking Abstractions (1:05 to the end)
-
D. Code: Randomize Actor/Action
-
-
Read: Block 23 Introduction
-
A. Watch: Loosening Coupling
-
-
-
Read: Block 24 Introduction
-
A. Watch: One Final Requirement (up to 1:05)
-
B. Code: Randomize Actor/Modifier/Action
-
C. Watch: One Final Requirement (1:05 to end)
-
D. Code: Randomize Actor/Modifier/Action
-
-
Watch: Nothing is Something
-