Thread 105865569 - /g/ [Archived: 354 hours ago]

Anonymous
7/11/2025, 3:38:40 AM No.105865569
51E2055ZGUL._SL1000_[1]
51E2055ZGUL._SL1000_[1]
md5: 3164c3ab4851737944c6cc2417edfbad🔍
Why do people hate this book now?
What should I read instead?
Replies: >>105865592 >>105865605 >>105865614 >>105865632 >>105865633 >>105865739 >>105865772 >>105865793 >>105865898 >>105865961 >>105866119 >>105866201 >>105866461 >>105866741 >>105866810 >>105867355 >>105868018 >>105868050 >>105870001
Anonymous
7/11/2025, 3:41:59 AM No.105865592
>>105865569 (OP)
>now
Anonymous
7/11/2025, 3:44:10 AM No.105865605
>>105865569 (OP)
I think because obviously the author is /g/-tier larper.
Anonymous
7/11/2025, 3:44:55 AM No.105865610
uncle bob bragged about his space martian game running at 20 fps. he is a grifter.
Anonymous
7/11/2025, 3:45:34 AM No.105865614
>>105865569 (OP)
Because /g/ is full of unemployed nocoders
What could they possibly learn from this?
Anonymous
7/11/2025, 3:48:33 AM No.105865632
9780201633610_p1_v4_s600x595
9780201633610_p1_v4_s600x595
md5: 1c6c9e31240786244dd22d1259a9e5ef🔍
>>105865569 (OP)
Cargo culting
Replies: >>105865709 >>105866065 >>105866810 >>105867078 >>105867355
Anonymous
7/11/2025, 3:48:36 AM No.105865633
>>105865569 (OP)
people or rajeshes?
Replies: >>105865725
Anonymous
7/11/2025, 3:58:49 AM No.105865709
>>105865632
>Escher on the cover
nice
Anonymous
7/11/2025, 4:00:43 AM No.105865725
>>105865633
Indians love that book.
Anonymous
7/11/2025, 4:04:12 AM No.105865739
>>105865569 (OP)
None of the advice is terrible per se. Clear naming, separation of functions, responsibilities within code, comments to explain functionality, use of design patterns etc is incredibly useful for real system work.

The main problem with Uncle bob's work is the tech environment Clean Code was written for, mainframes, enterprise servers and desktop gui only applications, doesn't necessarily make sense in the present era. It makes sense if you are building business logic heavy code, i.e. banks, insurance, medical, ERPs etc.

Clean code principles are completely correct for backend code. They are contextually irrelevant on SPA systems and presumably not appropriate on mobile.

Java/C# get shat on for the legacy code base nightmares everyone inherits, but at the same time, it is infinitely more maintainable than the 5000+ line methods of garbage used in contemporary node backends. The book is written for a programmer who is building a system to last 30+ years rather than 3 years.
Replies: >>105865868 >>105866197
Anonymous
7/11/2025, 4:09:32 AM No.105865772
>>105865569 (OP)
New coders read it and become cargo cultists, trying to impose everything in it regardless of context. As true believers, they can't accept anything else existing. All code must be "clean" code. This makes them extremely annoying and impossible to work with if you're not part of their cargo cult.
Anonymous
7/11/2025, 4:14:21 AM No.105865793
>>105865569 (OP)
It was systematically taken apart and destroyed by a self taught game dev who is also a youtube grifter. There is no coming back after that kind of beatdown so clean code 41% itself.
Replies: >>105865801 >>105865840
Anonymous
7/11/2025, 4:16:19 AM No.105865801
>>105865793
>It was systematically taken apart and destroyed by my fav e-celeb
irrelevant.
Replies: >>105865806
Anonymous
7/11/2025, 4:17:03 AM No.105865806
>>105865801
Wrong
Anonymous
7/11/2025, 4:23:18 AM No.105865840
>>105865793
Here's a (yiu). Which griifter?
Replies: >>105866486
Anonymous
7/11/2025, 4:29:27 AM No.105865868
>>105865739
I'm writing a business logic heavy system using Django and HTMX. Is this book worthwhile to read? Any recommendations?
Replies: >>105865903
Anonymous
7/11/2025, 4:35:06 AM No.105865898
>>105865569 (OP)
most books are bloated shit. just use ai as tutor. if you are capable of critical thinking, ai is much better than any book
Anonymous
7/11/2025, 4:35:47 AM No.105865903
>>105865868
I wouldn't recommend python for any program exceeding 5000 lines. The language is exceptionally flexible, fault tolerant and friendly that it gives you enormous lengths of rope to hang yourself with.

