News for hackers. Stuff that matters.
Re:Don't overuse interfaces by javajosh on Friday May 12, 2017 @12:03PM (#14325146)
Most of my career has been spent building stateless web applications over relational databases in Java. About half enterprise, and half consumer facing internet. Sometimes using Hibernate, sometimes using JDBI, sometimes leaning heavily on SPs. Sometimes generating HTML, and sometimes exposing REST-like API. The various runtime accoutrements of this architecture, like caches, queues, health-checks, proxies, linux, etc are quite familiar to me. My time as a freelancer gave me particularly broad appreciation of real world solutions.

In every case, codebase complexity was dominated by administrative overhead. My passing experience with apps written in C#, ASP, and PHP, tell me that it is the same story there, too.

This is my subjective view. One way you might understand my perspective (and perhaps even share it, to some degree) is to consider the act of adding a column to a database table, and how a typical OOP/RDB webapp codebase must change to incorporate a new DB value. (And this is only the tip of the iceberg, since usually adding a feature requires a view, an index or two, plus column and table changes.)

Re:Don't overuse interfaces by Const-me on Friday May 12, 2017 @01:05PM (#14325706)
I’m a full-time developer since 2000. Over those 17 years, I only briefly did web development, Java or relational databases. Mostly I’ve been doing system programming, game development, embedded development, robotics. When I did networking, it was usually lower level than REST. I have minimal experience with proxies and linux, I’m mostly a Windows developer. Lately I’m working on Windows desktop software, the area is CAD/CAM.

As you see, almost nothing common with your background.

For the kind of software I work on, if the code is 10x more complex than necessary, the software might fail the performance targets. Complex code is also prohibitively harder to maintain and debug. And esp.in embedded, quality requirements are just higher: web requests come and go, but embedded software needs to reliably work for days without restarts.

I think the reason why I’m generally OK with other people’s OOP-style code I see in the projects I work on, is that code is just better then what’s in an average web.app. Especially if the web app ain’t Google or Facebook, AFAIK for these guys, software quality translates to substantial saving on electric bills.