Architecture

Architect Using Diagrams

Posted: April 29, 2010 In / 6 Comments

If you can't describe a system with simple diagrams the system is flawed. I've seen diagrams for cars, military vehicles, computer chips, and other very complex systems. Block and flow diagrams that simplify and explain in just the right amount of detail. Yet, when it comes to software applications, even complex ones, I am finding diagrams difficult to find. To make matters worse, when some systems that were architected in code do have diagrams put to them you find the picture is not so pretty.

theme-layer.pdf (page 2 of 4)

One of the best techniques I've learned for architecting a system is to start with diagrams. Read more »

It's Time For NoMVC

Posted: April 27, 2010 In / 6 Comments

Comparison of web application frameworks - Wikipedia, the free encyclopediaMVC is a really popular software architecture pattern used on the web. Its become so popular that its too popular. On the Wikipedia comparison of web frameworks it doesn't list the top level architecture for a program. Instead it lists whether MVC is used and if its push or pull. I can't list the number of times I've read or heard a criticism of a program because its not using the MVC pattern. This is turning into a bad thing. Read more »

Building Web APIs Developers Want To Consume

Posted: April 26, 2010 In

Over the weekend I was writing code to consume some web APIs. The project sounded like fun and on a whole it will be. The problem came when I actually took a look at the APIs. They were built in a way that made me think about walking away from an otherwise fun project. Yikes. This is not good.

This got me thinking, what makes a web API the kind a developer wants to consume? What types of things, beyond the service being useful, make a difference? Three things came to mind that make a difference for me. Read more »

Pluggable Entity Operations in Drupal 7

Posted: March 1, 2010 In / 2 Comments

In Drupal 7 core all the common objects, like nodes, users, comments, and terms, are called entities. Entities are a base level conceptual object designed to be used as a base for objects in core and contrib. But, there is a problem with the core entity pattern we can improve on in our contrib modules.

Entities have a controller used for their loading operations. The controller is a class that can be swapped out for alternative controllers when developers want to do something fancy, like have their own node caching setup. But, only the load operation is on the controller. The other CRUD (create, read, and delete) are hard coded in functions like node_load, node_save, and other object operations. The CRUD control for entities can't be completely swapped out. Let's take a look at a base pattern to use for completely swappable controllers. Read more »

How To Evaluate A CMS

Posted: January 5, 2010 In

Amy Stephen recently posted on twitter how much Wordpress rocks. My gut reaction wanted me to respond by saying I was less than impressed with Wordpress. Instead I asked a question. How do we go about evaluating a content management system? Amy came to one conclusion and I came to a very different one which means our evaluation criteria must be miles apart. In response to that question, here is my take on how you evaluate a content management system. Read more »

Bringing Architecture To Your Software

Posted: November 3, 2009 In / 5 Comments

Software without architecture is like coffee without a cup. A hot mess in your lap. Here we look at why software architecture is important.

I used to have a boss that talked about the difference between a programmer and a software engineer. He would say things like, "I hired engineers not programmers. I can get programmers cheap. I want code that's designed." The problem of code being hacked together rather than designed is all too common. Let's take a look at why engineering a solution is better than hacking it together. Read more »

Are Forums A Thing Of The Past?

Posted: November 2, 2009 In / 10 Comments

stack-overflow-logo.pngUntil recently, I had come to the conclusion that web forums were dead. When it came to new sites or conversations about web technologies forums were something I avoided all together. Forums just didn't seem to fit within the current paradigm of web technologies and there seemed to be better ways to have the same kind of communication. That was until recently when I saw a variation of forums that works in this new paradigm. Read more »