Good videos, with context.
Bob Martin   SOLID Principles of Object Oriented and Agile Design

Bob Martin SOLID Principles of Object Oriented and Agile Design

People career
0 HN recommenders · discussed 2017–2017
Open YouTube ↗

About this video

Robert C. Martin (Uncle Bob) gives a talk on the SOLID principles of object-oriented and agile design, in the context of encapsulation and clean code.

Why it appears in the archive

Cited in discussions of OO design, access modifiers and private fields, and why writing messy code slows you down.

AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.

From the Hacker News discussion

Ace17 · 2017-06 · reference

> Except that languages which try to provide facilities for this principle have bolted it on in the wrong way and we as an industry have come to accept some other feature ("public/final/private" keyword languages) to mean we have, "encapsulation," in our language. Actually, there's an interesting talk from Uncle Bob saying exactly that: [VIDEO] The idea is that public/private/protected is an attempt to restore some of the "perfect" encapsulation we had with C; and that we lost this encapsulation with OO langages.

Read original comment ↗
agentultra · 2017-08 · reference

The keywords were reserved in the latest spec for just this purpose. I don't think the rationale for their inclusion is a good one. The inclusion of such keywords in languages like C++, Java, etc was well-meaning but a mistake in retrospect. In the presence of global variables and direct assignment these keywords are the PHB approach to information hiding. They require ceremony and diligence to achieve true encapsulation. It's a murky situation at best. See Bob Martin [VIDEO] and Bertrand Meyer on Eiffel: [LINK] (Bertrand Meyer coined the Open/Closed Principle and is the developer behind Eiffel). At this point though I see their inclusion in JS being almost inevitable. Just another feature to ignore. It'd be nicer if they would look to add syntax for higher-order operators like compose to the language instead of this.

Read original comment ↗
rimliu · 2017-12 · reference

Do they care if a year down the road your maintenance costs increase fivefold? Have they seen the analysis which shows that initial development cost just makes a small fraction of the total cost and that fraction get smaller the longer software is in use? Do they care if a year down the road your TTM times increase tenfold? We know that the bad code slows us down. Why do we write it? Why do we write the code that slows us down? How much does it slow us down? It slows us down a lot. And every time we touch the modules we get slowed down again. Every time we touch bad code it slows us down, what do we write this stuff what slows us down? And the answer to that is: well we have to go fast. I'll let you to deal with the logical inconsistency there, my message to you today is—you don't go fast by writing crap. [VIDEO]

Read original comment ↗