On Tue, Aug 19, 2014 at 12:45 PM, Noufal Ibrahim <nou...@nibrahim.net.in> wrote: > > On 2014-08-19 12:31, Saager Mhatre wrote: > >> That's just a question of testing strategy. If you're writing 'elaborate' >> tests at every layer, you're probably validating too much or exercising too >> much of the system at each layer of testing. The cartesian product of tests >> required to validate every implementation at a level of abstraction is >> inevitable if you want confidence in all those implementations; but these >> need to be limited to each pair of collaborator as far as possible so that >> so single test becomes too elaborate. But that's a different discussion >> altogether. >> >> However, I always got the sense that dynamic languages made this both >> easier and hard at the same time. Easier in that you didn't have to declare >> explicit interfaces between layers; harder in that all barking ducks are >> only identified at runtime! > > > I suppose so. My epiphany was that tests, at the end of the day, are code. They need to be maintained, refactored, cleaned up, optimised, cajoled and worshipped just like one does with the actual application. The less code I write, the better. > > So, yes, it's a tradeoff. Once upon a time, a more naive version of myself loved the freedom that I got from this kind of thing. The cynical version of myself that's typing this email is not so sure anymore. He, at some level, feels that the extra headache of specifying interfaces is a better investment than using a dynamic language and writing tests to validate all the possible inputs. >
Hear, hear! All he younglings pay heed, the master hath spoken. Again, glad this was said without beating about the bush; and glad *you* said it! ;) > >> I'm glad somebody finally said this; and doubly so that it was Noufal! ;) > > > I'm surprised that you've never heard this from me before. It's something that I decided on a LONG time ago. > I realized this myself a long time ago, around the time I joined TW and started putting Ruby in production. However, all the dynlang love in the air at the time seemed to be blinding people to it. Since then I've sensed this sentiment among those that have grown wiser with age and experience. But you're the first one I've heard call it out without mincing words. - d On 2014-08-19 12:31, Saager Mhatre wrote: That's just a question of testing strategy. If you're writing 'elaborate' > tests at every layer, you're probably validating too much or exercising too > much of the system at each layer of testing. The cartesian product of tests > required to validate every implementation at a level of abstraction is > inevitable if you want confidence in all those implementations; but these > need to be limited to each pair of collaborator as far as possible so that > so single test becomes too elaborate. But that's a different discussion > altogether. > > However, I always got the sense that dynamic languages made this both > easier and hard at the same time. Easier in that you didn't have to declare > explicit interfaces between layers; harder in that all barking ducks are > only identified at runtime! > I suppose so. My epiphany was that tests, at the end of the day, are code. They need to be maintained, refactored, cleaned up, optimised, cajoled and worshipped just like one does with the actual application. The less code I write, the better. So, yes, it's a tradeoff. Once upon a time, a more naive version of myself loved the freedom that I got from this kind of thing. The cynical version of myself that's typing this email is not so sure anymore. He, at some level, feels that the extra headache of specifying interfaces is a better investment than using a dynamic language and writing tests to validate all the possible inputs. I'm glad somebody finally said this; and doubly so that it was Noufal! ;) > I'm surprised that you've never heard this from me before. It's something that I decided on a LONG time ago. _______________________________________________ BangPypers mailing list BangPypers@python.org https://mail.python.org/mailman/listinfo/bangpypers _______________________________________________ BangPypers mailing list BangPypers@python.org https://mail.python.org/mailman/listinfo/bangpypers