By the time you run into the inherent problems with Python enterprise systems, it is far too late.

But I would recommend Clean Code + Clean Architecture. Use it as a 'style' of code alongside Martin Fowler's Patterns for Enterprise Architecture.
Replies: >>105865924 >>105865948
Anonymous
7/11/2025, 4:39:46 AM No.105865924
>>105865903
>it gives you enormous lengths of rope to hang yourself with
can you give examples? i dont see how python is all that different from other languages in this regard. sensible code will work with any language and shitty code will work with none. the only issue i see is that python is so easy that a lot of people code with absolutely horrible jupyter notebooks where they shit together a monstrosity
Replies: >>105866009
Anonymous
7/11/2025, 4:42:33 AM No.105865948
>>105865903
Thanks. I figured I would shit out a system with Django and then if it gains any traction look at switching to a different framework/language. It's for small-to-medium sized manufacturers and each business will have their own instance so it'll likely be handling no more than 50 users at once. I'm not a developer by trade--just some Python script kiddie sick of using software for my profession that doesn't make my job easier.
Replies: >>105866009
Anonymous
7/11/2025, 4:44:35 AM No.105865961
>>105865569 (OP)
>Why do people hate this book now?
Because half the advice in it is completely sensible while the other half is pants-on-head retarded, and the people who could benefit from the first half can't tell it apart from the second half.
Replies: >>105866032
Anonymous
7/11/2025, 4:49:43 AM No.105866000
>Dude just write readable code
>Nooo this is cargo cult!!!1
Anonymous
7/11/2025, 4:50:56 AM No.105866009
>>105865924
The low barrier to entry, friendly coding style and easy of use enable horrible unmaintainable code.

People who learn to code to get a job done will hack something together as best they can to solve a problem. Without serious experience and some academic knowledge, you can easily code yourself into a corner. Then when your business requirements change, you can't solve problems. Development slows to a halt etc.

I've personally had to rewrite python code with multiple thousand line mega functions performing all sorts of stuff that took days to run.

>>105865948
Very context sensitive answer, but Django could work there. I would personally use Ruby on Rails + Turbo + Stimulus or Laravel + Inertia + Vue for a quick and dirty.

If you are writing corporate code, you want to build fault tolerance in for abysmally retarded users.
Replies: >>105866202
Anonymous
7/11/2025, 4:51:45 AM No.105866015
The midwit trinity of programmer influencers did irrepairable damage to young programmer minds.
Anonymous
7/11/2025, 4:55:03 AM No.105866032
>>105865961
>the other half is pants-on-head retarded,
like what?
Anonymous
7/11/2025, 5:01:22 AM No.105866065
Screenshot 2025-07-11 125655
Screenshot 2025-07-11 125655
md5: 1bd5c02dca187ad63497c172c6c064d1🔍
>>105865632
which of these are useful?
Replies: >>105866154 >>105866238 >>105870404
Anonymous
7/11/2025, 5:09:45 AM No.105866119
>>105865569 (OP)
You should read the book. You should read other books as well. Then you should understand that 'good advices' are heurestics. Following them blindly will lead you astray.
Anonymous
7/11/2025, 5:13:17 AM No.105866154
>>105866065
All of them when the perfect situation occurs. In practice you'll apply them without realizing it, the names make them sound fancier and more complicated than what they really are.
>singleton -> global
>factory -> create/init function
>facade -> kitchen sink with a pretty name and sometimes a common theme
Anonymous
7/11/2025, 5:18:39 AM No.105866197
>>105865739
>The main problem with Uncle bob's work is the tech environment Clean Code was written for, mainframes, enterprise servers and desktop gui only applications, doesn't necessarily make sense in the present era. It makes sense if you are building business logic heavy code, i.e. banks, insurance, medical, ERPs etc.

