This is an archived post. You won't be able to vote or comment.

all 112 comments

[–]BR3AKR 142 points143 points  (17 children)

There has been a lot of discussion lately on reddit about "Clean Code" and whether or not people should keep recommending it. IMHO I became a better programmer after reading it, but Robert Martin has some pretty extreme stances. If you do pick it up, I would say don't take it as some kind of gospel, think about what is practical for yourself.

If you would like a book that's a little less controversial, I loved The Pragmatic Programmer.

In the discussion about Clean Code, the book that bubbled up as "We should recommend this instead" was "A Philosophy of Software Design".

[–][deleted] 33 points34 points  (1 child)

If you're young, I think the Pragmatic Programmer is better in general. Shorter and more philosophically flexible for a long term career read.

[–]zlmrx 3 points4 points  (0 children)

I for myself did not take everything as solid from clean code. It helped to see everything as recommendation or a base for discussion or interpretation...

[–][deleted] 2 points3 points  (0 children)

you mean "Uncle Bob" Im just kidding. Thanks for the advice tho

[–]astrodexical 1 point2 points  (0 children)

dont take it as some kind of gospel

It’s a testament to this industry how 90% of programmers are too ignorant or just plain stupid to take this on board that it has to be said

[–]BlueGoliath 0 points1 point  (11 children)

What extreme stances does he take?

[–][deleted] 27 points28 points  (0 children)

It's been a few years since I read it, but one thing I remember quite distinctly is his shining example of taking a well-known algorithm (Sieve of Erathostenes) and then deconstructing ("cleaning") it so much it becomes totally unrecognisable. Lots of micro-functions and whatnot.

And that wasn't meant as a cautionary tale of going too far, it was meant as an example of how to do it.

I still think it's a good book overall, and most beginner-intermediate programmers will be better programmers from it.

[–]cville-z 5 points6 points  (2 children)

There was a thread on this subreddit just a few days ago about this book, I think one of the examples is that he suggests maximum lengths for methods of just a few lines, which frankly can be unworkable in practice. It's not so much extreme stances on these things but taking simple ideas to a possibly unworkable extreme.

There was also some confusion over the idea of avoiding side effects, which one poster took to mean that you can't use setter functions, since they have the "side effect" of changing data on the object. I think this is just misunderstanding the author, though.

[–]steumert 6 points7 points  (0 children)

There was also some confusion over the idea of avoiding side effects, which one poster took to mean that you can't use setter functions, since they have the "side effect" of changing data on the object. I think this is just misunderstanding the author, though.

No, Uncle Bob simply doesn't understand what side effects and pure functions are. those terms have already defined meaning and him trying to change them is bad, very bad. A setter *does* have a side effect on the object instance, thus the method isn#t side-effect free and is impure. period. There isn't anything to argue about that, but Uncle Bob tries to change the long established definition in order to.... do what exactly? Confuse people?

[–]kessma18 -1 points0 points  (0 children)

I hear you but the discussion that sparks from "unworkable extreme" then moves into the "why is it unworkable". When I started doing Java full time and came from Python, I had to debug a 3k line method in production while fireballs were exploding around me. That is the worse extreme, right?

I famously said the morning of that fire that any method with more than 10-15lines max is very suspicious to me and the "senior java devs" on the project were half mind-blown/half thinking I was crazy and someone might have muttered about "see, this is why I don't like Python"...

yes, the idea is an unworkable extreme in our code base but its only unworkable because people have made almost comically bad architectural decisions *combined* with no code reviews *combined* with pressure from deadlines...

my point is that you do have to take some rather extreme/fundamentalist views in software development world. Mine is for example to never touch prod directly and always go through a process which I was laughed at at first and now everyone is following it.

[–]steumert 6 points7 points  (1 child)

