Spring into Spring Roo
I was very excited to receive my copy of Spring Roo in Action. This is a fairly recent MEAP offering from Manning and is scheduled to be ready by the end of this year (2011). A 500-page quick-start guide, and IMHO, the missing manual for anyone interested in learning agile and rapid prototyping using Spring Roo.
Before I continue, some brief background about me and my experiences working with the Spring Framework. I took an interest in Spring a couple of years ago while working on a web application to manage administrative data about a large-scale biotechnology research project. Not too long after starting on my project, I heard about Spring Roo. At that time, it was a rather new offering from SpringSource, before version 1.0 was ready for prime time. It was and still is a great tool for very quickly developing straight-forward CRUD applications. However, my interest soon drained as I was concerned that the ease of development would compromise my ability to customise applications for customers. That opinion changed soon after reading this book. I'll explain later.
Ten chapters have been written so far, providing a comprehensive coverage of key component technologies that make the Spring Framework such a great technology for developing web and enterprise applications - database, web, messaging, integration and testing. Even with the ease of designing and configuring software using Spring - as the authors aptly point out - developers are often caught in a conumdrum of chosing the right set of frameworks. Often losing sight of our primary goals: building usable software that meets clients' expectations (and schedules).
However, as mentioned earlier, I was concerned that the Spring Roo was generating a lot of artifacts that are deeply intertwined with the tools, such that it becomes very difficult to customise without breaking any code. I liken this to a beginner .NET developer experience. Visual Studio was a very powerful IDE that allows anyone (well almost) to create usable applications in a short amount of time. That is definitely useful during early stages of development, where it was important to quickly prototype and impress your prospective customers. As time goes by, as we learn more and more about the user's requirements, we begin to realise that there's a fair amount of tweaking to be done. Then you're hooped.
I feel the authors were very conscious of this issue, and throughout the early chapters, assured me that there was a not-too-difficult exit strategy when the project needed more intricate plumbing: Push-In Refactoring. There is an entire chapter devoted to this topic and I certainly look forward to reading it when ready.
There's so much to say about this book, but I think my remaining thoughts are best condensed into these key points:
- The book is well written with the developer at heart. The authors exhibit great empathy with the many issues that developers face daily.
- Well organised and covers all layers of the development cake.
- Clear concise instructions, great visuals and easy to follow. All you need is a computer with tools installed to follow along.
- Talks about IDE integration: SpringSource Tool Suite (STS) and IDEA's IntelliJ. For STS, they don't just stop at the basics, there are some tips and tricks that could be very helpful in your development experience.
- The authors don't just talk about all things Roo. There are some good pointers and guidance for software development and architecture considerations and best practices.
- Chapter 11 is about Cloud Computing. I'm gonna guess that it has to do with CloudFoundry and the newly released MicroCloud. As developers and solution providers, as much as we hate buzz words, Cloud Computing is here to stay and I see this as a very important technology in the year ahead.
Prior knowledge about the Spring Framework would be good, but definitely not a prerequisite. If Spring Roo is a beginner's portal into the world of Spring, then this book is your wormhole. If only I could give this must-have handbook a 5.01 rating!