Friday, October 20, 2006

Mmm, software

I hate blogs. People who post on them are usually jerks. I guess this makes me a jerk. But I wanted to start this one for my own personal benefit to log and track my progress as a software developer. To give some background, several months ago I was hired at a small internet startup and have been working at developing reports and small applications for them. My first task was a reports system that generates reports based off of an external developer's system. The external developers are typical (at least from what I've heard) software developers : they're slow to respond to feature requests, there's bugs all over the place (which they're reluctant to fix because it gets in the way of adding new features), and there's no documentation for anything.

As a result of the lack of documentation, everything I do for my work on the reports system is basically a guess. The only real good thing that's come out of developing that reports system is that it has kickstarted the learning process for my learning Java (AJAX even if you will) web development. I started off with writing basic servlets in a simply configured container, as well as very simple JSP(x) pages for displaying my content. The next step was learning to use Jasper Reports (and it's exceedingly useful GUI tool, iReports), and then integrating that into my web environment. From there I learned how to secure the container, and then after that I started learning how to use frameworks in order to write web applications.

My chosen framework has been Spring. Even though it has its quirks (like everything else I suppose), I've found it to be a very easy-to-get-along-with framework overall and it's made my development so much easier that I can really be nothing but grateful to its developers for making it. (Yes, spring kicks ass, so the mantra goes, but that's the last I'll say of it. Dependency Injection and AOP kick ass !). After starting with Spring, I then moved on to leaning Hibernate as my persistence framework, and that led me to getting all of my data access code (SQL, SQL-DDL, JDBC, JTA) automated for me and handled without me having to do anything, which is quite a nice replacement for manually coding JDBC and having to manually deal with Connections.

No comments: