This week I gather three split threads of thought that have been bouncing around in my own head and try to sign up for them into something getting close to a cohesive whole collectively, accompanied by an incomplete execution of that whole. I have always been a little of a sucker for self-improvement books.
Early on in my own career while I had to travel a lot, I would end up purchasing one everytime I traveled, usually at the airport/train station bookstore. I don’t buy these quite frequently nowadays, but a couple of years ago, the Agile/Pragmatic movement found me (or I came across them), and I again finished up buying some. Among these books was Herding Cats: A Primer for Programmers Who Lead Programmers by J Hank Rainwater. Regardless of the mixed reviews this reserve has received on Amazon, I came across the reserve quite enjoyable and yes, even somewhat useful.
I think its a matter of perspective. You can prefer to get offended by the stereotyping of developers, or you can think of the written publication as a design record of how to deal with your coworkers, based on insufficient data (a significant common occurrence inside our business). The rest of the data must result from the reader’s environment and the look document tweaked based on this data for the reserve to be useful. In the written book, Rainwater describes a PC centered program that he used for keeping track of what his programmers were tasked with.
In the nature of tweaking the design, I made a decision to build something similar, but which conforms more with my environment carefully. A few weeks ago, I attended a talk on Spring-Roo by Ramnivas Laddad at the eBig Java SIG. I had formed heard about Roo, and knew it was the Java equivalent of Ruby-on-Rails, but did not have enough time to look at further.
The talk required us through setting up Roo and using it to create a web application from scratch. The actual talk did for me personally was to get me out of my inertia (at least with respect to Roo) and fast for me to take into account learning it so I could use it for a genuine application.
Apart from the efficiency gain that can be an implicit expectation from any RAD tool, what I am looking from Roo is eliminating the drudgery of the CRUD (pardon the pun) that accompanies nearly every database backed web application. Most web applications are made to do something “interesting”, but to do that you need data, and you have to create in the user interface to fully capture that data.
- Personal marginal tax rate of 40%
- Commercial areas, offices, command centres, conference rooms
- 5 Useful Online Tools for Web Design Planning and Prototyping
- 2 tbsp hot sauce
Roo will that for you, allowing you to concentrate on the interesting part of the application. For anybody who is unfamiliar with Roo, it is a bi-directional RAD tool that allows a programmer to use a scripting language to create (pretty complete) CRUD web applications using Java and JSP (and AspectJ).
The generated code is by means of a Maven2 web project and uses components (such as JPA, Hibernate, Spring-Web, etc) that Java designers are either already familiar with or can pick up fairly easily. The net effect is that the produced code looks quite familiar to a Java programmer, and thus (this is actually the important part) can be personalized without too much effort. Roo uses the ActiveRecord pattern, therefore the functions are included by an entity to persist itself. However, a lot of the persistence code and other code that are unlikely to need customization are hidden away into the produced AspectJ files.