Wednesday, January 02, 2008

Present Project

Due to official reason I cannot name the project I worked as an intern at Alliance Technologies during Summer and Fall 2007. We are using Drupal, a PHP based content management system. It was a very steep learning curve and still everyday I learn a new thing about the power of drupal. We are almost done with the site (which is still in development) and mainly the web services is left. One thing apart from technical stuff that I learnt was that requirments always change. They can change sometimes when you expect it the least. This helped me get attracted to Agile where one has to be adaptive.
It helped me realize the importance of design patterns. The only thing that keeps me from using them is the problem of over-designing. This problem is something that is going to be my first question at ThoughtWorks University. I know it is all about experience which decide what to use and what not but design patterns are nothing but experience of software developers.

Two more things that are attracting me are Ruby on Rails (which I have basic knowledge) and Domain Specific Languages (DSL), especially after reading an article by Martin Fowler and doing Independent Study on compiler construciton. With external DSL, Lex and Yacc seems interesting. It seems to be exciting going back to UNIX but in a more sophisticated way by using internal DSL and language workbenches.

Well, so many interesting things coming up, and with SCJP to give I need to better concentrate on Java for now.


At 7:03 AM , Blogger Mark Needham said...

The most interesting explanation of design patterns I've heard so far is that they're very useful if used as a communicational tool i.e. members of the team can intuitively understand how a bit of code works just from the design pattern being used. I've not yet seen design patterns being put in just for the sake of it - but maybe I'm not watching close enough!

This book is supposed to be pretty good with regards to introducing patterns into your code:

At 12:52 PM , Blogger Apurv said...

I think thats what I was told when I talked to people at ThoughtWorks. It is simply a tool for writing clean code and self documenting, one of the part of Agile practices.
It is supposed to be a way to give importance to the fact of the open-close principle.
In Ruby, the problem of some design patterns is solved because Ruby has open classes.
I will be getting more involved with the remaining 5 weeks out of 6 weeks here in Bangalore and will be able to understand it better after that, though thanks a lot for your comment and the book!


Post a Comment

Subscribe to Post Comments [Atom]

<< Home