Skip to content
0:00 / 0:00

#cleanarchitecture#usecases#boundaries

Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin

Confreaks

42K subscribers • 73 videos on Hallway • Conference channel

YouTube
  • Recommended by 13 people: 10 on Hacker News, 1 in engineering communities and 2 curated lists.
  • A classic. People kept recommending it from 2013 to 2022.
  • Presented by Robert C. Martin, author of Clean Code
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

172K views14 years ago13 recommendations

Software designTools and practiceSoftware architectureDesign patternsTesting

Robert C. Martin argues that software architecture should express the application's intent rather than being dominated by its delivery mechanisms and frameworks.

Robert C. Martin (Uncle Bob) has been a software professional since 1970. In the last 40 years, he has worked in various capacities on literally hundreds of software projects. He has authored "landmark" books on Agile Programming, Extreme Programming, UML, Object-Oriented Programming, C++ Programming and Clean Code. He has published dozens of articles in various trade journals. Today, he is one of the software industry's leading authorities on Agile software development and is a regular speaker at international conferences and trade shows. He is a former editor of the C++ Report and writes regular blogs at cleancoder.posterous.com/.

Why it's here

13 people recommend this, 1 disputes it

What people say. Recommended as a classic talk on decoupling application business logic from frameworks like Ruby on Rails and making the web a delivery detail.

mpweiheron Hacker News • Recommends

On “TDD is fun”

…uirements well enough to actually write a test for them. And the OP is also right in that Rails is a bad environment for TDD, as far as I can tell, because all the magic and auto-integration gets in the way and has to be laboriously stubbed/mocked etc. Maybe it's time the community got over Rails. (See also Uncle Bob's excellent architecture talk: link to this video ).…

catwellon Hacker News • Recommends

On “Ask HN: What are some of the best technical talks you've heard?”

The talk that had the most influence on how I write software is Robert 'Uncle Bob' Martin's "Architecture: The Lost Years" 1. Being a Ruby conference keynote, it helps if you know how Ruby on Rails works, but the lessons apply to all software. Another one would be "Let It Crash! The Erlang Approach to Building Reliable Services" by Brian Troutwine. 2 I don't know if you would call it "technical" but Brett Slatkin's talk on Cohort Analysis is something anyone interested in tools to analyze how our users behave should watch. 3 1 link to this video 2 link 3 link

SevenNationon Hacker News • Recommends

On “Using a framework will harm the maintenance of your software”

…ourself. This is a false dichotomy. We can use libraries and frameworks just fine. ... > But we should give them a clear, and well-isolated place in our project. ... There's an excellent, if older, presentation called "Architecture, the Lost Years" that addresses exactly this problem and gives very specific, actionable guidance on how to solve it: link to this video But how to pull off this decoupling? The answer is both obvious and surprising. Define a boundary. On one side is the framework. On the other side is your code. Through the boundary, only dumb data structure can pass. JSON works. So do structs. So does XML. The point is that these are behaviorless blobs of data. This buys you a lot. You can…

programming-talkscurated list on GitHubRecommends

Under “Software Development”

Architecture the Lost Years 01:06:38 by **Robert C. Martin** (2011)

awesome-talkscurated list on GitHubRecommends

Under “Software Design”

Architecture the Lost Years by **Robert C. Martin** (Ruby Midwest 2011) 1:06:38

jared314on Hacker News • Recommends

On “Code Organization in Large AngularJS and JavaScript Applications”

This reminds me of the beginning of Bob Martin's keynote0 at Ruby Midwest 20111. I don't agree with everything he said, but the code organization point is sound. 0 link to this video 1 link

Anchoron Hacker News • Recommends

On “Slow Tests Are the Symptom, Not the Cause”

