+100 My English is "bad", but you expressed my position about TDD in general (I'm not a clojurian, yet, but I really appreciate TDD workflow in other technologies).
On Wed, Feb 5, 2014 at 6:35 PM, James Trunk <james.tr...@gmail.com> wrote: > As a TDD practitioner and > Expectations<https://github.com/jaycfields/expectations>user, I've been > following this thread with great interest! > > @Jay: Will your change in thinking have any impact on Expectations? > > My experience with TDD in Clojure has been an overwhelmingly positive one, > and it seems like this thread might be a good place to discuss the subject > with others. > > RDD is an invaluable tool for evolving the shape of your functions, and > it's a killer feature for REPL-based languages like Clojure. However, I > mainly use RDD in the refactoring stage of TDD, and I still choose the > overhead of writing tests before coding my solutions. Why do I do that? > Well, I experience a number of benefits from TDD: > > - A very clear separation of thinking between requirements and solution > - A constant focus on delivering the Minimum Viable Product > - Documentation, in English, of the expected behaviour of a function > - Documentation, in code, of example inputs and expected outputs of a > function (especially useful in a dynamic language like Clojure) > - A continual reminder (and perfect opportunity) to refactor > - A refactoring confidence boost (i.e. if all my tests are still > green, then I can be pretty confident in that refactor) > - The little bit of serotonin released in your brain when you make the > next test turn green :-) > - Finishing a session with a red test gives you a great starting point > for your next session and often helps you to get straight back into "the > zone" > - A clear handover point if you're pair-programming > > It's clear that developers who don't use TDD can (and do) develop > extremely high quality solutions. However, for me personally, the list of > benefits from doing TDD outweigh the cost of writing and maintaining the > tests. I am a better programmer when I use TDD. I prefer jumping into other > people's codebases when they have used TDD. I find it easier to get back > into one of my own old projects when I've used TDD. > > I also understand that most other programmers don't agree with me on this, > which might mean that I'm wrong. :-) > > Cheers, > James > > On Tuesday, February 4, 2014 1:06:06 PM UTC+1, Jay Fields wrote: >> >> tl; dr: I'm presenting "Lessons Learned from Adopting Clojure" in >> Chicago on Feb 11th: >> http://www.eventbrite.com/e/goto-night-with-jay-fields- >> tickets-10366768283?aff=eorgf >> >> Five years ago DRW Trading was primarily a Java shop, and I was >> primarily developing in Ruby. Needless to say, it wasn't a match made >> in heaven. Fast forward five years, Clojure is the second most used >> language in the firm, and the primary language for several teams >> (including mine). Clojure wasn't the first language that I've >> introduced to an organization; however, it's unquestionably the most >> successful adoption I've ever been a part of. The use of Clojure has >> had many impacts on the firm: culturally, politically, and >> technically. My talk will discuss general ideas around language >> selection and maintenance trade-offs, and specific examples of what >> aspects of Clojure made it the correct choice for us. >> >> A few highlights >> >> - Where to first introduce a new language and your role as the >> language care-taker. >> - REPL driven development, putting TDD's 'rapid feedback' to shame. >> - Operations impact of adding a language - i.e. get ready for some >> DevOps. >> - Functional programming, the Lisp Advantage, and their impact on >> maintainability. >> >> Of course, no good experience report is all roses. The adoption has >> seen several hurdles along the way, and I'll happily to describe those >> as well. >> > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.