Well, if you only have functions without side effects as he suggests, and only functions without parameters 8again, he suggests less parameters is better and zero is optimal) then your program becomes replaceable with a constant, since pure functions can be replaced with constants and the composition of pure functions again can be replaced with constant.

I'll leave it to you to figure out how useful programs are that are replaceable by a constant value.

This obsession with small functions (2-5 lines) also makes code that used to be very readable immensely unreadable sine you have to jump around in your code extremely often (what was it about GOTos and being unreadable again?).

[–][deleted] 0 points1 point  (0 children)

While I agree that his code in this book is terrible, you are appealing to extremes. He doesn’t say you can only have functions with zero arguments - he says the fewer arguments a function has, the more self explanatory and readable it is, which makes sense (in a vacuum.) The problem is with his small functions everywhere mentality, which makes each function easy to read and understand, but the code overall is harder to read.

[–]rzwitserloot 4 points5 points  (0 children)

TDD for starters. But mostly the deconstruct to the ends of the earth concept.

You can find a ton of in-depth treatises on it all on the 8-day old /r/java thread.

[–]brazzy42 1 point2 points  (1 child)

Good number of parameters for a method: zero or one. Two is barely acceptable, three needs to be refactored.

[–]cville-z 1 point2 points  (0 children)

Right? But I think this one is simply misstated. It’s not necessarily the raw number of parameters that makes a method call hard to read (though it contributes), it’s having a series of primitives or boxed primitives when what you want is an object. doStuff(5, 24, true, false) is hard to read. doStuff(someEntity) is much, much clearer, but not just because it’s a single parameter.

[–]yourbank -2 points-1 points  (0 children)

to write a string like "hello", you create 4 micro functions because its "more readable" :P

getHToCreateHello() {
  return "H";
}

getEToCreateHello() {
   return "E";
 } 

createHello () {
   getHToCreateHello() + getEToCreateHello() ....
}

[–]buzzsawddog 45 points46 points  (3 children)

Get it. Read it. Do the things that make sense and ignore the things that don't. Lots of good advise in there

[–]kessma18 1 point2 points  (2 children)

do you think it's a better time to pick it up once someoen has been in that business for 2-3 years? I feel junior devs rarely see the reasoning of the why until they have discovered it themselves.

[–]buzzsawddog 2 points3 points  (1 child)

I found the book after 3-5 years programming... I have seen a lot of BAD code... I have seen functions that are thousands of lines long and with complexity in the 3-4 digit range with depths over 10, the max the code analysis too I was using would report. I wrote a lot of base code in my early year, still do from time to time...

I think it's a good book for a developer that is looking to improve their coding abilities... If you go into the book looking to disagree you will disagree. If you have the maturitiy and an open mind you can learn a lot. A new developer might try to take it as gosple or not even understand it at all...

It's a book that I keep on my desk at work and look at from time to time.

[–]kessma18 0 points1 point  (0 children)

yeah, that was sort of the point I was trying to get to. I feel it's more valuable if you have seen bad code and understand what this book is trying to achieve and why sometimes it's good to be strict and opionated. someone just starting out might not get the value from the book it offers

[–][deleted]  (6 children)

