Skip to content

Instantly share code, notes, and snippets.

@amatiasq
Last active August 26, 2020 13:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amatiasq/434a6cae6272e79605317d20dd2d2f82 to your computer and use it in GitHub Desktop.
Save amatiasq/434a6cae6272e79605317d20dd2d2f82 to your computer and use it in GitHub Desktop.
let url = '';
a
.split('\n')
.map(x => {
if (!x) {
return x;
}
if (x.startsWith('- [Lesson ')) {
const match = x.match(/\]\((https:.*)\)$/);
url = match[1];
return x;
}
const match = x.match(/^\s+- (\d+):(\d+)(?::(\d+))?/)
const time = Array.from(match).slice(1).filter(Boolean).map(x => parseInt(x, 10))
const hours = time.length === 3 ? time.shift() : 0;
const minutes = time.shift();
const seconds = time.shift();
const strHour = hours ? `${hours}h` : ''
const strMins = hours || minutes ? `${minutes}m` : ''
const strSecs = hours || minutes || seconds ? `${seconds}s` : ''
const t = strSecs ? `${strHour}${strMins}${strSecs}` : '0';
return x.replace(/(\d+:\d+(:\d+)?)\s+/, `[$1](${url}&t=${t}) `)
})
.join('\n')
const a = `- [Lesson 1 - Clean Code](https://www.youtube.com/watch?v=7EmboKQH8lM)
- 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 - 1:45:32 Science and Correct Software
- [Lesson 2 - Comments](https://www.youtube.com/watch?v=2a_ytyt9sf8)
- 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 - Professionalism](https://www.youtube.com/watch?v=Qjywrq2gM8o)
- 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 - TDD](https://www.youtube.com/watch?v=58jGpV2Cg50)
- 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 - Architecture](https://www.youtube.com/watch?v=sn0aFEMVTpA)
- 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 Studio.
- 2:03:44 Frameworks / Plugin Model.
- [Lesson 6 - Agile](https://www.youtube.com/watch?v=l-gF0vDhJVI)
- 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.
`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment