4 ms·
There's an argument to be made that Rails, by not actually enforcing conventions like TDD, gives an amateur/impatient developer a very high calibre footgun. Un
by eric_h 10y ago
There's an argument to be made that Rails, by not actually enforcing conventions like TDD, gives an amateur/impatient developer a very high calibre footgun.
Unfortunately, of course, that gun doesn't usually go off until it's handed to someone else.
- mordocai 10y agoIs there anything that actually "enforces" TDD? Because if there is I want to stay away from it.
- engineerDave 10y agoYes. Being forced to push changes to production with zero test coverage, and hence zero confidence in your code on a Friday night. (true story) After that you always make sure test exist before even pondering a push of potentially breaking changes! :P
- mordocai 10y agoOh yeah, I mean I always write tests for anything for work. I don't do TDD all the time though, sometimes I write the tests after the code. A language/framework that forced me to do TDD would just piss me off, which was my original point.
- engineerDave 10y agoI was being tongue in cheek on that one, sorry if it didn't come across that way. Although I've been a Rails dev for 6 years now, I've come to hate the TDD approach and am a convert of FP and types, & compilers a la Haskell. Because there really is no such thing as a massive change in FP IMO. Unfortunately I'm not competent enough in it yet so Rails still pays the bills.
- eric_h 10y agoMy "enforcing TDD" point was rather tongue in cheek. Really, I was just saying that a rails app of even moderate complexity with no tests is a very dangerous beast, and something I would not wish upon my worst enemies.
- mordocai 10y agoIndeed.
- beat 10y agoYou can remove the word "rails" from that, and it's still 100% true.
- eric_h 10y agoTrue, but I think that with rails and a few dozen gems one can bolt together a terribly architected app that on the surface seems to work but is in fact a bunch of spaghetti and lasagna code bolted together with duct tape, teetering on the edge of a cliff like a house of cards; checkmate. (sorry, couldn't help the futurama/zap branigan reference once I start mixing metaphors).
- ryanmarsh 10y agoNot enforcing TDD? Rails' own creator bemoaned the culture of test cargo culting in the Rails community. This is pretty well documented. If there's something Rails falls down on it's certainly not testing.
- ktRolster 10y agoWhen people are forced to write tests, they merely write lousy tests. It doesn't change anything.