Earlier quoted context omitted.
2000-line God class ... "hard to read" because they need to open a new file Might be me, but I've always found this a rather strange argument: either they aren't using 'go to definition' which means that to be able to read the other code they have to scroll through the file manually, leaving where they are, and then go back. That's not really convenient? Or they are using 'go to / peek definition' and then it doesn't…
I have counterpoints on both ends here. It's not always possible for a "goto definition" function to work in dynamic languages. If you're in a large file, it's quite easy to jump around with line marks (a la vim), searching, etc.
Software Architecture Is Overrated, Clear and Simple Design Is Underrated
171–180 of 218 posts
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated
#172The value of Enterprise Architecture doesn’t come in to play until you’re an actual Enterprise. We operate more than 300 IT systems, from a myriad of different and switching (courtesy of procurement) suppliers. These systems are operated by 5000-7000 employees, and range from making sure employees get paid and patients get the right medicine to simple time booking apps. Most of these systems need to work together, an…
Probably the smartest thing ever said when it comes to design patterns.
To put it in non-tech terms, a lot of design patterns equates to learning how to build a suspension bridge when building a back patio to a house. There's value, sure, maybe. But don't kid yourself. 80% of projects don't survive for more than 3 years at best. Most of which never really get "updated" after a year or two. Nor see teams more than half a dozen people.
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated
#173Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated
#174Earlier quoted context omitted.
I have counterpoints on both ends here. It's not always possible for a "goto definition" function to work in dynamic languages. If you're in a large file, it's quite easy to jump around with line marks (a la vim), searching, etc.
Good point about dynamic languages. But line marks also work across files, right?
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated
#175In my career thus far, I can honestly say I've never, ever, ever seen an "Architect" who actually provided valuable inputs. Not trying to say they don't exist, but I've just never witnessed someone with that title actually have a positive impact on any project I've worked on. The only semi-positive value I've seen an architect have is when they counter another architect to allow the engineers get on with their work w…
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated
#176Services at Uber are pretty much all stateless Go or Java executables, running on a central shared Mesos cluster per zone, exposing and consuming Thrift interfaces. There is one service mesh, one IDL registry, one way to do routing. There is one managed Kafka infrastructure with opinionated client libraries. There are a handful of managed storage solutions. There is one big Hive where all the Kafka topics and datasto…
What you describe is an architecture, of course, and it didn't happen by accident.
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated
#177Let’s see how the OP’s system looks in 20 years. Then we’ll see how clear and simple it has remained. The OP is railing against a culture that never existed. Banks software architects are not in their offices smoking cigars and making UML diagrams that they send to coders, only to realize later that they made the wrong trade off. What happens is: You design a system for what it’s supposed to do. You do it the way the…
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated
#178Earlier quoted context omitted.
This reminds me of the framework va libraries argument or ORM vs raw SQL. Yes frameworks and ORMs can be constraining and limit clever solutions. But when you need to add complex features to a complex project you are always glad that every other programmer that came before you was constrained and that things use a familiar pattern.
I've encountered spring/hibernate projects in the with lots of performance and integrity issues that were easy to straighten out by just cutting out the orm layer and replacing it with non magical, simple SQL. Magic is nice when it works but when it stops working and you lack the skills on the team to make sense of it, things get ugly quickly. This happens exactly when you are adding complex features that stretch the…
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated
#179That was never the point. The point was to be able to communicate complex concepts in a way that people could understand and work with.
Bravo for having done that!
Re: Software Architecture Is Overrated, Clear and Simple Design Is Underrated
#180Earlier quoted context omitted.
In my own experience, it's really a must to go through both over- and under-engineering phase yourself: only then I found I got a really clear view on what's good and bad in approach, allowing me to default to somewhere in between (with outliers when useful) and in any case with focus on simplicity (but again, if needed for e.g. performance that can be violated). All of this is the basic 'learn from your mistakes' pr…
I don't even think it's a phase. From what I see in my own experience, overengineering comes from not having a deadline to deliver an actual working piece of software. Unclear requirements. Fear that the code must be perfect against change without knowing what the changes might be. Underengineering comes from confidence that the issues are too small to worry about. Or the time constraints mean I can't try to find goo…
I hated dealing with any of his code.