JetBrains has taken it on themselves to create one of the premier Ruby IDEs on the market. It has been just over 6 months since version 1.0 was released and today, RubyMine 2.0.
It is often the case, a new piece of software is developed by someone who needed to fill a void left by an existing product. Software evolves from tools we use which don't exactly meet our needs, this is the case with a new Behavior Driven Development (BDD) tool called Coulda, developed by Evan Light.
There are many ways to develop, test and integrate your Rails application: from TDD with the basic Test:Unit or ZenTest, to BDD with RSpec, Shoulda or Cucumber. Remarkable tries to unify the syntax and adds some more flavors to make your Rails BDD painless.
In this interview from QCon San Francisco 2008, Ian Robinson discusses REST vs. WS-*, REST contracts, WADL, how to approach company-wide SOA initiatives, how an SOA changes a company, SOA and Agile, tool support for REST, reuse and foreseeing client needs, versioning and the future of REST-based services in enterprise SOA development.
The last few weeks, a public dispute has been going on between Joel Spolsky and Robert C Martin (Uncle Bob) about Test-Driven Development and about the SOLID principles of OO design. Here is a summary and review of the match.
In this presentation held during OOPSLA 2008, Rebecca Wirfs-Brock reviews various forms of driven development in order to understand the principles and values of several design practices used today. By comparing them, a designer will get a broader view over design and will better understand which design practice is more appropriate for him.
Behavior-Driven Development is nothing new but has steadily risen to the forefront as an excellent technique for technical and non-technical participants to collaborate on a software project. Several frameworks exist to aid the development of software in the BDD (Behavior-Driven Development) mindset, with one particular framework trying to make it as easy as possible for everyone.
In this presentation filmed during Agile 2008, David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile does not stand in just having a practice, but in finding ways to implement the principles contained by the Agile Manifesto.
Included in the Python standard library, various DocTest Ruby implementations were made available starting one year ago by Tom Locke, Roger Pack, and more recently Dr Nic. We caught up with Duane Johnson who added his changes into the 1.0 version. We discussed DocTest and when docstring-driven testing should be used.
In this presentation from QCon San Francisco 2007, JRuby project lead Charles Nutter discusses the Ruby and JRuby featureset, the JRuby compiler, calling Java from JRuby and vice versa, programming Swing with JRuby, JRuby web applications, JRuby on Rails, persistence, build automation, Test-Driven Development and Behaviour-Driven Development.
Peter Ritchie raised concern about TDD and BDD keeping practitioners from writing good unit tests. He cites an over-reliance on “interaction testing", a core mantra and essence of TDD and BDD, as a driver with tendency to result in incomplete unit testing.
Even the most successful project becomes a failure when a new technology comes out and everything has to be rewritten from the ground. This is why business logic has to be separated from technology. And, according to Kathleen Dollard, code generation is a promising approach to achieve it.
RSpec has become a poster child for both Domain Specific Languages and Behavior Driven Development (BDD), a type of Test Driven Development. The new RSpec 1.1 release adds improved support for Rails and other improvements.
Where does one start when practicing test driven development? With the requirements or with the design? Or, put another way, top-down or bottom-up? When one starts to write a test first, without any code, what does that test represent? Both approaches are practiced in the Agile community, but there is little consensus on which provides more value.