Here's Uncle Bob talking on his version of the idea extensively: link to this video The main idea is to separate the system into entities, interactors and boundaries, which correspond roughly to model, controllers and interfaces+DTOs (Data Transfer Objects), but with the difference that model classes are not exposed through the interfaces. Rather, the DTOs are used to communicate the changes in the data. We have been using this approach for a year now, with REST on top, and it so far has worked beautifully. The entities map naturally to REST resources and DTOs makes nice request and response classes. Armed with CQRS (now I sound enterprise-y), the data storage is easy to work with using the same DTOs (…

programminggeekon Hacker News • Recommends

On “Crystal: the programming language”

…u design differently and without side effects. All of a sudden testing becomes easier, faster, cheaper for large parts of your codebase. You have simpler solutions that are potentially easier to reason about because the complex (and sometimes elegant) solutions aren't so readily available. A few talks that are around this style of thinking: link link to this video link link Boundaries are good, values are good, simple things that work together are good. The more we can take the good parts and form them together into a cohesive language/framework/platform, the better our software will be.…

jxxcarlsonon Hacker News • Recommends

On “Hanami – web framework for Ruby”

My (limited)experience is that when a rails app gets too big, it becomes hard to manage. That was my case, anyway. The architecture of hanami promotes longterm developer sanity. The fact that views are objects and the existence of interactors is a real plus. See this old Uncle Bob video re interactors: link to this video

dreistdreiston Hacker News • Recommends

On “Ask HN: 8 years working, now 3-4 months off to learn. Looking for advice”

Microsoft Application Architecture Guide link Domain Driven Design (The book is hard to read, but worth it I think) link This uncle bob talk is not too bad link to this video I think the microsoft guide is the most comprehensive, but don't limit yourself to it.

cellularmitosison Hacker News • Recommends

On “My bag of tricks – loose notes, design patterns, rules-of-thumb”

This "Architecture: the lost years" keynote from uncle bob was helpful for me: link to this video I've also struggled with this notion of "untestable" code. Untestable code seems to usually be a big pile of function calls. Testable code seems to be little islands of functionality which are connected by interfaces where only data is exchanged. Practically, this seems to be about shying away from interfaces which look like 'doThis()', 'doThat()', and more like 'apply(data)'. Less imperative micro-management and more functional-core/imperative-shell. Edit: a network analogy might be: think about the differences between a remote procedure call API vs. simply exchanging declarative data (REST).

Barreraon Hacker News • Recommends

On “Unit Testing is Overrated (2020)”

…thing is worth watching to put it into context. This is the kind of thing that never seems to get discussed in these pieces praising integration tests over unit tests. For even better results, ditch the classes altogether and just use functions. It's quite surprising how badly designs come off the rails with the "everything is a class" model. 1 link to this video…

u/zie1onyin r/softwarearchitecture • Recommends

Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin

jshenon Hacker News • Disputes

On “RIP TDD”

Neither of us ever said all TDD folks are cultist. We are both tired of being told that we are absolutely doing it wrong if we don't practice TDD. For an example of people telling us this please see this talk by bob Martin and jump to the 58 minute mark. link to this video Bob is not an obscure figure by any stretch of the imagination. You have admitted to having no real data to back up the claim that writing tests first leads to better code, yet we have bob here telling us we are absolutely wrong if we don't follow his religion.

jshenon Hacker News • Disputes

On “When TDD Doesn't Work”

"Over the years many people have complained about the so-called "religiosity" of some of the proponents of Test Driven Development. " And Bob is guilty of that religiosity himself. See here link to this video Jump to the 58 minute mark if it doesn't automatically.

jshenon Hacker News • Disputes

On “How testability can help”

…saying that you are absolutely doing it wrong if you don't write your tests before your code and if you don't restrict your writing of app code to the pure case of making a failing test which you wrote first pass. This is an extremist ideology, and many of us are tired of having this thrown in our face over and over again. Here is Bob saying this: link to this video No one said, "testability is a meaningless goal", and it's dishonest to say that. We're saying that the extreme to which the TDD crowd takes this good general guideline is bad, and their insistence that anyone who doesn't do it that way is doing it wrong is growing very tired and someone has to speak up against it.…