I disagree. The issue is that CC is often used as a smoke screen for programmer's lack of comperhension of the code they are modifying.

Its like calling a plumber a 'pipe substructure and connectivity maintainer'. several rounds of this and any code base gets drowned by neverending layers of meaningless abstractiins which 'look' nice but are ni different to hacjy, sphagetti cludges of Casey Muratori types.
Replies: >>105866251
Anonymous
7/11/2025, 5:18:56 AM No.105866201
>>105865569 (OP)
Because it appeals to bigtech Java retard pajeets.

Its advice is sound but it's nothing otherworldly.
Anonymous
7/11/2025, 5:18:57 AM No.105866202
>>105866009
A bad excuse I know, but I don't want to learn SPAs and have found sending HTML over the wire with HTMX for dynamic content to be sufficient for the internal business tool I'm building. Also, I hate writing JS.
Anonymous
7/11/2025, 5:25:05 AM No.105866238
>>105866065
all of them, on case by case basis.
Anonymous
7/11/2025, 5:27:42 AM No.105866251
>>105866197
You can, but it does make it easy to rewrite stuff on a long term project. An example, I went heavily in on Redis ORM for rapid processing of certain information early in a Fintech project. Turns out it is an immature library, not suited to what I was doing. Because I used interfaces for every layer, I swapped it out for SQL ORM calls in 2 hours.

Sure it is 'complex', but you can rework this stuff for a much more pleasant code base. If you are looking at the same code base day in and day out, you know the folder structure and implemented types very well in any case. The Heuristic is something like I can immediately know where to debug, calling down the interface layer, then capture that failure in a test somewhere.
Replies: >>105866358
Anonymous
7/11/2025, 5:44:37 AM No.105866358
>>105866251
100% agree. I work on a large (5m loc), legacy code base and proper use of design patterns saved by butt countless of times. At the same time, working on it, I saw pants on head retarded code that looked 'nice' if one were to judge it solely on usage of patterns.

Clean Code is often sold on the premise that following its principles will abstract away the need of understanding what the code does. As you pointed out, knowing the layout of the project is just as important.

No arrangement of books on the shelf can tell what is in those books. having them arranged by title, genre or author, instead of loose pages all over, will help with finding but reading is still necessary.
Anonymous
7/11/2025, 6:07:48 AM No.105866461
>>105865569 (OP)
>robert c martin series
very self-aggrandizing
dropped
Anonymous
7/11/2025, 6:12:10 AM No.105866486
>>105865840
https://www.youtube.com/watch?v=tD5NrevFtbU
Replies: >>105868008 >>105868649
Anonymous
7/11/2025, 6:57:40 AM No.105866741
>>105865569 (OP)
Ask yourself the question why should his advice be taken seriously when he had never done anything noteworthy?
Replies: >>105866816
Anonymous
7/11/2025, 7:11:17 AM No.105866810
>>105865569 (OP)
This book is literally about how to give up orders of magnitude of performance to make your code more readable to less talented programmers. It is a book for wagies, and the purpose of the book is to mindbreak good programmers into producing slop which is readable by cheap shitty programmers, so companies can lower labor costs. Reading it will make you a worse programmer, but a better wagie.

>>105865632
This books is similar, except that design patterns are actually useful about 1% of the time. The problem is that wagies are taught to mindlessly apply them as frequently as possible as though theybwere somehow foundational to programming, in hopes that other wagies will recognize and be able to maintain the codebase. The result is bloat and horrific performance with the benefit being that the code will be marginally more readable to people who suck at programming.

