« FIRST POST! | Main | Return of the Wiki... »

Feature complete.

At my day job, our product is finally approaching feature complete. Monday is the day we go to QA, so I'm working hard now to avoid working hard this weekend. The product and the new job in general has been a lot of fun. I've been able to learn a lot more about Struts, Struts Validator, Struts Tiles, XDoclet, JavaScript, JSP, and code generation.

The amount of code generation going on in our build process is just amazing. We start with a database schema definition DDL file that is marked up with funky XDoclet-style comments. From that we generate all of our business obects, JDBC code to persist these objects, auditing code, workflow code, Struts forms, and the english version of our I18N properties file. Our internally developed and Scheme-based code generator generates something like 90,000 lines of code based on a 900 line DDL file in about 3 seconds. Next, we run XDoclet over our code based to generate our Struts config file, Struts validator file, and our TLD. XDoclet is the dog of the build process; it takes about 10 seconds to generate a couple of hundred lines of code.

I don't know how we would have written this product in the time allowed if we had not used the code generation approach. Everybody is amazed at the progress and the agility we have in adapting to data model changes. The only problem raised by the code generation is customization. How can our consultants in the field customize our system when most of the code is "GENERATED CODE - DO NOT MODIFY"? The answer is that we won't consultants customize the code. Instead we'll try to make everything customer configurable through the product UI. That is our next challenge.

Comments:

Amen! I was just about write about my project @ work that going @ a great speed due to Code generation/middlegen/Java Reflection ;) Making changes or adding enhancements is fun these days as in takes just a few hours! Time spent on design is finally paying off!

Posted by Arjun Ram on October 09, 2003 at 10:02 PM EDT #

Post a Comment:
  • HTML Syntax: NOT allowed

« FIRST POST! | Main | Return of the Wiki... »

Welcome

This is just one entry in the weblog Blogging Roller. You may want to visit the main page of the weblog

Related entries

Below are the most recent entries in the category Java, some may be related to this entry.