The schedule is an ever present aspect of application development. Engineers must constantly balance producing quality work against given time constraints. This is why most engineers are constantly searching for tools and techniques that allow them to deliver more quality work in less time. Techniques, like software patterns, focus on the quality aspect of the software while many tools focus on productivity. When an engineer finds something that allows him/her to both increase productivity as well as improve the quality of work delivered, it deserves special attention.
Code Generation is writing code that writes code. When used properly, it can dramatically reduce coding time. It also stands to reason that a greater degree of thought goes into the generated code and that it is likely of higher quality than an equivalent body of hand written code.
In layered software development, one area that is ripe for code generation is the data access layer. The DAO/DTO pattern is a well known and used in the industry. Couple that with the fact that most data stores provide self-describing features for the data structures and it provides a perfect opportunity to utilize code generation.
Enter Armedia CodeGen. It generates DAO’s and DTO’s for Documentum types. It utilizes DQL within the DAO’s for optimal performance (see Rahul Raina’s May 24th, 2009 blog article). It generates JUnit test cases to verify the CRUD (create, read, update, delete) frunctionality for the generated DAO’s. Having test cases to verify/validate the data access code verifies the code is in sync with the objects and their attributes in the repository. It is highly unlikely that a project hand-coding data access would afford the time to write test cases for the data access layer.
In a Documentum application with a large number of custom types, Armedia CodeGen can dramatically shorten development time, while providing more consistency and quality than will be achieved by hand-coding. For a limited time, the Armedia CodeGen is available as a free trial. Visit https://www.armedia.com/products/generator.htm and follow the forum link.