Тёмный

Intentional Code - Minimalism in a World of Dogmatic Design - David Whitney - Copenhagen DevFest 

NDC Conferences
Подписаться 194 тыс.
Просмотров 8 тыс.
50% 1

This talk was recorded at NDC's Copenhagen Developer's Festival. #cphdevfest #ndcconferences #design #software #softwaredeveloper
Attend the next NDC conference near you:
ndcconferences.com
cphdevfest.com/
Subscribe to our RU-vid channel and learn every day:
/‪@NDC‬
A brief history of Design in software, reflecting on the history of the design patterns movement, clean code, and the long shadow they have cast over software development in the 2010s and beyond.
In this session we'll talk about intentionality in software design - and how you can radically simplify the way you build applications today to make them more meaningful to the humans that maintain them.
A radical look into why *every single character matters*, and why you should probably burn your copies of Clean Code.

Наука

Опубликовано:

 

31 окт 2023

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 24   
@jordanfarr3157
@jordanfarr3157 8 месяцев назад
This is the single best speaker I've seen from the entire NDC talks series and I can't believe how little love it's gotten. The crystallization of ideas in this talk has improved my code so so much. Also: VOLA is a seriously killer band -- always happy to see them getting love!
@edgeeffect
@edgeeffect 8 месяцев назад
2:20 "Why would someone do this?" - The main reasons I've found are "Rails, Symfony, Laravel, (insert some random Java framework here)".... Hmmmm..... Anyone want to join my cargo cult?
@babgab
@babgab 7 месяцев назад
24:31 Big-budget video games still ship on physical media. Low-budget video games that ship digitally are still fairly self-contained apps that run as a small number of processes directly on the users' machines. Advice targeting the "ship once on physical media" is still valid for game developers.
@AntonKeks
@AntonKeks 8 месяцев назад
Didn't quite get what is wrong with Clean Code book. Otherwise, a great talk reflecting much of my own experience
@babgab
@babgab 7 месяцев назад
Search for an article entitled "It's probably time to stop recommending Clean Code" for more detail, but I'll try to summarize what I've seen. It promotes a style of programming that makes code testable, but also incomprehensible. The speaker talks about cognitive load. In the book itself, a simple function that could be written in 20 lines is spread out over dozens of tiny 3 line functions and sometimes multiple classes, with all the ensuing boilerplate that a programmer reading the code then has to wade through. The style of extreme decoupling of everything tends to lead to low-performance on modern hardware, as well, so people in video games and similar industries tend to treat it with a lot of skepticism. Others have also pointed out that it is ostensibly a book for people newish to software design. Now, people newish to software design tend to interpret any rules they're given dogmatically. Clean Code advocates tend to say "well you shouldn't be dogmatic about it, it's just supposed to be advice for you to think about and you should think critically." Well, newbies kind of can't think critically yet because they lack experience, so that would seem to suggest that the book is for experts, but actual experts also don't really need the book, because they're already experts with pre-existing opinions on what good design is that has been won through actual experience in whatever field they actually work in. So, who's the book really for? (Some believe it's really making RCM money so he doesn't actually have to write software for a living, but of course nobody can really prove that)
@babgab
@babgab 7 месяцев назад
"If you don't understand why, you should stop doing it" A-freaking men.
@ThugLifeModafocah
@ThugLifeModafocah 8 месяцев назад
I believe that something else is the reason to clean code being presented as something not aligned to the intentional code. There is several parts in clean code stating that the code should be read like a newspapper, functions should be small and having meaningful names... so I didnt get the usage of clean code as dogmatic and not focused on intentional.
@babgab
@babgab 7 месяцев назад
Clean Code promotes having functions that are *too* small, that have no real reason to exist as separate entities except to satisfy the "no function longer than 7 lines" rules. Also, the SOLID principles are mostly too vague to be directly applicable to code, despite being presented as such, and they are so widely misunderstood that people can argue for hours over whether putting particular thing in a particular class is (for example) a single responsibility principle violation. Maybe it was helpful in getting some conversations going, but enough devs treat it as this kind of magical scheme that lets you have good code without thinking about it very hard as long as you follow the rules that some of us feel it hasn't been a net-positive for the industry.
@ThugLifeModafocah
@ThugLifeModafocah 7 месяцев назад
@@babgab it's been awhile now that I dont touch the book, but I dont remember this 7 lines rules. But I agree with some of your considerations. Not all.
@babgab
@babgab 7 месяцев назад
​@@ThugLifeModafocah He doesn't say "7 lines" directly, so I was misremembering. It's actually kind of worse - he shares a story about going to visit Kent Beck and seeing that all of Beck's functions were 2-4 lines long! And then he shares a refactoring he does of some perfectly understandable code into a horrible incomprehensible wall of text where every function is like 2-4 lines. Pull out your copy and go and read listings 3-1 (original, about 50ish lines) and 3-7 (three pages! THREE!). Compare them. I will tell you up front now, that if you tell me that the sprawling boilerplate vomit that is 3-7 is easier for you to understand, then I will not believe you and if you insist, then I can only assume your eyes do not work the same way mine do and your brain doesn't like nice linear stories as mine does. Instead I can only assume it likes to read code by repeatedly pressing "go to definition" and building a ton of mental context, absolutely ripe for dropping at the first interruption by your coworkers. We have practicing software developers reading this crap and gaslighting themselves into believing that it is the sole right way to do things and that everyone must follow these rules...
@ThugLifeModafocah
@ThugLifeModafocah 7 месяцев назад
@@babgab it is easier to understand because you are not talking in "code" anymore, you are making intentions explicit. Intentions matter most, to us human, than plain algorithm. You write: function processSomething() { goDoX(); goDoY(); const z = goGetZ(); goDoSomethingWith(z); } This is way better than putting all the logic of each method inside processSomething and have lots of variables and flows to wrap your head around it. If you need to fix something with z, probably you can go directly into do something with z to see why it is weird... 6 months after you writing the code you get back and then you need to learn it all over again, because you forgot why you did a logic in some particular way and not the other. I prefer reveal intention over implementation detail. There's an awesome article from Martin Fowler about it (martinfowler.com/bliki/FunctionLength.html), and I agree 100% with him because I was a victim of myself from 6 months ago too many times to keep letting him harm myself today.
@babgab
@babgab 7 месяцев назад
30:38 This sounds like the "entity-component-system" brain worms that seems to infect every game programmer at some point in their career. :D
@David-V-McKay
@David-V-McKay 8 месяцев назад
Can't watch, audio too quiet. Please rebalance audio levels
@eazypeazy8559
@eazypeazy8559 8 месяцев назад
actually cool dude with cool ideas, but the audio and scene light is awful
@kahnfatman
@kahnfatman 8 месяцев назад
What patterns? It's all Objects and Morphisms.
@pavelhamanovich4951
@pavelhamanovich4951 8 месяцев назад
​@@vilelivewhat pointers and register manipulations? It's just electric circuits
@NickFields4
@NickFields4 8 месяцев назад
@@pavelhamanovich4951what electric circuits? It's all just inscrutable (sub)atomic particles.
@UnicornLaunching
@UnicornLaunching 4 месяца назад
@@NickFields4 what particles? it's all ratiocentrism and the musica universalis
@babgab
@babgab 7 месяцев назад
Ugh TDD... It has its place, but there are more ways to iterate on software than just writing a test. The notion that you'd create an API with ONLY the test as a user of that API is also kind of weird to me. Why are you writing an API if you don't already have a use case that motivates the API's existence in the first place? Seems like a thing targeted at people who don't actually use their own software and just write chunks of code at the behest of others, for others to integrate.
@BryonLape
@BryonLape 8 месяцев назад
Why? There are zillions of books that show this architecture. There are wizards that will set it up. There are build and deployment apps that require it.
@edgeeffect
@edgeeffect 8 месяцев назад
There's just 3 or 4 words missing from your comment that render it almost totally meaningless.
@MyAlexWest
@MyAlexWest 8 месяцев назад
DUDE badly needs haircut!
@KarolHaltenberger
@KarolHaltenberger 8 месяцев назад
And a new wardrobe.
@GiveMeSomeMeshuggah
@GiveMeSomeMeshuggah 8 месяцев назад
Nah, that look has intentionality. I’m here for it.
Далее
The STUPID MYTH Of Genius Software Developers
16:35
Просмотров 18 тыс.
Why I Quit the Scrum Alliance
7:58
Просмотров 11 тыс.
So You Think You Know Git - FOSDEM 2024
47:00
Просмотров 1 млн