| By Ajit Sagar | Article Rating: |
|
| August 1, 2002 12:00 AM EDT | Reads: |
17,496 |
I'm sure you've heard many of the cannibal jokes. One of my favorites is a news flash in a cannibal tribe announcing the invention of the "pressure cooker": "We have news of a device that cooks a man within minutes, and even lets out a whistle when it's done." Though technology brings to fruition concepts that were conceived of only a few decades ago, our expectations of technology far exceed the speed at which it makes solutions available. Often when I'm in the middle of architecting an n-tier application or framework using J2EE technologies, I find myself asking questions, such as: "What if I didn't have to write a line of code to achieve this," or "can I just cut-and-paste this into my next solution?"
My colleagues are often amused by my faith in the fine art of "cut-and-paste." However, when things are down to the wire, the speed at which existing code can be slightly modified through pure editing expertise is sometimes unmatchable. Of course, this can lead to redundant code, but that's one of the joys of three-month releases. When there's a deliverable next week, software engineering takes a backseat. That's the harsh reality of the software-development life cycle that many of us are subsumed in. The key is to go back and reengineer your solution. Of course, those days when you could just as easily engage external consultants to do so disappeared when the technology bubble burst.
Note that I am not advocating short-circuiting the software engineering cycle or circumventing the development process. Every time a shortcut is taken, it should be documented, and the appropriate design should be suggested to be revisited at a later time. Fortunately, the latest Java IDEs offer several tools that alleviate the pain of this unconventional design cycle, such as refactoring support and reverse-engineering source code into modeling environments such as UML. The latest IDEs that I've worked with are IntelliJ's IDEA and Borland's JBuilder. Both offer these features, as do other competing products. Add unit and regression testing and source code control to the mix, and the proposed design cycle is almost achievable.
However, as software architects and developers, part of our job is to create the next level of abstraction. A software architect has substantial technology expertise as well as business-domain expertise. A J2EE architect utilizes his or her experience in applying Java's distributed technologies to a solution in the primary application domain. This involves creating not only reusable components and code, but also automating the process of software development for the next cycle.
I'd like to cite the example of one of my recent projects. Our mission was to build an application for the wireless domain. The choice of J2EE technologies was an obvious one, given our environment and our expertise. With the advent of EJB 2.0, the Enterprise JavaBeansbased implementation fit the bill (as opposed to a mix of JSP, servlet, JDBC, and EJB). The approach we took in our design was to automate the process of creating the middle-tier components (the EJBs), the hardest tier to build, test, and deploy. This included both the entity as well as the "accessor" session beans. We added utilities to generate components that leveraged the app server tools with the right level of business-domain components, so that we could replicate, enhance, and modify these components without rewriting too much code. The utilities also generate the database schemas and the constraints on the database. Although this effort cost us a precious couple of months in our release cycle, over a six-month cycle we were able to build an application that can now be applied across a variety of customers in our business domain.
Although there are no silver bullets, designing for reuse and automating component generation can take you a long way toward achieving your ultimate objective.
Published August 1, 2002 Reads 17,496
Copyright © 2002 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Ajit Sagar
Ajit Sagar is a principal architect with Infosys Technologies, Ltd., a global consulting and IT services company. Ajit has been working with Java since 1997, and has more than 15 years experience in the IT industry. During this tenure, he's been a programmer, lead architect, director of engineering, and product manager for companies from 15 to 25,000 people in size. Ajit has served as JDJ's J2EE editor, was the founding editor of XML Journal, and has been a frequent speaker at SYS-CON's Web Services Edge series of conferences, JavaOne, and international conference. He has published more than 125 articles.
![]() |
Ajit Sagar 10/10/02 04:17:00 PM EDT | |||
Didn't think I needed one. but, since you asked: Sometimes cut-and-paste is the fastest and easiest solution, so go for it! No, seriously: Take shortcuts, but keep in mind why you took one, and how long it should live. |
||||
![]() |
mARK 08/08/02 01:27:00 PM EDT | |||
cannibal joke |
||||
- Patterns for Building High Performance Applications
- It's the Java vs. C++ Shootout Revisited!
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Cross-Platform Mobile Website Development – a Tool Comparison
- Three Buzzwords That Every CIO Hears but One They Should Listen To
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Immersing into JavaScript Frameworks
- Workday Reportedly Prepping to Go Public
- Cloud Expo New York: The Java EE 7 Platform - Developing for the Cloud
- Book Review: Sams Teach Yourself Java in 24 Hours
- OpenOffice.com Lives
- Book Excerpt: Introducing HTML5
- Adobe Sends Flex to the Apache Foundation
- Five Years Waiting for JRE 7: Is It Justified? (Part 1)
- Book Excerpt: Java Application Profiling Tips and Tricks
- i-Technology in 2012: Five Industry Predictions
- Patterns for Building High Performance Applications
- It's the Java vs. C++ Shootout Revisited!
- OpenXava 4.3: Rapid Java Web Development
- The Next Web Architecture
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Is Write Once Run Anywhere Ever Going to Be a Reality?
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- JavaServer Faces (JSF) vs Struts
- The i-Technology Right Stuff
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- What's New in Eclipse?
- i-Technology Predictions for 2007: Where's It All Headed?




















