Programming stuff

11/28/2004; 8:19 PM

The next couple of weeks will be spent coding at work but unlike other programming assignments this one was not handed over to me but to my only remaining colleague, as the other one is due to leave next Tuesday. I will try to help her get to grips again because after University her programming skills were deeply buried underground. As usual at the beginning of new projects I go through the technology frenzy period which is an endeavour to learn new technologies for the sheer joy of learning them. This leads to overwhelming and also creates previously unforeseen decisions which need to be taken.

The big dilemma in implementing the online leave application system was whether to use an EJB logic tier or not. We have a very strict time-frame for the task because the first phase needs to be implemented by the beginning of January, so the simpler architecture was a viable option. However, after considering that this application is going to be used by the whole company, has complex business rules, and will most likely require heavy maintenance, we decided to opt for an EJB tier architecture.

This is the first time that I'm going to work with my mate on a 'real' programming project, so I decided to document and standardise my coding conventions. I remembered that I once found a document by Sun on the subject so I tried to look for it by incorrectly typing "java blueprint" in google, but I stumbled across something different yet equally useful. The Java Blueprint project is a sort of best practices tutorial that encourages good practices in J2EE programming, something I was in need of. I got immersed in the documentation especially in the sample project (Pet Store Application) and have spent the last of these four days reading and analysing the system, with the hope of learning something.

The pet store application is a demo of an online shopping pet store. I first download the J2EE 1.3.1 versions and while going through a whole lot of trouble with the classpath configuration, I decided to download a newer version. Browsing through the chaotic section of the java downloads I was forced to download version 1.4.1 which comes at a hefty 104MB, bundled with Sun's Application Server. This sluggish new version comes with a very friendly web server administration tool which is excellent to configure the server quickly not having to edit text files. This version uses a pointbase database engine instead of the traditional cloudscape engine that was usually shipped with pervious j2ee's. Pointbase is a 100% pure java database engine especially marketed for the Java Platform. For a database that comes packaged with J2EE it looks quite good and it comes with its own graphical editor obviously written in Java which again helps in getting to grips with the product quickly.

The two most prominent aspects about the blueprint examples were the usage of a web application framework (WAF) and the use of JSTL. Until now most of my Java web programming was simple, one man band programming with strict timeframes so I never had the chance to learn how to use a web application framework. I'm completely convinced about the advantages that it offers but I'm still undecided whether to employ one for this new project given the strict timeframe that we have. What makes the choice more difficult is that there are a million different WAF's out there, to the extent that there is a project called WAFER that tries to compare between the different implementations. I'm positive that the most renown one is Struts however it seems that Cocoon is another good competitor in the area. From the little code I saw which uses these frameworks, tag libraries are used in all JSP pages, instead of code scriptlets. Given the task they do it's obvious that taglibs are the right choice however until know I was comfortably implementing JSP with scriptlets. This practice is now risking extinction because the separation between logic and presentation that JSTL offers is brilliant.

Getting your hands dirty programming rekindles the battle of the IDE's. Since I adore installing and trying out software I installed two editors at the same time Eclipse at home and IntelliJ 4.5 at work. I've had more time evaluating IntelliJ and I was very impressed with the improvements of the latest version. This version supports most application servers featuring automatic deployment and plug-ins that make the program very extensible. I installed Eclipse out of curiosity about all the hype it generates. At first I didn't have any clue how to use the program so it looked pretty basic, providing the usual editor functionality. Today though I had some free time to fiddle around with it and I was awed. I went to two eclipse plug-in sites MyEclipse and Eclipse Plug-in Resource Centre and all of a sudden the program boosted itself thousand fold. Does anybody think there's an IDE better than these?

At the moment I'm still trying to figure out how to make best use of the program, and to help me out I found a series of 9 videos about Eclipse (Eclipse Video Courseware). Lately I've realised that videos have a great teaching potential. In fact I've learned most of Adobe Premier by the support site videos and last week I got 2 CD's of Linux videos that seem great. I think that comparatively videos are a faster way to learn the intricacies of software programs than books, because you're seeing the actual thing happening before you and you're more likely to remember it.

Logon

Fill out the form below to logon to this site, or sign up below.

Username (email address):
Password:
I forgot my password; please send me a new one.
 

Signup

Fill out the form below to join as a member of this site.

Screen name:
Email address:
Password:
Repeat password:
Homepage (optional)