The problem is that the ideas and practices that make a good wagie make a terrible programmer (and vice-versa). So you have to ask, do I want to make performant code which is not excessively verbose, or do I want to make slop that can be maintained by the cheapest people the company I work for can find? Those are not the same skillsets and what you should do depends on what you want to become.
Replies: >>105866878 >>105868034
Anonymous
7/11/2025, 7:12:05 AM No.105866816
>>105866741
a book that is, for better or worse, a manual for managing enterprise software all over the world is kind of 'noteworthy'
Anonymous
7/11/2025, 7:26:53 AM No.105866878
>>105866810
>orders of magnitude of performance
only a person who never touched a profiler in his life could say such nonsense.

the vast majority of code written has zero effect on performance. clean code and readability has nothing to do with algorithmic complexity.
Replies: >>105866895 >>105866932
Anonymous
7/11/2025, 7:29:22 AM No.105866895
>>105866878
recently i did a massive rewrite of some code to support multithreading. the code become much more complex, but i get like 10-15% performance improvement. absolutely not worth it.
why? because i just removed one bottleneck, but ran into another.
Anonymous
7/11/2025, 7:37:43 AM No.105866932
>>105866878
There is way more to performance than algorithms. When optimizing for hot loops the locality of your code matters. Creating abstractions adds a layer of indirection which makes it harder for compilers to make good optimizations and increases the likelihood of cache misses.
Replies: >>105866961 >>105867166
Anonymous
7/11/2025, 7:42:47 AM No.105866961
>>105866932
even in hot loops the cost of virtual function is 2-3x max. and the thing is, you won't make your program 2x faster by optimizing it, because you just ran in some other bottleneck.

that's what people need to realize. if some small part of your program is 2x slower it doesn't mean it makes your whole program ran 2x slower.
Replies: >>105867018 >>105868208
Anonymous
7/11/2025, 7:46:24 AM No.105866977
i recommend starting using profiling tools. you will find many suprises in your code.
Replies: >>105867185
Anonymous
7/11/2025, 7:51:07 AM No.105867010
these blanket statements about performance are just as harmful as blanket statements about clean code.
Anonymous
7/11/2025, 7:53:02 AM No.105867018
>>105866961
Everyone knows about amdahl's law. It's not even related to the point being made. No one building low latency application uses clean code because it is garbage.
Anonymous
7/11/2025, 8:06:47 AM No.105867078
>>105865632
I hate OOP pjaeets so much it's unreal.
Anonymous
7/11/2025, 8:24:58 AM No.105867166
>>105866932
algorithmic complexity trumps just about everything else. Indirection is more of a mental load problem, than a performance one. Nobody in their right mind tries to have deep inheritance trees in a hot path of performant code.

