Clean Code - Uncle Bob

"Coding Better World Together" is a set of master lessons from the famous Uncle Bob (Robert Cecil Martin), where he gives us a broad vision of the importance and future of Software in today's society.

In this sixth lesson, Uncle Bob portrays us through different situations, the problem of adjusting software production time to delivery times. A divergence between the needs of the client and the commercial commitments, and the needs of the programmer to produce quality software.

To solve the problem of the temporary gap between production and the deadline, Uncle Bob teaches us the basics of Agile development techniques for the optimal management of software projects.

Lesson 1

Clean Code - Uncle Bob - Lesson 1

  • 0:00 Event Presentation
  • 2:03 Presenter Introduces Uncle Bob
  • 3:41 Uncle Bob Introduction / My Tribe
  • 4:49 How Far is the Sun?
  • 10:52 Introduction to Clean Code
  • 12:21 The current Society works with Software
  • 19:47 Volkswagen case / Introduction to the Ethics of Software Development
  • 24:28 Why are Programmers so slow?
  • 32:13 What is a Clean Code?
  • 40:09 Analyzing some lines of code
  • 43:43 Long code is not Good Code
  • 49:25 Good Code / Refactored Function
  • 52:40 Polite Code / Rules for writing a news paper article
  • 55:25 Shrunk Code / The Rules of Functions
  • 1:00:23 Shrunk Code / Drawing a Function
  • 1:05:36 When and why was Java invented?
  • 1:08:52 Prose Code / Arguments
  • 1:16:13 Avoid Switch Statements / Problems and Evolution of some programming languages
  • 1:26:15 The Uncle Bob's wife message (funny moment)
  • 1:27:22 Output Arguments No Side Effects / Garbage Collection
  • 1:32:21 No Side Effects / Using Lambda
  • 1:34:26 No Side Effects / Command and Query Separation
  • 1:35:30 No Side Effects / Prefer Exceptions to returning error codes
  • 1:37:05 DRI Principle (Don't Repeat Yourself)
  • 1:39:21 Structured Programming / Edsger Dijkstra Vision vs Actual Vision of the programming

Lesson 2

Clean Code - Uncle Bob - Lesson 2

  • 0:00 Where did the moon come from?
  • 4:56 What is the Purpose of the Comment? / About Fortran
  • 8:47 Schindler List / Right and Wrong reason to do comment
  • 10:02 Comments are a last resort / The proper use of comments
  • 11:02 Comments Lie
  • 13:07 Comments do not make up for bad code / Explain Yourself in code
  • 15:11 Legal and Informative Comments / About Design Patterns book
  • 20:43 Explanation of Intent / Clarification
  • 23:21 Warning of Consequences / TODO Comments
  • 25:59 Amplification / Javadocs in Public APIs
  • 27:35 Bad and Redundant Comments / Mumbling
  • 31:25 Mandated Comments
  • 33:01 Journal Comments / Source code control system
  • 34:16 Noise Comments / Scary Noise / Use explanatory code, not comments
  • 36:20 Position Markers / Closing Brace Comments / Attributions and Bylines
  • 37:43 Commented - Out Code / HTML in comments ICK!
  • 40:05 Non - Local Information
  • 41:45 How many lines should there be in a source file?
  • 46:31 Analysis of the lengths of lines
  • 50:11 Names are Everywhere / Reveal your intent / Rules to write Names
  • 58:44 Disambiguate / Avoid Convenient Mispellings
  • 1:00:41 Number Series / Noise Words / Distinguish Names Meaninfully
  • 1:02:55 How much time should you spend on a Code Review?

Lesson 3

Clean Code - Uncle Bob - Lesson 3

  • 0:00 Start
  • 0:23 About our genetic origins.
  • 9:36 I am your new CTO / About the growth rate of programmers and it effects.
  • 17:25 Expectations / We will Not Ship Shit.
  • 21:36 We will always be ready / Iteration Length.
  • 25:51 Stable Productivity.
  • 28:14 Inexpensive Adaptability / The software must be changeable.
  • 30:38 Continuous Improvement / The code should improve over time.
  • 31:46 Fearless Competence / Conquer the fear with Test.
  • 42:35 We will not dump on QA / QA will find nothing.
  • 46:30 Automation!
  • 51:20 We cover for each other / Teamwork.
  • 55:40 Introduction to "Honest Estimates".

Lesson 4

Clean Code - Uncle Bob - Lesson 4

  • 0:00 Opening.
  • 0:51 Honest Estimates / What is the chemical formula of water?
  • 7:16 Selection, Secuence and Interaction / No innovations have been made in the software for decades.
  • 13:48 The Hardware has gone crazy!: comparison between the innovation level of hardware and software today.
  • 17:33 You to say "No".
  • 21:40 Test-Driven Development / TDD rules.
  • 36:14 Our code is a document / Double entry Bookkeeping.
  • 40:22 About inheritance / Mutation Testing.
  • 43:48 Demo of Test-Driven Development.
  • 1:12:23 Some tips to learn and practice Test-Driven Development.
  • 1:15:03 Questions and Answers.

Lesson 5

Clean Code - Uncle Bob - Lesson 5

  • 0:00 Opening.
  • 3:25 Dick Vlot about Architecture and Agile Software Development.
  • 9:30 Presentation of Uncle Bob.
  • 11:19 Diffraction: Why do incandescent lights glow?
  • 15:27 Architecture Introduction / I've built lots of apps / "I want to be a programmer" anecdote.
  • 26:09 The Architecture rules are independent of every other variable.
  • 29:21 Working vs. Right.
  • 30:45 What is Design in Architecture?
  • 31:50 What is the goal of Software Architecture?
  • 33:28 Case study of bad Architecture.
  • 38:55 Executive View / What went wrong / Secret to going fast.
  • 44:43 Messes aren't faster even in the short term.
  • 48:15 Solution of the Executive's Dilema / Two Values of Sofware.
  • 52:41 Behavior / Are we going to see self driving cars?
  • 1:00:14 Scope vs. Shape / Stakeholders want changes.
  • 1:10:33 Urgency and Importance / Eisenhower Matrix.
  • 1:13:09 Fight for the Architecture.
  • 1:15:14 A Rails App / The web is a Ddelivery Mechanism.
  • 1:19:06 Architecture Floor Plans / A Use Case Driven Approach.
  • 1:24:05 Interactors / Entities / Interfaces Objects.
  • 1:27:11 Request Model.
  • 1:30:21 What about MCV? / Design Patterns / How MCV goes wrong as a web Architecture.
  • 1:34:53 Model View Presenter / Dependency Rule.
  • 1:39:10 What about the Database? / The Database is a detail / ORM
  • 1:48:00 Fitnesse: a wiki page porject development.
  • 1:53:54 A good Architecture allows major decisions to be defered! / About IntelliJ and Visual

Lesson 6

Clean Code - Uncle Bob - Lesson 6

  • 0:00 Start
  • 0:18 Leds / Introduction.
  • 6:54 How do you manage a software project?
  • 12:54 Finding the optimum solution / Data.
  • 21:04 What is the firts thing know about project / The Management Paradox.
  • 23:33 The Waterfall Model.
  • 34:13 Iterative Development / Calculate Day.
  • 39:09 The Control Knobs of project mgt.
  • 48:51 Short Cycles / Agile Software Development Practices / Extreme Programming.
  • 1:14:16 Questions and Answers.