Major thanks to the director who knows exactly what we want to see. Not the slide that has the code, rather the speaker drinking a glass of water
Having some beer and watching Uncle Bob videos this evening. Better than anything on Netflix.
"You are not done when it works, you are done when it's right." Uncle bob
30:25 - After finally getting some piece of code to work, you're only done with half the job; you should spend roughly the same amount of time cleaning it. No one writes clean code first because it's just too hard to get code to work. 46:12 - Every line of a function should be on the same level of abstraction, and that level should be one below the name of the function. 52:22 - Polite code allows the reader to exit (=stop reading) early. 58:45 - A function does one thing if you cannot meaningfully extract another function from it. 1:32:22 - To make a method pair safe (remove side effect), use a lambda that does all the processing. 1:34:34 - A function that returns void must have a side effect, otherwise there would be no point in calling it. A function that returns a value should have no side effects. 1:36:00 - A function that has a try/catch block should have no other content beside that block. Within the try block, there should only be a single function call (the actual function that throws the exception).
I see developers are complaining about the presentation length but as an engineer, I really loved the way he framed the talk from the solar system to a java function. of course, what better example than a man who calculated the sun's distance at 250 bc without any modern tools to understand our lack of creativity and patience for shitty code.
After 40 years of programming, I experienced all the cases described. I just want to say how great you describe the feeling when reading code. At this level, clean code becomes poetry.
I have been a programmer in the 80s. In between I worked with databases a big chunk, took on the IoT, Gui, and now getting back to basics again. It was interesting how things changed over time when in the past, we knew there are better ways but there was just not enough 'time' and not enough powerful hardware. Thank you for making this lecture public. I utterly enjoyed it and the nearly 2 hours flew by. I also sent the link to my daughter who is studying computer engineering at the moment. Thanks a million!
I love how he always adds some completely unrelated, but super interesting things from other areas of expertise at the beginning of his presentations.
37:00 It is more important to make your code understandable by your peers rather than by the computer.
Management is the final decision makers. Delivery is the focus in corporates. No sayer's are thrown out. It's ok I was thrown out. But i am glad to learn the standards and follow the practices. I am learning and practicing the clean code very late at my age of 38, but i am glad I could see the big difference while coding. Thanks uncle bob.
This is genius. I laughed so hard because i can realte soooo much to this. Im new to my company and spend like 6 months here and experienced all of it already. Sucking out the energy of my team by being new and unexperienced, experiencing the mess of fixing exisiting code vs the speed of building a green field project etc.
So it's been a few years now since I returned to Uncle Bob, and wow... I must say. He inspired me way back when I was no longer a Junior and hoping to ascend into a more senior position. And now I'm finding myself equally nodding and shaking my head at several points he's mentioning. Predicting them or criticising them. He was not the only influence, but he was a pivotal person in putting me down the path of better code, to try things for myself and form my own opinions. And above all else, I noted just how well he delivered his sessions. He speaks about code, and there's definitely competency there that he builds upon. But his ability to teach, and capture attention, to narrate and inspire or motivate is impeccable. That's the next big challenge - present what you know to juniors and seniors, and do it in a way that leaves them wanting more, not nursing a headache!
loved 31:54 .. " You are not done when it works , you are done when it's right" . I must say he really makes you look at programming with a different lens . Thanks for sharing this
This talk was groundbreaking when I was fresh in the field. But watching it through again, I swear he has taken a 10 minute lesson and stretched it five hours.
This lecture is filled with pure knowledge of software engineering.
The presentation is structured in the same way he described from abstract to detailed, lovely.
This was not only precious but very helpful to me. I though that breaking long functions would lead to more complicated code. However, having the mindset portrayed in this video, I managed to break my functions into its "do one thing" components, and even managed to eliminate redundant variables. And, not as I initially thought, my code is far more readable and maintainable. If there is a bug, you can quickly go to the function you think it is responsible for it, instead of zooming in into long functions and loose yourself. Props to this man! He enlightened me, made me see my own mistakes, and substancially made my life easier as a programmer.
Code snapshots 41:15 page 1 wiki code 42:27 page 2 wiki code 44:04 page 3 wiki code 50:11 Refactored wiki code
This is probably the greatest talk ever made by someone from our field.
@unitycoin_original