Tuesday, January 8, 2008
The fight to resist "componentizing" everything
Tuesday, January 8, 2008
I often get requests to produce pieces of UI that integrate with data of some sort for specific uses. After I code it all up and see that its working and extensible to be able to handle most anything a developer might throw at it or wish it would do, I always start to whip it up into a component so I can easily package it up as a component... just in case someone else might need to use it too, or might have a need do use it more than once.
However, thats a bit of extra work, and I always produce documentation (since you can't really use a component unless you have good documentation to go with it). I have to stop doing this, as it eats up time and if I keep doing this, there is going to be a whopper of a component folder in developer's IDEs (I'm not really creating Flex components at the moment). When does one really know when to draw the line? If I keep things well organized, I can rummage through files and pick it out again to use for the same thing again for someone, or extend something I already made. Its a conundrum I haven't quite found the answer too yet. But years of development == tons of useful code. One-offs seem like a shame to me. But perhaps one-offs really will remain one-offs and I'm spending time building out ease of future use when it might not be needed. I suppose when I get down time, I can "componentize" some of this work just for fun.
How do you personally fight the urge?
Update
Well, the latest component-type code thing I produced has now evolved into a full-blown application. Call it feature creep, code evolution, or whatever, but now the point is moot. It is no longer a single component, its a component nestled within a greater application that requires my attention and efforts. I'm all for it, but now componentization consideration is taking a serious back-seat to the efforts I need to exercise on the current state of need. This will surely keep me from componentizing anything anytime soon™... perhaps thats a good thing.
However, thats a bit of extra work, and I always produce documentation (since you can't really use a component unless you have good documentation to go with it). I have to stop doing this, as it eats up time and if I keep doing this, there is going to be a whopper of a component folder in developer's IDEs (I'm not really creating Flex components at the moment). When does one really know when to draw the line? If I keep things well organized, I can rummage through files and pick it out again to use for the same thing again for someone, or extend something I already made. Its a conundrum I haven't quite found the answer too yet. But years of development == tons of useful code. One-offs seem like a shame to me. But perhaps one-offs really will remain one-offs and I'm spending time building out ease of future use when it might not be needed. I suppose when I get down time, I can "componentize" some of this work just for fun.
How do you personally fight the urge?
Update
Well, the latest component-type code thing I produced has now evolved into a full-blown application. Call it feature creep, code evolution, or whatever, but now the point is moot. It is no longer a single component, its a component nestled within a greater application that requires my attention and efforts. I'm all for it, but now componentization consideration is taking a serious back-seat to the efforts I need to exercise on the current state of need. This will surely keep me from componentizing anything anytime soon™... perhaps thats a good thing.
Comments:
There are currently 2 Comments:
-
Marty said...“I know exactly what you're dealing with. I find myself spending far too much time adding in extra functionality or stylizing support when I know that the chances of it being used again is slim, and the chances of it being used again by someone else is none. But, it is good experience for the time you will need to componentize something and you'll be a pro at it... right?”