that being said, flattening inheritance tree in an a* pathfinder at work gave me a modest single-digit% perf boost.
Replies: >>105867181
Anonymous
7/11/2025, 8:29:03 AM No.105867181
>>105867166
data structures matter more than algorithms
Replies: >>105867220
Anonymous
7/11/2025, 8:29:48 AM No.105867185
>>105866977
I recently discovered that a simple linear search often outperforms binary search in most real-world scenarios.
Replies: >>105867232 >>105867861 >>105868155
Anonymous
7/11/2025, 8:37:19 AM No.105867220
>>105867181
Confirmed no-coder. Data structures _are_ part of complexity of an algorithm.
Replies: >>105867273
Anonymous
7/11/2025, 8:39:02 AM No.105867232
>>105867185
For small data sets in a contigous memory, it can, quite dramatically so even.
Anonymous
7/11/2025, 8:46:09 AM No.105867273
>>105867220
Nope. Data storage and retrieval storage is more important. Algorithms are designed around it.
Replies: >>105867308 >>105867992
Anonymous
7/11/2025, 8:53:03 AM No.105867308
>>105867273
Algorithm is not some separate entity from data access pattern.
Replies: >>105867354
Anonymous
7/11/2025, 9:01:08 AM No.105867354
>>105867308
Algorithms are mechanisms and data structures are the blueprint. You can use different algorithms for the same data structure.
Replies: >>105867432
Anonymous
7/11/2025, 9:01:22 AM No.105867355
>>105865569 (OP)
>>105865632
because guy is a grifter consultant piece of shit
Anonymous
7/11/2025, 9:15:31 AM No.105867432
>>105867354
Data structure access is an algorithm in itself. Complexity of an algorithm working on that data structure is a superposition of both.
Its algorithms all the way down.
Anonymous
7/11/2025, 10:39:59 AM No.105867861
>>105867185
Algorithmic complexity doesn't always correspond to real world performance because high level languages hide actual complexity from the programmer.
Anonymous
7/11/2025, 11:10:53 AM No.105867992
>>105867273
not every algorithm is about iterating millions of structs. cache lines are irrelevant for most programs.
Anonymous
7/11/2025, 11:15:49 AM No.105868008
>>105866486
That's no secret that clean code prioritizes readability and maintainability over performance.
Anonymous
7/11/2025, 11:18:40 AM No.105868018
>>105865569 (OP)
It's a good book. It offers good advice. It made me a better programmer.
Anonymous
7/11/2025, 11:22:06 AM No.105868034
>>105866810
You're not a serious programmer if you think that performance is always more important than maintainability
Replies: >>105868817
Anonymous
7/11/2025, 11:25:38 AM No.105868050
>>105865569 (OP)
Clean Code repackaged old time-tested rules but you can overdo any good advice and R. Martin goes a little too far with his proposed verbosity. Because the book became hugely popular it's hated on this contrarian shithole.
OOP very often leads to over-engineering, and encapsulation creates code that is (counter-intuitively) not easily reusable, but used in moderation it's still far more scalable that procedural scripts.
I think we need a popular language that is declarative but has structural syntax (something like Lisp or APL).
Replies: >>105868440
Anonymous
7/11/2025, 11:35:41 AM No.105868101
Fine in a vacuum but not the only book on the subject. This goes the same for basic bitch programming projects. You learn quite a bit doing one but you need to keep using multiple sources to really get the knowledge of what your learning ingrained.
Anonymous
7/11/2025, 11:45:48 AM No.105868155
>>105867185
| Method | Mean | Error | StdDev |
|------------------- |--------------:|------------:|-----------:|
| LoopSearch100 | 23.231 ns | 0.0900 ns | 0.0841 ns |
| LoopSearch1000 | 146.067 ns | 0.9183 ns | 0.8140 ns |
| LoopSearch10000 | 1,359.702 ns | 7.5315 ns | 6.6764 ns |
| LoopSearch100000 | 13,365.068 ns | 103.7147 ns | 91.9403 ns |
| IndexOf100 | 8.542 ns | 0.0475 ns | 0.0444 ns |
| IndexOf1000 | 54.848 ns | 0.2344 ns | 0.2192 ns |
| IndexOf10000 | 424.649 ns | 0.3573 ns | 0.3342 ns |
| IndexOf100000 | 4,142.871 ns | 3.5651 ns | 3.3348 ns |
| BinarySearch100 | 18.642 ns | 0.1707 ns | 0.1425 ns |
| BinarySearch1000 | 24.951 ns | 0.1260 ns | 0.1117 ns |
| BinarySearch10000 | 38.253 ns | 0.2465 ns | 0.2185 ns |
| BinarySearch100000 | 42.263 ns | 0.2301 ns | 0.2039 ns |


loop search is a loop
IndexOf is Array.IndexOf (it uses sim)
BinarySearch is Array.BinarySearch

