Ep 1: Names
Names

"The Secret Base"
- Names are everywhere
- The 7 levels of names
- Dirty names vs. clean names
Ep 2: Methods - Basics
Methods - Basics

"The Submarine"
- Method naming conventions
- Pronounceable methods
- Verbs matter
Ep 3: Methods - Arguments
Methods - Arguments

"Under Attack"
- Minimize number of arguments
- Avoid flag arguments
- Convert arguments to state
Ep 4: Methods - Self-Explanatory Code
Methods - Self-Explanatory Code

"Satellite Heist Begins"
- The danger of obscure code
- Refactor to self-explanatory
- Compare before and after
Ep 5: Methods - Small Size
Methods - Small Size

"Stealing Access Codes"
- Why smaller methods?
- How to measure?
- Lines vs Responsibilities
Ep 6: Methods - Don't Repeat Yourself
Methods - Don't Repeat Yourself

"Scan the Sky"
- Duplicate code derails projects
- and contributes to high defect rates
- How to eliminate repetition
Ep 7: Methods - Separate Commands from Queries
Methods - Separate Commands from Queries

"Locating Satellites"
- Nasty unexpected surprises
- Don't mix command and queries
- Foundation for side effects
Ep 8: Methods - Avoid Adding Side Effects
Methods - Avoid Adding Side Effects

"Laser Focused"
- Side effects hurt
- Unexpected behaviour
- How to avoid them
Ep 9: Methods - Use Single Responsibility Principle
Methods - Use Single Responsibility Principle

"What a Mess!"
- Do one thing in each method
- Why is it so important?
- How to achieve that
Ep 10: Methods - Same Level of Abstraction
Methods - Same Level of Abstraction

"Back on Track"
- Same levels of abstraction in the world
- Mixed levels of abstraction in code
- Different VS same levels of abstraction
Ep 11: Methods - Plan Error Handling
Methods - Plan Error Handling

"Enough is Enough"
- The two extremes in error handling
- Not enough VS too much
- Plan error handling
Ep 12: Methods - Simplify Error Handling. Part 1
Methods - Simplify Error Handling. Part 1

"The Turning Point"
- Keep exception handling simple
- Introduce validators
- Use exceptions properly
Ep 13: Methods - Simplify Error Handling. Part 2
Methods - Simplify Error Handling. Part 2

"Back to the Orbit"
- Provide meaningful context
- Encapsulate error handling
- Use special case pattern
Ep 14: Dirty Comments
Dirty Comments

"Is It Over?"
- The danger or dirty comments
- The 9 dirty comment patterns
- Eliminate ruthlessly
Ep 15: Clean Comments
Clean Comments

"Last Hope"
- Sometimes comments are a must
- The 3 clean comment patterns
- Introduce carefully
Ep 16: Classes - Intro
Classes - Intro

"It's Time to Rescue Subs"
- Why care about classes?
- Misusing classes hurts
- Important building blocks
Ep 17: Classes - Single Responsibility Principle
Classes - Single Responsibility Principle

"We Found Them!"
- Highly coherent & loosely coupled classes
- Getting rid of bloated classes
- Classes should be small
Ep 18: Classes - Decomposing Complexity
Classes - Decomposing Complexity

"Extraction"
- Tackling complexity via classes
- Decomposition is the key
- Reusability as a bonus
Ep 19: Classes - Same Level of Abstraction
Classes - Same Level of Abstraction

"Rescued!"
- Why same level of abstraction?
- Why not to mix?
- Saving time for the whole team
Ep 20: Packages/Folders - Intro
Packages/Folders - Intro

"Secret Base Search Begins..."
- Why care about packages?
- Misusing classes hurts
- Important building blocks
Ep 21: Packages/Folders - Single Responsibility Principle
Packages/Folders - Single Responsibility Principle

"A-76"
- Highly coherent & loosely coupled packages
- Getting rid of bloated packages
- Packages should be small
Ep 22: Packages/Folders - Decomposing Complexity
Packages/Folders - Decomposing Complexity

"We Are In!"
- Tackling complexity via packages
- Decomposition is the key
- Reusability as a bonus
Ep 23: Packages/Folders - Same Level of Abstraction
Packages/Folders - Same Level of Abstraction

"It's Getting Complicated..."
- Why same level of abstraction?
- Why not to mix?
- Saving time for the whole team
