Monday, October 24, 2005

The Importance of Architecture

Now having completed a really good class on the Intro to Fusebox as taught by Jared, at the MCTC in downtown minneapolis...

I hear that a few of my previous readers and comments expect to be go all google eyes and say how wrong I was and all that.

Well in a sense I was wrong. I really see the importance of having a common architecture to speed up development and the working with teams or individually.

And I also see how usefull it can be to seperate the presentation layer, I can dig it's usefullness. But to me that really depends if you code alone or not.

I still have a lot to learn about Fusebox, I find parts of it fascinating, but other parts not so impressive.

This is not a knock on architecture's, fusebox is obviously a step in the right direction, as great as procedural programming style is, it doesn't really comprehed the long term approach that well. But neither can our focus on architecture get in the way of completing tasks.

I see it as a need of balance, to find the approach that covers the butt in both directions...

1. I really still hate how all the apps refer back to index.cfm I am sure the url variables can be made search-engine compliant, but I am more honestly concerned about the lack of bookmarkability, to help customers know what page they are at.

I understand why all actions go to the same page, because it has a lot of processing to do, to enable all the custom architecture that fusebox has, and any additional methodologies it want's to have working with in, such as Model View Controller. MVC, is kind of cool to be honest.

But i believe that if we can hide what page we are by creating physical pages for each public fuseactions, that calls the appropriate fuseaction with a few lines of code, which will do alot to make the fusebox pages much more user friendly. Easier to remember, and bookmark.

2. Fusebox can be a real bitch to work with if all your other applications are done without a specific architecture or methodology. It really does make it harder to figure out without having worked within fusebox, to translate fusebox apps to non-fusebox methodology.

3. The setup for each fusebox has to be improved and simplified, let's enjoy the architecture without having to each of us create lots of folders, subfolders etc... I honestly found the setup part hard to do, and I can't imagine having to re-create the whole fusebox for each seperate app that exists for the same website. Unless I am missing something, which is possible, after all it was only 2 days of class.

Now for things I am knock down impressed by:

1. I really enjoy working with a solid architecture, it has all teh core values I've always wanted, documentation, coding style, naming conventions, teamwork, workflow, and I want to do a lot more proto-typing, and really get into smoother projects.

2. I kind of am hooked into MVC, still have a lot more to learn and I want to play with it more...

3. I like the idea of a parser of fusebox apps into a much more optimized app, makes complete sense. I am kind of curious to how that exactly works...

4. I want to learn and master FLiP, project management has always been something I am interested in, because it makes development that much smoother. I may be interested in getting certified in Project Management. So I need to find some good places to learn and master Project Management.

Is fusebox perfect? Of course not, no architecture is. But it's a step on the road of evolution of web development/software engineering.

Thank you, and I hope to hear any thoughts you have.