as you can see, loop is slower than binary search even if array size is <100
Replies: >>105868244 >>105868304 >>105870032
Anonymous
7/11/2025, 11:54:11 AM No.105868208
1699499471787504
1699499471787504
md5: e5ed71a569d7aa1bc58be2ae42fe72e6🔍
>>105866961
if there is a 2X overhead everywhere then there is also a 2X overhead on the hot loops
Anonymous
7/11/2025, 11:59:32 AM No.105868244
>>105868155
Would you mind posting the code?
Anonymous
7/11/2025, 12:08:24 PM No.105868304
>>105868155
this is fine if you disregard amortized cost of sorting to enable binary search. If the container contents change frequently then binary search may not be viable and simple lookup might be faster. especially since lookup can be threaded.
Anonymous
7/11/2025, 12:31:15 PM No.105868440
>>105868050
>encapsulation creates code that is (counter-intuitively) not easily reusable
True, though not sure about the counter-intuitive part - at least I never thought encapsulation as something affecting reusability. Instead, it makes code easily refactorable, which is a better benefit in the long run.
If things are eagerly made openly reusable, you'll very likely get coupling that might be very difficult to get rid of if requirements change. If it's encapsulated, (in a very huge simplification) you just extract an interface to just the functionality you want to share.
Replies: >>105869399
Anonymous
7/11/2025, 1:07:36 PM No.105868649
waste
waste
md5: 2d170cc3b2ed44758fa29af13d52cbb4🔍
>>105866486
The entire paywalled course has been uploaded to a Russian torrent site.
Has anyone watched it yet?
Replies: >>105870102
Anonymous
7/11/2025, 1:31:07 PM No.105868817
>>105868034
"Maintainability" to a programmer and "maintainability" to a wagie are different ideas. The programmer merely needs the code to be maintainable enough that he understands what it does and can modify it if needed. He doesn't need to make excessive refactoring passes to torture it into some unneeded "design pattern" to achieve this. The wagie needs to write code in a different way to make sure that H1Bs, bootcamp grads, people who have only seen wagie style programming and other bad programmers can have jobs working in the codebase. The goal isn't to produce good code. The goal is to make code cheaper to maintain in an organization by lowering labor costs, by writing code in a way that makes it accessible to people who suck at programming. If you follow the advice of Clean Code, it will make you a worse programmer, but a better wagie.
Replies: >>105869461 >>105869715
Anonymous
7/11/2025, 2:41:00 PM No.105869399
>>105868440
“It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures.” (Perlis)
Anonymous
7/11/2025, 2:49:46 PM No.105869461
>>105868817
lol stopped reading after a couple sentences when you made it too obvious youve never ever held a job programming, or possibly of any sort
Anonymous
7/11/2025, 3:19:29 PM No.105869715
>>105868817
>I have never written something less trivial than fizzbuzz: the post
Anonymous
7/11/2025, 3:29:57 PM No.105869784
because of the title
Anonymous
7/11/2025, 3:56:21 PM No.105870001
>>105865569 (OP)
Im not even sure if it's even worth reading a book on something as abstract as software architecture anymore.
It seems that real experience is the only thing that matters. Things are just too different when you put them into action.
Anonymous
7/11/2025, 3:59:37 PM No.105870032
>>105868155
i'm retarded, i forgot to randomize searched value per each run. now the results look more expected.

| Method | Mean |
|------------------- |-------------:|
| LoopSearch100 | 32.11 ns |
| LoopSearch1000 | 153.60 ns |
| LoopSearch10000 | 1,344.40 ns |
| LoopSearch100000 | 13,464.05 ns |
| IndexOf100 | 27.15 ns |
| IndexOf1000 | 58.79 ns |
| IndexOf10000 | 431.21 ns |
| IndexOf100000 | 4,164.70 ns |
| BinarySearch100 | 45.01 ns |
| BinarySearch1000 | 60.98 ns |
| BinarySearch10000 | 81.53 ns |
| BinarySearch100000 | 106.35 ns |
Anonymous
7/11/2025, 4:07:53 PM No.105870102
>>105868649
>dude obsessed with optimizing 0.00001 s. in his single player game played by 10 people
Anonymous
7/11/2025, 4:41:32 PM No.105870404
>>105866065
They are all useful in the right situation but admittedly some are more useful than the other in terms of frequency and added value to code eng
> creational
Builder
Abstract factory

> Structural
Adapter and bridge
Decorator
Facade

> behavioural
Chain
Iterator
Command
Observer
Strategy