Rapid J2EE Development 146
Rapid J2EE Development: An Adaptive Foundation for Enterprise Applications | |
author | Alan Monnox |
pages | 395 |
publisher | Prentice Hall PTR |
rating | 8 |
reviewer | Pankaj Kumar |
ISBN | 0131472208 |
summary | A telescopic view of tools, techniques and processes for boosting Java software development productivity |
"Using a Hole-Hawg for the job of a homeowners drill can have deleterious effect on productivity by causing serious harm to the health of the inexperienced operator." Just identifying a tool for a task is not enough. You should also be able to match the demands of the task to the characteristics of the tool and your ability to handle the tool. The good news is that this book passes even this stringent test, suggesting very practical and hands-on approach for choosing the tool with right characteristics for the specific demands of the task.
The ever-growing body of literature on development best practices, the burgeoning ranks of supporting tools and the accompanying debates on their relative merits can easily overwhelm most practitioners. Worst, a large chunk of the developer community may never spend the time and effort and miss the opportunity to take advantage of them altogether. Rapid J2EE Development offers an easy path to such Java developers by bringing together a number development techniques, best practices and description of supporting open source tools in a single book.
Whether you are a confused Java developer, overwhelmed project leader or plain lost manager, this book has something for you. Wondering about how to design complicated class hierarchies to encapsulate the ever-changing business rules? Worry not, follow the advice of Chapter 10, "Working to Rule" and use Jess, an open-source Expert System Shell. Don't have the time or motivation to download and play with it? No problem. The coverage includes not only an overview and discussion on when and where to use it but also presents a sample session and illustrative code snippets.
If you're confused with all the hype around AOP (Aspect Oriented Programming) and uncertain about where to start, start with the chapter "Aspect Oriented Programming," which introduces the notion of crosscutting concerns in any large software project, presents the AOP terminology to nail down these concerns and associated actions, and covers AspectJ and AspectWerkz to apply AOP to your projects. The brief description of these tools may not answer each and every question, but the example- and code-driven approach will certainly make you feel a lot more comfortable and motivate to explore further.
Not able to decide whether to use XP (Extreme Programming) or RUP (Rational Unified Process) for your next project involving four different development teams in three different continents interacting with as many customer groups? The Chapter "Embracing Adaptive Methods" outlines an approach to making such methodology decisions, though it is not very obvious from the chapter title. (Of course, you will have to read the sections that talk about when XP works best and when the rigors of RUP start paying off to make your decision.) And although there is not much discussion around mixing elements of development methodologies or adapting them in the middle of an ongoing project, the author's account of a real case study does exactly this.
These are just a few examples. Other topics covered include use of UML for modeling, code generators, Model-Driven Architectures, Java-based scripting languages, Object Relational mapping, build and test automation, and use of the right IDE plug-ins for J2EE projects. Among the development tools, all the usual suspects are there: Apache Ant, Eclipse, Jython, JUnit, HttpUnit, JMeter. In fact, I also found description of tools that were somewhat new to me: MyEclipse, AndroMDA, Middlegen and few others.
I found the book to be highly readable, insightful and loaded with the right kind of details. For example, the information on debugging with Eclipse explains how to configure a J2EE program for remote debugging, and how to debug a Web application using JSPs, something that is quite hard to do without the right tools and the right methods. Even the UML primer, with its well-chosen examples, is a good refresher.
It is easy to get superficial when covering a lot of ground: a common pitfall for authors of books on new technologies is that they themselves get caught up in the hype and lose perspective, but Alan somehow manages to keep the extraneous stuff out and deliver what a hands-on professional looks for. He tempers his zeal with practical realities and conveys the same to the reader with anecdotes and discussions with colorful stories such as the Cargo Cult Software trap and Christmas Puppy Syndrome.
The book manages to introduce a number of the very best open source Java tools available to boost productivity in a very natural manner and with the appropriate context, and it succeeds in giving a "feel" for the tool by presenting hands-on sessions. Most other such efforts that I am aware of usually end up being a drab list of tools with descriptions taken from home pages.
Given the number of topics and tools covered, it would be unrealistic to expect in-depth coverage of everything. What this book does is to create the right context, introduce the appropriate topics, and generate sufficient motivation to explore further. Fair enough. In fact, I believe this is the best approach for any book in this "Google era" -- the book should tell what you should look for and let Google do the rest.
So, is there anything not to be liked about the book? Well, I was a little disappointed to not find my favorite BeanShell among various Java scripting alternatives. Another thing I noticed is that the coverage of system manageability issues, especially in a book with J2EE in its title, was quite conspicuous by its absence. Also, some of the points, especially those around use of best practices and development techniques, could be made more emphatically with help of focused and concrete anecdotes.
Of course, no book can cover everything, especially on topics that are open-ended by nature. Overall, I think it does justice to the subject matter and is worth reading by anyone even remotely connected to the business of creating, maintaining or operating Java/J2EE software.
You can purchase Rapid J2EE Development from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
does not cover Spring I suppose? (Score:4, Informative)
Jess is not open source (Score:3, Informative)
Even though Jess costs less, it is not open source and I'm not sure even if the source is available for the user.
I've used Jess and it's good but if you're looking for open source rule engine, the only real credible rule engine for Java is drools [drools.org]. I don't think that drools is anywhere near Jess (since Jess has been around a while and jess is compatible with CLIPS) but drools is the most promising one.
BR,
~A
XDoclet? (Score:5, Informative)
I've worked with most of the other tools mentioned in the review and they're all good. But nothing helped speed my own J2EE work more than XDoclet, particularly with EJB's and all their interface definitions, configuration files and container-specific instruction files.
/., den of thieves (Score:3, Informative)
"This book has a lot of great material in it. The author really shows his experience in the subject matter. The content is excellent. I haven't seen another book that is as comprehensive or contains as many real-world lessons learned."
--Madhu Siddalingaiah, Consultant, SEA Corporation
"I think the book does a good job of presenting a set of processes and technologies that enable rapid development. I think this is an extremely useful book, and I would recommend it to others."
--Satadip Dutta, Software Engineer, HP
"The author skillfully presents a collection of tools, technologies and processes that facilitate rapid development of J2EE applications. I see this book as a valuable addition to any company bookshelf, especially given its broad application across the software lifecycle. It's also quite amazing that a Google search does not reveal any existing publications with this title. This book should neatly fill that hole."
--Martin Westacott, Director and Senior Consultant, Solstice Software Limited, U.K.
"If you ever needed to put some polish to your J2EE development understanding or would like to move into the role of Senior J2EE Developer, then this is the book for you. The author covers everything you need to take you from design to coding to build process. Along the way he introduces some new valuable 'leading-edge' technologies. All this will leave you with good capabilities to tackle most J2EE projects confidently."
--Shane Griggs, J2EE Architect
Re:J2EE has got it all wrong. (Score:5, Informative)
Re:ColdFusion? (Score:3, Informative)
Also, ColdfusionMX _IS_ Java. At version 6, they ditched the old C-based engine and built the new one in Java. You could say it's basically a custom tag library at this point.
Actually, you could say it's the BEST custom tag library for Java on the market right now.
I don't work for MM either, but when you can build a project in 150 hours using CF that was originally estimated at 1500 hours using another language, you tend to be a bit of a fanboy.
Re:J2EE has got it all wrong. (Score:1, Informative)
Unlike what you have heard, J2EE (i.e. Struts) is not MVC
That doesnt make any sense, Struts has nothing to do with J2EE or MVC. J2EE is a spec. Struts is an implementation.
Re:ColdFusion? (Score:3, Informative)
Coldfusion is quick to develop in and as capable as anything else on the market today. Have the Java coders do some heavy lifting and the cf developers use those wars/jars in the cf app.
For those of you who haven't looked at coldfusion in several versions, it's quite different than it was 3-4 years ago.
Being more expensive?!
runs on linux = free
the standard license is $1200 bucks. The savings in development is often several times that cost.
Re:What's that humming? (Score:4, Informative)
HTML and SQL is definitely effective for some jobs, but a total mess for others. I worked with a company whose commerce site consisted of ASPs that really did very little and HUGE SQL stored procs (multiple thousands of lines of spaghetti) that only one guy could really change. Thankfully, they threw it all out for a more rational solution.
It's true, J2EE might be considered totally obsolete tomorrow if something incredibly powerful and useful comes out, but that's true of any technology, including HTML and SQL. Remember, there was DB technology before SQL. But beign obsolete doesn't mean it won't be used of course...I still see a lot of Fortran and COBOL out there.
Re:ColdFusion? (Score:4, Informative)
The only way cold fusion exists today is it's syntax - ultimately your programming JSP's.
Also considreing you can buy the CF syntax T-Shirt which has every tag on the front of the shirt upside down so you can just look down and find what you want.
Re:Why is there a chapter on UML? (Score:5, Informative)
How does this object relate to that object? Have a look at the model.
What tables are affected by changes to this class? Have a look at the model.
Which classes are affected by changes to this table? Have a look at the model.
From the model we generated Java source code, Hibernate mappings, SQL DDL's for tables and used it in correspondence with an overseas branch for clarifications on process flow.
The only committee that the model was blessed by was the development team. Higher business has no understanding of UML so why should they have anything to do with it? Any flow/model diagrams used in requirements gathering should be basic and understandable NOT technical.
So no, our model was not forgotten and we are still updating it today as required for new projects.
Re:J2EE has got it all wrong. (Score:3, Informative)