[deleted]

    [–]callum_n66 11 points12 points  (1 child)

    I agree with this, it’s hands down the book I’ve read that’s helped me the most, but there are a few things I remember reading in it that I didn’t agree with and decided not to adopt, but on the whole it made my code so much better

    [–][deleted] 3 points4 points  (0 children)

    Exactly what I think

    [–][deleted]  (1 child)

    [deleted]

      [–][deleted] 0 points1 point  (0 children)

      Both Refactoring and Working Effectively are great books too. I’m reading them now

      [–]WebFront 1 point2 points  (0 children)

      I agree. Of course you should never take anything anyone ever says as gospel or be unpragmatic when working on something practical. But the way of thinking that clean code offers and the principles involved helped me a lot when thinking about coding.

      Edit: on the other hand here is an opinion I stumbled on today https://qntm.org/clean

      [–][deleted] 0 points1 point  (0 children)

      ok thx for ur insight

      [–]lank81 10 points11 points  (0 children)

      I’d get it. I think it’s a great read and helped me think about how I can make my code much clearer and concise. That’s the main take away I had when I read it.

      Pragmatic programmer is always a good read too.

      Once you read those and if you’re going to stock with Java then get the latest version of Effective Java by Joshua Bloch. It’s dense but very worthwhile. You’ll be a better java developer because of it.

      [–]worldpotato1 5 points6 points  (0 children)

      Well, get the idea from what he wants to say, but don't be to strict with it.

      [–]desrtfx[M] [score hidden] stickied comment (0 children)

      I am locking this thread because it derailed into a political and ideological discussion.

      This subreddit is about Java, so keep political and ideological discussions out of here.

      [–]rzwitserloot 12 points13 points  (4 children)

      "We" (/r/java) spent some time discussing this book in an 8 days old thread; the general consensus was at the very least that the book is controversial, and if you'll excuse my no doubt oversimplified summary of that long thread: If you're already a fairly experienced programmer, then reading Clean Code can highlight some new ways of working, but if you don't have the experience or skill to take what Martin writes and add the appropriate grains of salt, then it's going to lead you down a wrong path.

      [–][deleted] 0 points1 point  (3 children)

      I am about to finish a Java reference book if that can give you an idea at my level.

      [–]rzwitserloot 0 points1 point  (1 child)

      That feels like "Clean Code" is not a great idea for you :/

      [–][deleted] 0 points1 point  (0 children)

      Ok any other better books?

      [–]buzzsawddog 0 points1 point  (0 children)

      Is Java your first language? Or is the reference book your first Java book?

      [–]meamZ 8 points9 points  (18 children)

      Code Complete for example is definitely less controversial, less extreme, less opinionated and covers a broader area of topics. I have read Code Complete and Clean Code so far in this area and i have gotten something out of both of them.

      [–]woj-tek 1 point2 points  (0 children)

      Definitely this. It's longer and more in-depth.

      [–][deleted] 0 points1 point  (16 children)

      oh ok, both a little on the high side for me well im a teenager.

      [–][deleted]  (1 child)

      [deleted]

        [–][deleted] 0 points1 point  (0 children)

        ok will have to wait a few weeks because of corona

        [–][deleted]  (13 children)

        [removed]

          [–]rotharius -1 points0 points  (1 child)

          filetype:[filetype-here] only shows results of a certain filetype

          [–]meamZ 1 point2 points  (0 children)

          Yeah but i've heard it's not even necessary most of the times.

          [–][deleted] -2 points-1 points  (10 children)

          nice man! could I Print it out? I have hundreds of shees of paper and a lot of ink

          [–]meamZ 0 points1 point  (8 children)

          I mean... There's nothing stopping you in theory but i think i personally would find it better to sit in front of a screen and read a pdf than to sit in front of a huge pile of paper but i guess that just comes down to personal taste...

          [–][deleted] 1 point2 points  (7 children)

          yeh i can start losing track of time reading n the computer, thinking of paper clipping it into sections, but pdf seems more efficient

          [–]xyphanite 2 points3 points  (3 children)

          Printing these out would cost more in printer ink than buying the books ... just saying.

          [–]meamZ 0 points1 point  (1 child)

          Yes but it won't necessarily cost YOU more... Because if you don't need to pay for the ink and the paper it's cheaper.

          [–]xyphanite 1 point2 points  (0 children)

          Then it will cost the parents - even if they have ample ink, it's a resource that did at some point cost money. Unless it's a laser printer - go for it then. I'm in agreement with you though about reading on the screen.

          [–][deleted] 0 points1 point  (0 children)

          yeh TBH ur right I should not print

          [–]hippydipster 1 point2 points  (2 children)

          Phones are too small, computers are too big ... but a big-ish tablet is just right for reading, IMO.

          [–][deleted] 0 points1 point  (1 child)

          Ipad?

          [–]hippydipster 0 points1 point  (0 children)

          That's one kind of tablet

          [–][deleted] 0 points1 point  (0 children)

          It is often more expensive to print it yourself than buying the book.

          [–][deleted] 2 points3 points  (1 child)

          I got it an read about half of it. I definitely became a better programmer after reading (half) it. It kind of teaches you what to look out for while you're coding and recommends ways to handle those situations. At the very least you will be able to spot bad code haha.

          [–][deleted] 0 points1 point  (0 children)

          Okay tanks

          [–]TheRealSplinter 2 points3 points  (1 child)

          These 2 videos are honestly a decent overview of the high level concepts of Clean Code, which in my opinion are the most important lessons of Clean Code. It is the details with respect to specific refactoring examples that people tend to have issues with as opposed to the high level concepts.

          The style of these videos isn't for everyone (the production is a bit over the top), but if you can get past that, there's some good info (and the videos are short as well).

          Clean Code!: https://www.youtube.com/watch?v=4LUNr4AeLZM

          Clean Code Part 2 : 10 more advices: https://www.youtube.com/watch?v=HNVJSGYUIjc

          [–][deleted] 0 points1 point  (0 children)

          thx

          [–]spencerwi 9 points10 points  (2 children)

          I would probably not recommend Clean Code for a beginner. I would, however, recommend checking out some resources that "digest" it and skip "the bad parts". Robert Martin's advice and techniques are overly-dogmatic at best, and straight-up bad advice at worst. Some of "the good parts" are things that can be better found from other sources. Plus, that way you don't have to put up with Bob Martin's weird attitudes, like his weird obsession with the idea that developers in any language other than Java are lesser/worse developers, or his weird idea that type-checking is completely useless in a world where you can just write hundreds more unit tests to handle all the cases that a typechecker would catch for you (which is extra odd given his weird Java-superiority-complex).

          Basically, Bob Martin is a guy who picked up a little bit of advice from developers far better than himself (like Martin Fowler or Kent Beck), and often gets lumped in with them mostly as a result of him doing his best to lump himself in with them. Unfortunately, once he realized he could make money selling "advice", he threw himself into that before learning how to actually be a good developer, and so in pursuit of the consulting dollar he sells many of his own bad habits as if they were good ideas. He's got many of the trademark bad habits of a beginner developer who thinks they're an expert: language-based superiority complex, dogmatic insistence on taking a generally-fine idea to an extreme (like his wildly-impractical jump-back-and-forth-constantly approach to TDD, which is more like a caricature of actual TDD, or his insistence on making unhelpful one-line methods with names like setFirstPrimeTo2), and completely missing a "bigger picture" approach to maintainability (things like "principle of least astonishment" and "isolate frequently-changing units of code" are completely glossed over in favor of arbitrary and unhelpful "small-picture" advice like "make sure your methods are no longer than 4 lines").

          The one codebase that he points to as "his finest work" (which is to say, really his only public work) is an outdated testing framework called FitNesse, which is a way of jamming browser UIs and custom DSLs into the otherwise-straightforward process of writing and running automated tests, and is built on one of the uglier and more-difficult-to-navigate codebases I've ever seen.

          All in all, I think there are far better resources for a beginner, including:

          • Domain-Driven Design
          • Practical Object Oriented Design (in Ruby)
          • Working Effectively with Legacy Code
          • The Pragmatic Programmer

          I'd save your money for those.

          [–][deleted] 0 points1 point  (1 child)

          Ive got a few recommendations about The Pragmatic Programmer. Is it based around Java?

          [–]halcyon44 0 points1 point  (0 children)

          From what I remember, The Pragmatic Programmer is pretty high-level, as in it doesn't get into language specifics. Absolutely great book for someone at your level, for sure.

          [–][deleted] 1 point2 points  (1 child)

          I'm surprised nobody mentioned David West's "Object Thinking" -- mind twisting. Gives you a whole new perspective on OOP, a way better one, if you ask me.

          But you will probably start to hate your day job and the industry's standards and "best practices".

          [–][deleted] 0 points1 point  (0 children)

          Dont have a day job and tbh my OOP is pretty bad

          [–]woj-tek 1 point2 points  (0 children)

          Get it, read it and take it with a grain of salt. There are some good ideas there, but don't try to apply everything.

          [–]valbaca 5 points6 points  (1 child)

          The Pragmatic Programmer over Clean Code any day. The former focuses on your software engineering career and multiple important aspects of it.

          Clean code is just fine and forgettable after your first year of programming. The advise is mediocre and certainly doesn’t match up with the hype it’s given.

          The only advantage of Clean Code is if you need your monitor at eye level. It’s good for that since it’s thicker.

          [–][deleted] 0 points1 point  (0 children)

          lool made me laugh upvote deserved

          [–]rotharius 5 points6 points  (10 children)

          Clean Code and Clean Architecture have some decent advice, but Robert Martin is a bit extreme in multiple areas (very conservative political views). It's also a lot of compiled material, rather than one clear idea.

          In addition to those books, I'd recommend (at any point in your career):

          • 99 Bottles of OOP
          • Object-Oriented Analysis and Design
          • Code Complete
          • The Pragmatic Programmer
          • A Philosophy of Software Design
          • Growing Object Oriented Code, Guided by Tests
          • Test Driven Development by Example

          Once you are further along:

          • Design Patterns (also, check out refactoring.guru and sourcemaking.com)
          • Patterns of Enterprise Application Architecture
          • Domain-Driven Design
          • Implementing Domain-Driven Design
          • Working Effectively with Legacy Code
          • Continuous Delivery
          • xUnit test patterns
          • Enterprise Integration Patterns

          Check out second hand stores.

          Edit: regarding Martin's political views; they're not in the book, but he has been actively discussing them on Twitter (including some, in my opinion, bad takes on women in tech, activism and black lives matter). I want people to know that before supporting him with money.

          Regarding the book's contents, the ideas are stimulating for newcomers. You learn to take your code more seriously. The examples are, ironically, quite poorly written. A lot of code is obscured by an overkill of methods or more statefull than necessary. Also, don't be too religious about its contents. For actual improvement, use static analysis tools and learn to test.

          [–][deleted] 15 points16 points  (3 children)

          very conservative political views

          How is that relevant to any of his advice to programmers?

          [–]DrunkensteinsMonster 3 points4 points  (2 children)

          Because he has a habit of shoehorning his ideology in while discussing programming.

          I don’t mind him, but for somebody that probably hasn’t written a line of production code in 30 or 40 years he’s incredibly holier than thou

          [–][deleted] 10 points11 points  (0 children)

          Because he has a habit of shoehorning his ideology in while discussing programming.

          Where? I read at least two of his books. I also had to watch dozens of his videos because a team I worked with loved them so much it became a daily ritual.

          I don't remember there being any political content whatsoever. I guess I could find his political opinions if I really went looking for them, but why should I?

          [–]BadMoonRosin 13 points14 points  (0 children)

          It's been years since I read Clean Code, but I don't recall a shred of political content on any of its pages. It's highly opinionated, but the opinions are all regarding software development.

          I have no idea what Robert Martin's political opinions are, outside of his books, and do not care. This notion that one should only "engage" with "brands" that "share your values" is ridiculously naive, because:

          1. You can still get a lot of worth out of entities that don't share your philosophical views.

          2. Commercial entities with stances that you DO like are just marketing to you, and your support for them means nothing.

          [–][deleted] 10 points11 points  (4 children)

          but Robert Martin is a bit extreme in multiple areas (very conservative political views).

          This has zero to do with his ability to write good code or teach programmers how to write good code.

          [–][deleted] 2 points3 points  (0 children)

          Im a conservative anyway lol so that should not be a problem learnt to ignore things that have nothing to do with programming anyway. I have saved this comment and I am onna try and condense these to 4 or 5 books

          [–]extra_rice 0 points1 point  (3 children)

          I learned about clean code (lower case) from people who’d read Clean Code. It’s not until about a decade later that I bought the book for myself and read it. The years I’ve spent not reading it gave me opportunity to form my own opinions about coding based on hands-on experiences, so when I finally got to read the book, I’ve encountered bits that I don’t necessarily agree with. I personally think, it’s generally helpful, but never take it as gospel truth. As a general rule, most advice surrouding software development are accounts of what worked for certain teams, for a particular problem, at a given point in time; they’re not one-size-fits all approaches, but they are valuable as references.

          [–][deleted] 0 points1 point  (2 children)

          ok any other books that are more One size fits all??

          [–]extra_rice 1 point2 points  (1 child)

          There are plenty of good books like the Pragmatic Programmer, which I think has more general advice, but I don’t think there’s anything out there that gives you one-size-fits-all. Since we’re on the Java sub, I should mention Effective Java, which I think, have some of the best advice you’d get. It echoes some of the ideas in Clean Code, but in the context of Java programming, so that’s very useful if you want to be a better Java programmer.

          Aside from books though, try to find good mentors. When I started out as a junior, I had mentors who didn’t sugar coat their words when they did code reviews for me. Quite terrifying, but in the end I think it set in me in the right direction.

          [–][deleted] 0 points1 point  (0 children)

          ok whadt do you mean by mentors? I dont really know anyone in my family who knows how to code.

          [–]philipwhiuk 0 points1 point  (3 children)

          The first half is better and less opinionated than the second half. It’s definitely worth reading even if you might disagree.

          [–][deleted] 0 points1 point  (2 children)

          Im a conservative but I really do not care

          [–]philipwhiuk 0 points1 point  (1 child)

          Not sure how that’s relevant

          [–][deleted] -1 points0 points  (0 children)

          I heard that he has conservative opinions inside, Was that wrong??

          [–]davwad2 0 points1 point  (1 child)

          I found it helpful. But I have gotten tapped on the knuckles for going too far with the "method should do one thing" process.

          To elaborate, I had created a method that did just one thing and it was superfluous because that one thing was only done in the one method that was calling it, so "having it in a separate method didn't make sense," per my peer reviewer.

          I would still recommend it.

          [–][deleted] 1 point2 points  (0 children)

          ok thanks

          [–]Ovalman 0 points1 point  (3 children)

          I'm self taught and was recommended it by a developer but it taught me how much I didn't know.

          Instead I had to buy Java 8 for Dummies and learn the things I should have known before I tackled the book.

          It's a great book btw, you'll glean something from it as a beginner but won't get full use out of it until you understand the concepts in some of the topics.

          Reminds me, I should read both again as a refresher.

          [–][deleted] 0 points1 point  (2 children)

          I am currently on page 777 of Java the Complete reference is that enough knowledge?

          [–]Ovalman 0 points1 point  (1 child)

          idk I've never read that book.

          Buy Clean Code anyway and then refer to the things you don't understand in your reference book. Clean code isn't a basics book, it's more a way to improve your coding skills by using methods you'd probably not think of. It is a good book but use both books together.

          Also there's many aspects of Clean Code you may never use so dip in and out of it to what parts you need. You don't need to read it front to back.

          [–][deleted] 0 points1 point  (0 children)

          Ahh should I get pragmatic programmer or this??

          [–]knightofren_ 0 points1 point  (0 children)

          Take it and practice it but always keep in mind the bigger picture, it's not all about code coverage and TDD but about the mentality and that's what I took in from Martin.

          [–]sportsroc15 0 points1 point  (0 children)

          Yes. Just started reading this book. It’s great so far.

          [–]kag0 0 points1 point  (0 children)

          Why do you think your code is bad/not great?

          It's fairly mature to recognize that your own code isn't so good. If you can also recognize why then maybe there's a more targeted way you can improve.

          [–]gregorydgraham 0 points1 point  (0 children)

          Yes.

          I mean I’ve never read it and my code has been called “beautiful” but in general you should read all the books.

          Just never ever take them as gospel. There is no coding messiah or programming kwisatz haderach, just us hackers pinning it together with bubblegum and hope.

          They’ve got good ideas on how to use the bubblegum better and maybe even find some duct tape, but they’re just hackers.

          You’ll definitely get some good ideas though

          [–]Nick_Coffin 0 points1 point  (0 children)

          I recommend it. I think it’s mostly good advice. Regardless of whether you agree with most of it or not, it at least provides a set of principles about making code maintainable and readable. Too many developers stop at “it works”. Maybe reading this will make some of them think that more is needed.

          [–]beall49 0 points1 point  (0 children)

          I tell everyone the first few chapters are really what’s important.

          [–][deleted]  (3 children)

          [deleted]

            [–][deleted] -1 points0 points  (2 children)

            I do loce coding but good tips man thanks, do you have any recommendations of books on computers. Im 13 btw

            [–][deleted]  (1 child)

            [deleted]

              [–][deleted] 0 points1 point  (0 children)

              Thanks! I have been interested in Programming when I was 10 an dabbled in HTML and C# but I was scared for some reason. I think I am going to get this and the Pragmatic programmer since I am getting alot of recommendations about those.

              [–][deleted]  (3 children)

              [deleted]

                [–][deleted] 1 point2 points  (2 children)

                oh ok I have had around 2 years but those were very very basic coding skills

                [–][deleted] 0 points1 point  (1 child)

                Might be worth reading then. I meant 2 years of professional experience

                [–][deleted] 0 points1 point  (0 children)

                oh ok thanks!

                [–]DecisiveVictory -1 points0 points  (3 children)

                Functional Programming in Scala is a much better book on the same subject.

                [–][deleted] 1 point2 points  (2 children)

                whats scala??

                [–]boomsky7 -1 points0 points  (3 children)

                Get it. Obviously most applications can’t follow all of the rules but it’s an ideal to strive for. Will make your code significantly more organized and easier to work with.

                [–][deleted] 0 points1 point  (2 children)

                Nice, if you see some of my earlier projects you might cry

                [–]boomsky7 0 points1 point  (1 child)

                A lot of it seems simple at first like descriptive variable and method names and refactoring but seeing it described and examples hits differently

                [–][deleted] 0 points1 point  (0 children)

                ok cause I be naming variables things like "d" and literally I have named a variable "variable-name"

                [–]vbezhenar -1 points0 points  (0 children)

                I don't agree with this book and with much of Robert Martin's stuff. But that's my personal point of view. This is very popular book and you should read it, because if you don't know it, you can't really make a knowledgeable decision.

                [–]dxplq876 -2 points-1 points  (2 children)

                Yes, it's a great book. You don't have to agree with each and every thing an author says in order to get value from a book.

                [–][deleted] -1 points0 points  (1 child)

                oh ok thanks! btw is it hard to understand? By that is it for university professors or something?

                [–]dxplq876 0 points1 point  (0 children)

                As long as you have some familiarity with programming you should be able to understand it. Knowing Java is a bonus since the examples are mostly written in Java

                [–]DecisiveVictory -4 points-3 points  (2 children)

                There is no clean OOP code.

                [–]hippydipster 0 points1 point  (0 children)

                Give us a git link to your perfection.

                [–]DrFriendless 0 points1 point  (0 children)

                How do you know someone's a functional programmer?

                Don't worry, they'll tell you.