Top all-time · #172
The Clean Code Blog
Personal blog · blog.cleancoder.com/uncle-bobprogrammingcareer
The Clean Code Blog is a personal blog at blog.cleancoder.com about programming and career. Since 2014, 250 different Hacker News readers have linked it 353 times, most often “My Lawn”. The last post was in 2023, but the archive is still widely read.
Sometimes recommended · 9 of 40 sampled comments recommend it?
Why HN links it
HN readers link Martin's blog for essays on clean architecture, TDD, single responsibility and the programmer-age 'MyLawn' post, mostly as citations, with a few explicit praises and two critiques.
Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- My Lawn14 people · 15 mentions · first linked 2014-06-21
- Clean Architecture: Dependency Inversion13 people · 14 mentions · first linked 2019-05-10
- The Dark Path10 people · 10 mentions · first linked 2017-01-11
- Tools are not the Answer9 people · 9 mentions · first linked 2017-10-04
- Why Clojure?7 people · 7 mentions · first linked 2019-08-22
- The Programmer's Oath7 people · 7 mentions · first linked 2015-11-18
- Types and Tests (by Uncle Bob)6 people · 6 mentions · first linked 2017-01-13
- Uncle Bob: The Software Crafters Movement Is the New Agile6 people · 6 mentions · first linked 2018-10-24
- Clean Code: FP vs. OO (2018)6 people · 6 mentions · first linked 2018-10-29
- /uncle-bob/2014/06/20/MyLawn.html5 people · 6 mentions · first linked 2019-03-28
What Hacker News says?
I'd suggest going through all Uncle Bob Martin[1]s talks on clean code. He has a great article (2014), old, on why you may not want to build that framework at all[2] too: > Using a framework requires a significant commitment. By accepting the framework into your code, you surrender your control over the details that the framework manages. [...] > And yet despite the huge commitment you’ve made to the framework, the…
Comment linking /uncle-bob/2014/05/11/FrameworkBound.html
on “We lost 54k GitHub stars”Submitted Open Letter to the Linux Foundation as a story · 572 points
HN discussionI'm not an Uncle Bob fan by any stretch of the imagination, but he wrote a somewhat famous article about this phenomenon: http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html With each new wave - we get people that either lack the time, the willpower or the conditions to understand what came before them (the ground they're standing on), and this is how we end up rediscovering things every 2-3 years. It's much…
Comment linking /uncle-bob/2014/06/20/MyLawn.html
on “Fresh – Next-gen web framework”Submitted Blue. No, Yellow as a story · 337 points
HN discussionI never recommended Clean Code, but I've become a strong advocate against it on teams that I lead after reading opinions by Bob Martin such as this one: https://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath... . That whole article reads as someone who is stuck in their old ways and inflexible, then given their large soapbox tries to justify their discomfort and frustration. I consider Swift, Kotlin (and Rust)…
Comment linking /uncle-bob/2017/01/11/TheDarkPath.html
on “It's probably time to stop recommending Clean Code (2020)”Submitted Classes vs. Data Structures as a story · 311 points
HN discussionFor me Clean Code is not about slavishly adhering to the rules therein, but about guidelines to help make your code better if you follow them, in most circumstances. On his blog Bob Martin himself says about livable code vs pristinely clean code: "Does this rule apply to code? It absolutely does! When I write code I fight very hard to keep it clean. But there are also little places where I break the rules specifical…
Comment linking /uncle-bob/2018/08/13/TooClean.html
on “It's probably time to stop recommending Clean Code (2020)”Submitted Why Clojure? as a story · 248 points
HN discussionUncle bob agrees http://blog.cleancoder.com/uncle-bob/2015/11/18/TheProgramme...
Comment linking /uncle-bob/2015/11/18/TheProgrammersOath.html
on “Pastejacking”Submitted TDD Doesn't Work as a story · 153 points
HN discussionhttp://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html Uncle bob. This is five years ago, so if you have numbers that prove the opposite, now would be a good time to point that out.
Comment linking /uncle-bob/2014/06/20/MyLawn.html
on “Graying Out”Submitted REPL Driven Design as a story · 146 points
HN discussionThe number I saw was something like every 5 years the number of programmers doubles. So half if all devs have less than 5 years experience. And since most new devs are more likely to be closer to college age than retirement age devs tend to skew younger than 40 (probably by a lot). https://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html
Comment linking /uncle-bob/2014/06/20/MyLawn.html
on “Aging programmer”Submitted A Little Clojure as a story · 139 points
HN discussionUncle Bob always has some clever things to say on TDD too: http://blog.cleancoder.com/uncle-bob/2017/03/03/TDD-Harms-Ar... and: http://blog.cleancoder.com/uncle-bob/2016/11/10/TDD-Doesnt-w...
Comment linking /uncle-bob/2016/11/10/TDD-Doesnt-work.html
on “TDD did not live up to expectations”Submitted Giving Up on TDD as a story · 131 points
HN discussionThis largely concurs with clean architecture[1], especially considering his foreword containing hindsight. Clean architecture can be summarized thusly: 1. Bubble up mutation and I/O code. 2. Push business logic down. This is how it's stated in [1]: > The concentric circles represent different areas of software. In general, the further in you go, the higher level the software becomes. The outer circles are mechanisms…
Comment linking /uncle-bob/2012/08/13/the-clean-architecture.html
on “John Carmack on inlined code (2014)”Submitted VW as a story · 120 points
HN discussionYou have a very high standard for what 'proficient' means, and yet a very low one. That is, I am not proficient with relational databases, and I can handwave why an SDD is faster, and why data may disappear from an in-memory DB. But I couldn't do an outer join without help. Nor do I know when I would want to do one. Bob Martin wrote the essay at http://blog.cleancoder.com/uncle-bob/2017/12/09/Dbtails.html , in which…
Comment linking /uncle-bob/2017/12/09/Dbtails.html
on “Why SQLite Does Not Use Git”Submitted Dijkstra's Algorithm as a story · 119 points
HN discussionAbsolutely. [Uncle Bob is clear]( https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-a... ) that the inside circles must not know about the outside world. That is, your business logic is not allowed to know what a DB operation is, nor should it do any DB operations behind the scenes. > Frameworks and Drivers. > The outermost layer is generally composed of frameworks and tools such as the Database, the Web Fr…
Comment linking /uncle-bob/2012/08/13/the-clean-architecture.html
on “A Theory of Software Architecture”Submitted The Disinvitation as a story · 71 points
HN discussionThat is a recurrent point that Uncle Bob tends to do. In my opinion, sounds resonable. e.g.: http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html
Comment linking /uncle-bob/2014/06/20/MyLawn.html
on “On Getting Older in Tech”Submitted Pragmatic Functional Programming as a story · 71 points
HN discussionWhy isn't it discoverable? You know what type is returned by "To()" and if that has a BeCalled() method you can call it :) Now, the problem that requires an IDE, that many curse Scala for comes in when you have implicit things. So even if "To()" returns a WhateverTestDslElement that might not tell you anything because there might be a hundred implicit functions that convert WhateverTestDslElement to OtherFancyDslThi…
Comment linking /uncle-bob/images/2012-08-13-the-clean-architecture/CleanArchitecture.jpg
on “It's not what programming languages do, it's what they shepherd you to”Submitted Type Wars as a story · 59 points
HN discussionAgreed on the testing fetish and usually they're not valuable. Uncle Bob wrote about this last year and its something I wish everyone would read https://blog.cleancoder.com/uncle-bob/2017/10/03/TestContrav...
Comment linking /uncle-bob/2017/10/03/TestContravariance.html
on “Ask HN: What open source project, in your opinion, has the highest code quality?”Submitted The Startup Trap (2013) as a story · 54 points
HN discussion> When people talk about "unit tests", a unit doesn't refer to the common pattern of "a single class". A unit is a piece of the software with a clear boundary. It might be a whole microservice, or a chunk of a monolith that is internally consistent. This is a really important aspect, and I think is one of the key things that separates "journeyman" level from "master" on the subject of testing. The most concise piece…
Comment linking /uncle-bob/2017/10/03/TestContravariance.html
on “Is TDD Dead? (2014)”Submitted Types and Tests as a story · 52 points
HN discussion