SiteLogic: Part I

After talking with Reilly Sweetland of Internet Simplicity last week, I’ve decided to change the initial plan for Dynamik Solutions. Basically, we’re going to focus stronger on what we already do best. From that we can build up to my original vision. If you want details, ask me about it sometime.

In any case, it’s always been based on what we are currently calling SiteLogic. Have you ever been to zombo.com? You can do anything with SiteLogic. Anything at all. The only limit… is yourself.

Welcome to SiteLogic.

Before I actually describe it, I’d like to admit a little problem I have. I’m what Joel Spolsky would call an Architecture Astronaut, which he summarizes very well:

When you go too far up, abstraction-wise, you run out of oxygen. Sometimes smart thinkers just don’t know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don’t actually mean anything at all.

I’m always thinking about how to improve the system architecture. Now, I think I’m getting better because the vision for my ideal system has been stabilizing in the past 6 months. My hope is to be able to design an all-encompassing system that’s also somehow increadibly simple. SiteLogic is my first run at this.

Code reuse. Conventions. Modularity. Very common in good systems. Because they make good use of these concepts, these systems are pretty extendable. But can they scale backwards? If they could, they’d be much more powerful as platforms.

Something very common in overly engineered "enterprise" systems are layers. Layers allow you to build a very complex system that can be scaled backwards. At any layer you could, in theory, start building in an entirely different direction–ultimately making something completely different.

In most modular systems I’ve come across, a module only has so much power. They always seem to be part of some top layer. I might be able to make a module that adds RSS feeds to my pages or comments to my content, but I can’t make a module that allows me to manage my site from command line. That’s out of the scope of the module framework. I can do it, but as a separate script or something. It’s not built into the architecture.

My response to this has been… make everything a module! The very core of the system would simply be a lightweight module management system. What can you do with this? Anything. Anything at all…

That’s the general concept behind the SiteLogic architecture, and the end of this chapter. Next, I’ll be talking about controllers, module "features," extending modules to act as higher level modules, integrating existing libraries and specialized frameworks, and some actual examples.

Leave a Reply