Live data from Hacker News

Poof and then Rails was gone

patmaddox.com

11–20 of 66 posts

Re: Poof and then Rails was gone

#11
The problem with software is that it is too easy to get it working. If you would do completely stupid shit while designing an analog electronic circuit you would get completely stuck in your "inventions" very soon and would not be able to deliver anything working beyond the simplest stuff, the difficulty would just force you to adapt a sensible design approach or resign from doing any electronics in the first place.

In software engineering, on the other hand, the kind of wankery presented here lives on for years because there is no reality check - as long as a group of people feels good about themselves inventing fancy words and "techniques" without putting in too much effort into anything of substance, fads of this kind can live on. They can even deliver products written in this manner and get paid, for the projects work, as far as most business projects are concerned, it is simply that the code is just awful to look at.

Meanwhile, serious software from "firmware" for space shuttles, through huge game 3d engines, compilers, operating systems, to scientific software manages to get developed without having any need for this sort of thing. Somehow it's always the rather trivial software that gets those super-"architectures".

Re: Poof and then Rails was gone

#12
post #8
post #7

When I read code like this and find that half of the tests are, more or less, a typechecker, it reduces to an argument for static typing.

[deleted]

- "returns a saveable object"

- "accepts an employee with a notice: option"

- "accepts :new"

- "returns a hash with :name"

Are all within the scope of a typechecker.

Re: Poof and then Rails was gone

#14

So... poof, and then Rails was J2EE? I have a deep dislike for overabstracting a system merely because someone has a list of hypothetical use cases. And make no mistake: it is always about supporting the hypotheticals, never about supporting what's actually really needed by the system. Down this road lie dozens of layers of abstracted factories and strategy implementations which exist just in case someone wants to "p…

I don't understand how anything on HN that discusses a more complex software architecture is immediately called J2EE/enterprisy and dismissed.

Is this because the majority of the community is self thought? Or is this because most of you only build MVPs which are mostly CRUD apps (and therefore don't know from first hand experience the benefits of a modular system)?

The constant negative reaction to anything a little more complex is frankly laughable.

Re: Poof and then Rails was gone

#15

I'm not a huge fan of Rails architecture neccesarily, but I have to admit I have trouble following the 'hexagonal architecture' stuff, even in simple examples like this. It does seem to be a lot of abstraction. Of course, with abstraction comes flexiblity, that's the point, I get it. But with (some kinds? all?) abstraction also comes complexity and cognitive load for the developer. If you're not careful, you end up i…

Pssh, XML is so Java. They'll just use YAML or JSON ;-)

Re: Poof and then Rails was gone

#16
post #14

So... poof, and then Rails was J2EE? I have a deep dislike for overabstracting a system merely because someone has a list of hypothetical use cases. And make no mistake: it is always about supporting the hypotheticals, never about supporting what's actually really needed by the system. Down this road lie dozens of layers of abstracted factories and strategy implementations which exist just in case someone wants to "p…

I don't understand how anything on HN that discusses a more complex software architecture is immediately called J2EE/enterprisy and dismissed. Is this because the majority of the community is self thought? Or is this because most of you only build MVPs which are mostly CRUD apps (and therefore don't know from first hand experience the benefits of a modular system)? The constant negative reaction to anything a little…

If simple MVP CRUD apps are one end of the spectrum, then there is the other end which looks a bit like this:

https://plus.google.com/+aerotwist/posts/1QhcnQizuPc

description: "Convenient proxy factory bean superclass for proxy factory beans that create only singletons."

http://docs.spring.io/spring/docs/2.5.x/api/org/springframew...

Re: Poof and then Rails was gone

#17
Excellent. Proof that you can make your code an unapproachable mess to a new team member by throwing out Rails conventions, and in return you get the much greater benefits of shaving 100 ms off your test run times and the ability to run it from the terminal.

Re: Poof and then Rails was gone

#18
This code is painful to read. As somebody new to a team, how can you "extend" code when you don't have a clue how the rest of the system works because somebody else decided it'd be a good idea to unit test controllers and abstract everything away because "we might need it someday"?

Re: Poof and then Rails was gone

#19
post #11

The problem with software is that it is too easy to get it working. If you would do completely stupid shit while designing an analog electronic circuit you would get completely stuck in your "inventions" very soon and would not be able to deliver anything working beyond the simplest stuff, the difficulty would just force you to adapt a sensible design approach or resign from doing any electronics in the first place.…

All of your examples don't exactly make the point you're trying to make:

Ask anyone who's had to debug game engine code, compilers, operating systems, or the worst of the lot, scientific code.

Most of those systems would actually benefit from proper design and architecture, but people like you decrying their "wankery" have relegated such introspection to the dustbin.

And that attitude is why software engineering is mostly a dark joke.

Re: Poof and then Rails was gone

#20
post #14

So... poof, and then Rails was J2EE? I have a deep dislike for overabstracting a system merely because someone has a list of hypothetical use cases. And make no mistake: it is always about supporting the hypotheticals, never about supporting what's actually really needed by the system. Down this road lie dozens of layers of abstracted factories and strategy implementations which exist just in case someone wants to "p…

I don't understand how anything on HN that discusses a more complex software architecture is immediately called J2EE/enterprisy and dismissed. Is this because the majority of the community is self thought? Or is this because most of you only build MVPs which are mostly CRUD apps (and therefore don't know from first hand experience the benefits of a modular system)? The constant negative reaction to anything a little…

It does get a little tiring when somebody tells you "you're doing it wrong. It has to be more abstract and complex because you might become the next Facebook." And then everything turns into a StrategySingletonProxyFactoryBeanFactory.
Post reply on HN