the expensive bugs are usually gaps in the spec itself
mirmor23
maybe the definition of 'clean code' in the agentic era should be changed to 'the code that complies to the specs, the design constraints and the exhaustive scenario test suite'; this is definitely a better outcome since all the human effort now shifts to spec, design, test scenarios tailored to the domain - as it should be. having seen my share of human slop through decades (mine included), finally it's a relief to not have to deal with devs that don't have high standards, and the endless arguments/politics that ensue. with llm it's just a text file away from compliance.
daaaaaaan
This is the guy that thinks optionals are too complicated? https://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath...
jvanderbot
The author of clean code (who makes his living consulting on how to write software) has pivoted to AI in a spectacular tweet about how to set up automated software development just in time to make his living consulting about how to set up automated software development.
a34729t
Well, he knows where is toast is buttered
paxys
> I’m significantly older than you. I started coding in the late 60s. Any opinion that starts with such a blatant appeal to authority can safely be ignored.
anvuong
This is the dude who ushered in the age of nonsensical boilerplate-ridden OOP code where you need to go down a bajillion of abstraction layers to see the actually implementation. Makes sense that he doesn't care about the bajillion lines of code AI produces as long as it looks good (on the surface).
remywang
Does he read his tests and constraints? You’d need lots of tests to have that kind of confidence (SQLite has 500+ lines of tests per line of code), at which point it’s not a lot of additional work to just read the code.
jubilanti
But does he read all those tests to know if they're right? Or does he just ask the LLM if the test it created were good?
nitwit005
My current code base has more tests than runtime code. This sounds far more thorough than that. If you limit the possible productivity improvement to a small portion of total effort, it's inherently also going to be a small improvement. Which, is fine, but not what most people are hoping for with these tools.
jordemort
When my nephew went into computer science, I had to warn him about the bracelet cult people
andai
I keep posting this but it keeps being relevant. I had an agent implement a feature completely backwards. It wrote a whole bunch of tests proving the correctness of the implementation. All the tests passed. The really interesting thing to me is that formal verification wouldn't have helped there either -- it would have just written a mathematical proof of the correctness of the backwards feature.
wodenokoto
So the next edition of clean code will be called “clean test code”?
rpunkfu
Ironically from my experience seeing AI code a lot, it probably follows his clean code verbosity beautifully
bluefirebrand
Well, Uncle Bob has always been a hack so this isn't too surprising
gitgud
So no human in the loop then? Sounds like a recipe for tech debt…
dan_gee
From my perspective, the primary end-user selling point of LLM assistants is not having to read or write anymore. I think a lot of the "AI Addicts" are masking illiteracy, which is why they cling so passionately to the technology.
Kon5ole
>My current strategy is to not read any of the code written by my agents. That’s the only way I can take advantage of their productivity. When you start getting good results from agents you soon realize you are the bottleneck. Automating the verification of the code is the way to go, otherwise it's just not worth it. It takes longer to read and understand code than to write code, so why bother with agents if you are going to manually review it all anyway? One thing I miss after ditching Copilot (it got too expensive) was how I could trivially ask for features to be written by one model and verified by another. Have Opus write it and GPT or Gemini verify it. I figured they were entirely separate models and therefore unlikely to hallucinate in the same way, so it gave me a quick sense of confidence. Currently I use claude code (different models but all variants of the same) so I have them do planning, review of the plan, implementation, review of the implementation, and unit tests. It's fine, but copilot felt easier.
2001zhaozhao
Right now there is about a 95% chance that when I manually review an agent's code I find nothing that needs changing. I find it plausible that an extra agentic review pass and more testing can bring this number up to the point that one never needs to review code again. AI writes pretty good code nowadays. (You still need to be diligent and decide the architecture during the planning, and read the gotchas and "things to note" that the agent will spit out at the end of implementation if it had to diverge from the plan.)
mbonnet
Robert Martin, the author of Clean Code, is a caustic dick defending a book full of spurious commandments. I don't put any stock in his takes.
Related Discussions
Found 5 related stories in 407.3ms across 15,062 title embeddings via pgvector HNSW
Discussion Highlights (20 comments)
0xedwen
the expensive bugs are usually gaps in the spec itself
mirmor23
maybe the definition of 'clean code' in the agentic era should be changed to 'the code that complies to the specs, the design constraints and the exhaustive scenario test suite'; this is definitely a better outcome since all the human effort now shifts to spec, design, test scenarios tailored to the domain - as it should be. having seen my share of human slop through decades (mine included), finally it's a relief to not have to deal with devs that don't have high standards, and the endless arguments/politics that ensue. with llm it's just a text file away from compliance.
daaaaaaan
This is the guy that thinks optionals are too complicated? https://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath...
jvanderbot
The author of clean code (who makes his living consulting on how to write software) has pivoted to AI in a spectacular tweet about how to set up automated software development just in time to make his living consulting about how to set up automated software development.
a34729t
Well, he knows where is toast is buttered
paxys
> I’m significantly older than you. I started coding in the late 60s. Any opinion that starts with such a blatant appeal to authority can safely be ignored.
anvuong
This is the dude who ushered in the age of nonsensical boilerplate-ridden OOP code where you need to go down a bajillion of abstraction layers to see the actually implementation. Makes sense that he doesn't care about the bajillion lines of code AI produces as long as it looks good (on the surface).
remywang
Does he read his tests and constraints? You’d need lots of tests to have that kind of confidence (SQLite has 500+ lines of tests per line of code), at which point it’s not a lot of additional work to just read the code.
jubilanti
But does he read all those tests to know if they're right? Or does he just ask the LLM if the test it created were good?
nitwit005
My current code base has more tests than runtime code. This sounds far more thorough than that. If you limit the possible productivity improvement to a small portion of total effort, it's inherently also going to be a small improvement. Which, is fine, but not what most people are hoping for with these tools.
jordemort
When my nephew went into computer science, I had to warn him about the bracelet cult people
andai
I keep posting this but it keeps being relevant. I had an agent implement a feature completely backwards. It wrote a whole bunch of tests proving the correctness of the implementation. All the tests passed. The really interesting thing to me is that formal verification wouldn't have helped there either -- it would have just written a mathematical proof of the correctness of the backwards feature.
wodenokoto
So the next edition of clean code will be called “clean test code”?
rpunkfu
Ironically from my experience seeing AI code a lot, it probably follows his clean code verbosity beautifully
bluefirebrand
Well, Uncle Bob has always been a hack so this isn't too surprising
gitgud
So no human in the loop then? Sounds like a recipe for tech debt…
dan_gee
From my perspective, the primary end-user selling point of LLM assistants is not having to read or write anymore. I think a lot of the "AI Addicts" are masking illiteracy, which is why they cling so passionately to the technology.
Kon5ole
>My current strategy is to not read any of the code written by my agents. That’s the only way I can take advantage of their productivity. When you start getting good results from agents you soon realize you are the bottleneck. Automating the verification of the code is the way to go, otherwise it's just not worth it. It takes longer to read and understand code than to write code, so why bother with agents if you are going to manually review it all anyway? One thing I miss after ditching Copilot (it got too expensive) was how I could trivially ask for features to be written by one model and verified by another. Have Opus write it and GPT or Gemini verify it. I figured they were entirely separate models and therefore unlikely to hallucinate in the same way, so it gave me a quick sense of confidence. Currently I use claude code (different models but all variants of the same) so I have them do planning, review of the plan, implementation, review of the implementation, and unit tests. It's fine, but copilot felt easier.
2001zhaozhao
Right now there is about a 95% chance that when I manually review an agent's code I find nothing that needs changing. I find it plausible that an extra agentic review pass and more testing can bring this number up to the point that one never needs to review code again. AI writes pretty good code nowadays. (You still need to be diligent and decide the architecture during the planning, and read the gotchas and "things to note" that the agent will spit out at the end of implementation if it had to diverge from the plan.)
mbonnet
Robert Martin, the author of Clean Code, is a caustic dick defending a book full of spurious commandments. I don't put any stock in his takes.