From: Larry G. <la...@ga...> - 2009-09-15 01:12:25
|
On Monday 14 September 2009 6:35:33 pm Arlo Leach wrote: > Hello, > > > Only if the custom system you're working with is crap, or you don't know > > how to leverage it properly. Any system worth its salt will make add-ons > > easier to develop, because you can leverage good existing libraries to do > > much of the hard work for you or because there are add-on libraries > > available that already do most of what you want, than a completely custom > > system. That's assuming you know how to leverage that particular system > > properly, of course, which is where "experience with platform X" comes > > in. > > Most of my customizations have been with systems like OSCommerce or > Wordpress. Sometimes plug-ins are available; most of the time they are > abandoned and no longer compatible. I spend the majority of my time in > these systems simply finding the code that I need to modify to get the > desired functionality. They tend to have layers and layers of files that > aren't organized in any obvious way, so I'm constantly doing multi-file > searches to try and locate the needed code. In some cases they have > redundant code, so I make a change in one part of the system, then later I > have to go back and change it again somewhere else. I guess in my own mind > I was thinking those systems were "crap" when I was working with them, but > they're both too popular to avoid. I did experiment briefly with OSCommerce a few years ago, and ran screaming in terror. Just looking at the code took a few years off my life. It was like an entire application written specifically for Daily WTF. I will note my earlier caveat of "not being crap". :-) The catch is that in a good system, the code will be organized in a logical way, even if it's not immediately obvious. If it's learnable and logical, you'll be able to pick it up. Maybe not in a day or three, but any large system requires an investment of time to figure out how to use properly. > I did a project with a social networking system called Handshakes that had > all the right features to get started, but its code was scattered all over > the place. It used classes for the major sections of the system, but most > of the functionality wasn't in the classes. And some of the code -- this > took me a long time to figure out -- is stored in the database, so it > wasn't even coming up in my searches. After two years of updating the > project, I have a pretty good idea where to look for things, but I still > have to do multi-file searches and go on scavenger hunts to find things. > > The custom systems I've seen, in contrast, don't get so big that they need > more than two levels of directory structure, because they're not trying to > provide every function that a mass-market audience requires. I'm not trying > to say one approach is always better than the other, but the overall effort > required can be pretty similar. You may want to look into component frameworks like Zend, CodeIgnighter, etc. rather than "full stack" frameworks and extensible applications like Drupal, WordPress, Cake, et al. If what you want is "just the bits I need HERE and nothing else with a fully custom workflow", that's going to be much closer to what you need and can still save you a lot of time debugging and sorting out all of the common security holes. Honestly I don't trust custom systems to be secure. There's too many ways to make something insecure if you don't have a common system that handles it for you. (Rasmus has said as much before publicly, and Google's Chris Messina has as well.) > Anyway, a couple years ago I did a project with Wordpress and a project > with vBulletin at the same time, using the "hooks" in both systems, and the > difference was striking. I was able to do everything I needed in vBulletin > without touching its code, but I had to make about two dozen Wordpress > hacks in places where hooks weren't available. So there's obviously a wide > range of malleability with these systems, and it's hard to tell what you're > getting until you dig in. True, that's what a mixture of research and experimentation gets you. I'd argue that in that regard, vBulletin is the "better" system if your metric of "better" is extensibility. If your metric is "out of the box does something useful without thinking", then WordPress is pretty darned good. Of course, I'm a Drupal core developer so I have a biased opinion on how important extensibility is. :-) (Drupal's extensibility is scary at times, and there's an army of people who will show up at your house to beat the crap out of you if you "hack core" in order to get something done. <g>) -- Larry Garfield la...@ga... |