Is clean architecture controversial?


  • Notification Spam Recipient

    @Gustav said in Is clean architecture controversial?:

    afe592c8-377b-4901-bf47-c4a3c54bede4-image.png

    Have you met people after years of serious computer science education? Their heads are choke full of theoretical bullshit and have to be reeducated on site to be productive in any way.


  • Banned

    ..



  • @MrL said in Is clean architecture controversial?:

    Scores of programmers (surprisingly?) have no capacity to think for themselves and are only capable of blindly following directions from messiahs. This is my holy hammer and everything is a nail.
    It's impossible to reason with them. As an answer you either get long diatribes full of memorized expressions, that have little to do with problem at hand, or just links to lectures/blogs/books of their masters.

    I have some hope on this front, and surprisingly it's coming from the AI people. Co-pilot is getting there. The chat-GPT thing is surprisingly good at producing OK-ish solutions to trivial and well-known problems (it comes down in flames for anything slightly complicated, though). Might take a few years, and some more iterations, but this might actually make a lot of warm-body / copy-paste programmers redundant.


  • Notification Spam Recipient

    @cvi said in Is clean architecture controversial?:

    @MrL said in Is clean architecture controversial?:

    Scores of programmers (surprisingly?) have no capacity to think for themselves and are only capable of blindly following directions from messiahs. This is my holy hammer and everything is a nail.
    It's impossible to reason with them. As an answer you either get long diatribes full of memorized expressions, that have little to do with problem at hand, or just links to lectures/blogs/books of their masters.

    I have some hope on this front, and surprisingly it's coming from the AI people. Co-pilot is getting there. The chat-GPT thing is surprisingly good at producing OK-ish solutions to trivial and well-known problems (it comes down in flames for anything slightly complicated, though). Might take a few years, and some more iterations, but this might actually make a lot of warm-body / copy-paste programmers redundant.

    I'm sure it will backfire horribly and make everything worse. It's IT.


  • BINNED

    @cvi said in Is clean architecture controversial?:

    @MrL said in Is clean architecture controversial?:

    Scores of programmers (surprisingly?) have no capacity to think for themselves and are only capable of blindly following directions from messiahs. This is my holy hammer and everything is a nail.
    It's impossible to reason with them. As an answer you either get long diatribes full of memorized expressions, that have little to do with problem at hand, or just links to lectures/blogs/books of their masters.

    I have some hope on this front, and surprisingly it's coming from the AI people. Co-pilot is getting there. The chat-GPT thing is surprisingly good at producing OK-ish solutions to trivial and well-known problems (it comes down in flames for anything slightly complicated, though). Might take a few years, and some more iterations, but this might actually make a lot of warm-body / copy-paste programmers redundant.

    This will just produce even more of said people who have absolutely no idea what they're doing.


  • Banned

    ..


  • ♿ (Parody)

    @Gustav said in Is clean architecture controversial?:

    If so, how come you don't believe me when I say functional programming leads to code that takes longer to write and requires more skill?

    Where did you get this from? I didn't recall this and went back and re-read the subthread and didn't see anything remotely saying this.

    Can you think of a reason why having code that's more difficult to write would be a con? I can think of a few.


  • ♿ (Parody)

    @Gustav said in Is clean architecture controversial?:

    @Zecc said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    You can be as wrong as you want and there will never be any negative consequences!

    According to my boss, my predecessor was fired because this integration I'm maintaining frequently caused data loss. It caused someone else to be fired because it made it look like they had skipped a whole day's work as a data entry operator.

    This is literally the first case I ever heard in my entire life of a software developer getting fired for messing up their code without also getting criminal charges. And like a third case overall. I once had a coworker whose bad code caused the company a six figure loss. He didn't get a yearly bonus and that's it.

    Yeah, there's a lot of bias towards not firing people. Last year our customer had to downsize our contract due to their own, COVID related budget woes. We managed to pawn off some of our deadweight on some other luckless team. My bosses basically couldn't manage to get her fired previously even though she so desperately deserved it.

    I think this is part of the reason why so many contractors exist in this field. They're much easier to get rid of.


  • Banned

    ..


  • ♿ (Parody)

    @Gustav said in Is clean architecture controversial?:

    @boomzilla said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    If so, how come you don't believe me when I say functional programming leads to code that takes longer to write and requires more skill?

    Where did you get this from? I didn't recall this and went back and re-read the subthread and didn't see anything remotely saying this.

    I could point to the 9th post in this thread, specifically the 15th and 16th word (one of them written in italics for extra emphasis).

    OK, let's look at that post:

    @Benjamin-Hall said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    functional programming, Rust, and other unquestionably good ideas

    :nelson: :laugh-harder:

    To be specific, it's the unquestionably part there I object to. All of those things have pros, cons, and tradeoffs. They're things that are good for some purposes, under some circumstances. Not universally.

    I'm not seeing it. Even if I ignore your bad counting and just look at the italics. But I suppose you meant the 11th post:

    @Benjamin-Hall said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    @Benjamin-Hall said in Is clean architecture controversial?:

    All of those things have pros, cons, and tradeoffs.

    Pros: higher code quality (= less bugs), less surprises (= less bugs), codebases are easier to reason about when line counts are in the millions (= less bugs).

    Cons: more lines of code need to be written (= more costly in short run), you need better developers to make it work (= more costly in short run)

    Compare with pros/cons of the examples I gave but you excluded from your post. Do you see a pattern here?

    Functional programming is a style that does not inherently mean any of those pros or cons. It's just a style. Rust can improve those things if you're in a problem domain where the issues it fixes are salient and where it's even applicable. For example, all my front-end work (either web or mobile) cannot use Rust at all, so transitioning to Rust would be a massive show-stopper and a no-go. And even in areas where it's relevant, it's one of of many possible options.

    Seriously, you're being a religious zealot here.

    Seriously, that doesn't say anything like you claimed; "how come you don't believe me when I say functional programming leads to code that takes longer to write and requires more skill?"

    Or I could remember who I'm talking to and what happens every time I try to honestly answer a question like this, and not bother.

    You get mad because I notice your bullshit? Yeah, thought so.

    Can you think of a reason why having code that's more difficult to write would be a con? I can think of a few.

    I could point to the 8th post in this thread where I already said in no uncertain terms it's a con. Or...

    Now you're disagreeing with yourself. Well done.

    Or I could remember who I'm talking to and what happens every time I try to honestly answer a question like this, and not bother.

    You get mad because I notice your bullshit? Yeah, thought so.


  • Banned

    This post is deleted!

  • Banned

    ..


  • ♿ (Parody)

    @Gustav Ah, I see the problem. You've blocked @Gribnit and so your count is off.


  • Banned

    ..


  • Considered Harmful

    @HardwareGeek said in Is clean architecture controversial?:

    What do you have against short people???

    Nothing, if I can help it. Ew.

    Go, Harvard, go!

    Fight fiercely Harvard,
    fight, fight, fight -
    impress them with your prowess, do.
    Albeit they possess the might,
    nonetheless, you have the will...


  • Notification Spam Recipient

    @Gustav said in Is clean architecture controversial?:

    @sockpuppet7 to answer your question - as you can see, clean architecture is very controversial.

    Not particularly. Nice ideas but as some wag pointed out: none of it survives first contact. You can apply it to small projects but as you add people, code bloat and deadlines it will go out the window.

    Most of uncle bob and his cultists advice is suspect though. I went through one of his books recently and the best it could probably do is pull a newbie into novice territory. Nothing to sniff at but scaling his ideas to non trivial legacy projects would take yonks. Not going to happen.

    I quite liked one of his refactoring examples. Would have had a field day tearing it apart and killing it.


  • Notification Spam Recipient

    @boomzilla said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    @Zecc said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    You can be as wrong as you want and there will never be any negative consequences!

    According to my boss, my predecessor was fired because this integration I'm maintaining frequently caused data loss. It caused someone else to be fired because it made it look like they had skipped a whole day's work as a data entry operator.

    This is literally the first case I ever heard in my entire life of a software developer getting fired for messing up their code without also getting criminal charges. And like a third case overall. I once had a coworker whose bad code caused the company a six figure loss. He didn't get a yearly bonus and that's it.

    Yeah, there's a lot of bias towards not firing people. Last year our customer had to downsize our contract due to their own, COVID related budget woes. We managed to pawn off some of our deadweight on some other luckless team. My bosses basically couldn't manage to get her fired previously even though she so desperately deserved it.

    I think this is part of the reason why so many contractors exist in this field. They're much easier to get rid of.

    Explains why so many of them are incompetent, big idea people.


  • Banned

    ..


  • ♿ (Parody)

    @Gustav said in Is clean architecture controversial?:

    There's one advice of his that people consistently overlook. "Refactor 'til you drop." As in, keep refactoring until you have nothing left to refactor, and as soon as something pops up during the next feature you work on, refactor it too. IMO this is the most important rule of all. Constant refactorings are the key to maintaining quality codebase in the long run. Old architecture will always fall apart eventually, and the only way to avoid it is to replace it with new architecture. And the more often you do it, the less has to change each time, . But that increases development time, and see above.

    I wonder how much of the benefit of this is that you're constantly working on "all" parts of the system and keep fresh about it. Ever feel like an archaeologist when you crawl back into some corner of a code base that hasn't been touched in a long time? It's not just being familiar with the code, but also understanding the requirements, use cases, etc.


  • Considered Harmful

    @boomzilla said in Is clean architecture controversial?:

    I wonder how much of the benefit of this is that you're constantly working on "all" parts of the system and keep fresh about it.

    I did this (constant refactor at 100% coverage) for a year and yes, that's also a factor. However, parts do still stabilize enough that they can make it through many, many rounds without being visited directly.

    It can overfit the code to the domain, a bit, making it harder to extract reusables.. but, it can also halt and reverse the conceptual complexity growth of the code base.


  • ♿ (Parody)

    @Gribnit I believe it. I often look at something I wrote recently and think about how I wish I'd done some things differently, knowing what I know now.


  • Banned

    ..


  • Notification Spam Recipient

    @Gustav said in Is clean architecture controversial?:

    @DogsB said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    @sockpuppet7 to answer your question - as you can see, clean architecture is very controversial.

    Not particularly. Nice ideas but as some wag pointed out: none of it survives first contact.

    Nor second, nor third, nor fourth... But they do alright 5th time around. Mostly because you go away with the common misconceptions, such as a comprehensive upfront design means an unchangeable upfront design.

    What?

    You can apply it to small projects but as you add people, code bloat and deadlines it will go out the window.

    Yes, and for very specific reasons.

    • Most of the people you add lack the skills necessary to pull it off. Pulling it off is hard, but it's just so worth it when you manage.
    • Code bloat happens because not enough care was taken to maintain code quality. The more quality drops, the harder it is to maintain. Below certain threshold it becomes a losing fight. Avoiding it is hard, but it's just so worth it when you manage.
    • Quality software takes time. If you don't have enough of it, it's simply not possible. It saves you time in the long run because of all the bugs that never happened, but managers (as a rule) are only capable of short-term thinking. And bugs that never happened are hard to count and put on a PowerPoint slide, so you can't even make a case to the manager in a language they understands.

    That's all nice in theory but there's financial pentalies for missing the deadline. That deadline was announced today and is less than two months away and requirements came in yesterday. This is the reality of most software development.

    Most of uncle bob and his cultists advice is suspect though.

    There's one advice of his that people consistently overlook. "Refactor 'til you drop." As in, keep refactoring until you have nothing left to refactor, and as soon as something pops up during the next feature you work on, refactor it too. IMO this is the most important rule of all. Constant refactorings are the key to maintaining quality codebase in the long run. Old architecture will always fall apart eventually, and the only way to avoid it is to replace it with new architecture. And the more often you do it, the less has to change each time, . But that increases development time, and see above.

    Old architecture will always fall apart because it was made to solve an old problem. Not the current one you're hacking it to solve too.

    As you mentioned time. We don't have any of it. Barely enough to get the shit in let alone refactor the old shit.

    I've only worked once on a project where we successfully pulled that off. And it was only possible because we had constant 10% time allocation for refactorings throughout the entire project (5 years and counting at the time I left). We also had literal 100% unit test coverage and a comprehensive system test suite. It was the key part of how we managed to keep doing refactorings all the time without breaking anything. Surprisingly, even the junior coders that joined throughout quickly got into the rhythm of 100% coverage and constant refactorings without much trouble.

    Yeah, it's an easy rhythm to get into because you were able to blag time to do it. I was part of a project like this too and it only worked because that's how we started it and how we forced things to continue.

    Was your project like that from the start or did you take a legacy system and massage it into shape?

    The latter would make a great book most of us would read.



  • @Gustav said in Is clean architecture controversial?:

    For reference.

    b28425f1-a763-4f13-9dfd-90c5c2308dc8-image.png

    If only there was an unambiguous way to refer to a previous post in a discussion. Something that would, I don't know, relate or redirect or... wait, I got it! let's say it would link to the other post!

    I think that would unquestionably be a good idea. :tro-pop:


  • Notification Spam Recipient

    @remi said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    For reference.

    b28425f1-a763-4f13-9dfd-90c5c2308dc8-image.png

    If only there was an unambiguous way to refer to a previous post in a discussion. Something that would, I don't know, relate or redirect or... wait, I got it! let's say it would link to the other post!

    I think that would unquestionably be a good idea. :tro-pop:

    None of that French Flair and ingenuity from you. Back to the Trolly yard. If it pleases do us a solid and knock the English out.


  • Banned

    ..


  • Banned

    ..


  • Notification Spam Recipient

    @Gustav said in Is clean architecture controversial?:

    @DogsB said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    @DogsB said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    @sockpuppet7 to answer your question - as you can see, clean architecture is very controversial.

    Not particularly. Nice ideas but as some wag pointed out: none of it survives first contact.

    Nor second, nor third, nor fourth... But they do alright 5th time around. Mostly because you go away with the common misconceptions, such as a comprehensive upfront design means an unchangeable upfront design.

    What?

    Programming is hard and experience helps.

    You're making less sense than Grinbit now.

    You can apply it to small projects but as you add people, code bloat and deadlines it will go out the window.

    Yes, and for very specific reasons.

    • Most of the people you add lack the skills necessary to pull it off. Pulling it off is hard, but it's just so worth it when you manage.
    • Code bloat happens because not enough care was taken to maintain code quality. The more quality drops, the harder it is to maintain. Below certain threshold it becomes a losing fight. Avoiding it is hard, but it's just so worth it when you manage.
    • Quality software takes time. If you don't have enough of it, it's simply not possible. It saves you time in the long run because of all the bugs that never happened, but managers (as a rule) are only capable of short-term thinking. And bugs that never happened are hard to count and put on a PowerPoint slide, so you can't even make a case to the manager in a language they understands.

    That's all nice in theory but there's financial pentalies for missing the deadline. That deadline was announced today and is less than two months away and requirements came in yesterday. This is the reality of most software development.

    It's nice you agree with me. Too bad you're too occupied with being contrarian to notice. Yes, stupid bosses set stupid deadlines.

    It's unlikely your boss is negotiating the contract the business agreed too.

    Most of uncle bob and his cultists advice is suspect though.

    There's one advice of his that people consistently overlook. "Refactor 'til you drop." As in, keep refactoring until you have nothing left to refactor, and as soon as something pops up during the next feature you work on, refactor it too. IMO this is the most important rule of all. Constant refactorings are the key to maintaining quality codebase in the long run. Old architecture will always fall apart eventually, and the only way to avoid it is to replace it with new architecture. And the more often you do it, the less has to change each time, . But that increases development time, and see above.

    Old architecture will always fall apart because it was made to solve an old problem. Not the current one you're hacking it to solve too.

    As you mentioned time. We don't have any of it. Barely enough to get the shit in let alone refactor the old shit.

    And that's the root of your problem. No, wait. The root is bad management who didn't give you enough time.

    So you have more useless advice then. This time blame someone else.

    I've only worked once on a project where we successfully pulled that off. And it was only possible because we had constant 10% time allocation for refactorings throughout the entire project (5 years and counting at the time I left). We also had literal 100% unit test coverage and a comprehensive system test suite. It was the key part of how we managed to keep doing refactorings all the time without breaking anything. Surprisingly, even the junior coders that joined throughout quickly got into the rhythm of 100% coverage and constant refactorings without much trouble.

    Yeah, it's an easy rhythm to get into because you were able to blag time to do it. I was part of a project like this too and it only worked because that's how we started it and how we forced things to continue.

    Was your project like that from the start or did you take a legacy system and massage it into shape?

    The latter would make a great book most of us would read.

    I hate to repeat myself, but it's an easy rhythm to get into because we were able to blag time to do it. Our project like that from the start, and if domeone ever figures out how to do it otherwise, it would make a great book most of us would read.

    So once again, you've nothing of interest to add to anything.


  • Banned

    ..


  • Notification Spam Recipient

    @Gustav said in Is clean architecture controversial?:

    @DogsB if you repeat what I said in slightly different words, it's no surprise ppinting it out sounds like having nothing to add.

    You been spouting shite for most of the thread and not actually reading anything been said to you. The words zealot and bs merchant come to mind. Probably already peddled in this thread.

    I do have one thing, though. If salespeople fuck up deadlines, it's on them. If sales manager lets the fuckup to occur, it's on them too. Stupid deadlines don't appear out of thin air - somebody had to agree to them. Somebody is to blame for the codebase becoming ungodly mess because you weren't given enough time to do it right.

    You can complain about deadlines all you like. You want to make rent you meet them. That is the nature of the beast. The clean architecture cultists will break bad at the first sign of a deadline.



  • @Zecc said in Is clean architecture controversial?:

    There's that story I CBA to DDG that goes something like:
    "why didn't you fire them after they made you lost a million dollars?"
    "they just learned a million dollar lesson and won't be making the same mistake again. I can't afford to replace them with someone who hasn't"

    :laugh-harder:
    Meet my cow-orkers!
    They'll show that they can do better.
    Next bug will cost 10 million dollars.
    :oh:



  • @Gustav said in Is clean architecture controversial?:

    @sockpuppet7 to answer your question - as you can see, clean architecture is very controversial.

    yeah, but is it more controversial than some other software architecture? it seems that the debate is between have a more complex architecture or keeping things simpler, or if you should take it to the extreme, but nothing specific about clean



  • @boomzilla said in Is clean architecture controversial?:

    I think this is part of the reason why so many contractors exist in this field. They're much easier to get rid of.

    As a contractor, I do not view this as a good thing. (OTOH, it does make it more likely that an employer will take a chance on a candidate who doesn't tick all the buzzword boxes on the job description. As a job seeker, I consider this a very good thing.)



  • @DogsB said in Is clean architecture controversial?:

    You're making less sense than Grinbit now.

    Impossible!



  • @DogsB said in Is clean architecture controversial?:

    It's unlikely your boss is negotiating the contract the business agreed too.

    Sometimes the schedule is set by external factors that are not negotiable. "We have to deliver our product to the customer by $delivery_date so that they can engineer it into their widgets and have their product ready to demo at CES on $show_date." $show_date is set years in advance by a third party and is absolutely not negotiable between your boss and the customer. You might be able to fudge $delivery_date a little, but slipping your schedule puts your customer in a pinch to deliver their product on time and may make them more likely to choose your competitor's product instead of yours for their next product.


  • Banned

    ..


  • Notification Spam Recipient

    @Gustav said in Is clean architecture controversial?:

    @DogsB said in Is clean architecture controversial?:

    The words zealot and bs merchant come to mind.

    ab67616d00001e02950359444321d635b59838b3.jpg

    Be the meme you always knew you could be.


  • Banned

    ..


  • Banned

    ..



  • I love these discussions because in my job none of them matter at all. Types, classes, functions, threads, hahaha, what will you kids think of next.



  • @Dragoon said in Is clean architecture controversial?:

    Types, classes, functions, threads, hahaha, what will you kids think of next.

    monoids in the category of endofunctors.



  • @DogsB said in Is clean architecture controversial?:

    bs merchant

    That's a tough job. There's already a huge supply, and most potential customers produce their own.



  • @HardwareGeek said in Is clean architecture controversial?:

    @DogsB said in Is clean architecture controversial?:

    bs merchant

    That's a tough job. There's already a huge supply, and most potential customers produce their own.

    But there seem to be a lot of people who make very large money (and power) doing exactly (and only) that.


  • Notification Spam Recipient

    @Gustav said in Is clean architecture controversial?:

    @DogsB said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    @DogsB said in Is clean architecture controversial?:

    The words zealot and bs merchant come to mind.

    ab67616d00001e02950359444321d635b59838b3.jpg

    Be the meme you always knew you could be.

    I do in fact feel like a minority person who didn't do anything overly wrong, but still has to deal with everyone wanting to kill him, authority figures and random gangbangers alike.

    You do know that's the protagonist in a grand theft auto game. He considered a drive by a good date.



  • @Gustav said in Is clean architecture controversial?:

    functional programming, Rust, and other unquestionably good ideas

    :rofl:



  • @Gustav said in Is clean architecture controversial?:

    Rust makes it virtually impossible to have data races between threads or to use uninitialized/partially initialized/formerly-valid data anywhere in the program

    FTFY :half-trolleybus-r:


  • Banned

    ..



  • @Benjamin-Hall said in Is clean architecture controversial?:

    And sure, design and correctness matter. I've been pushing back against my own company's tendency to spin out half-baked designs and then pivot to something else, leaving stuff to molder and get in the way.

    TIL @Benjamin-Hall works at Google.


  • BINNED

    @Mason_Wheeler said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    functional programming, Rust, and other unquestionably good ideas

    Yes, it's almost as much zealotry as your view of OOP.


  • Notification Spam Recipient

    @Gustav said in Is clean architecture controversial?:

    @DogsB said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    @DogsB said in Is clean architecture controversial?:

    @Gustav said in Is clean architecture controversial?:

    @DogsB said in Is clean architecture controversial?:

    The words zealot and bs merchant come to mind.

    ab67616d00001e02950359444321d635b59838b3.jpg

    Be the meme you always knew you could be.

    I do in fact feel like a minority person who didn't do anything overly wrong, but still has to deal with everyone wanting to kill him, authority figures and random gangbangers alike.

    You do know that's the protagonist in a grand theft auto game.

    Did you even read my post?

    Do you understand you're trying to compare yourself favourably to a violent psychopath?


Log in to reply