PhpRiot
News Archive
PhpRiot Newsletter
Your Email Address:

More information

Larry Garfield's Blog: Architectural priorities

Note: This article was originally published at PHPDeveloper on 29 September 2010.
PHPDeveloper

Larry Garfield has a recent post to his blog that outlines what he thinks are some of the top priorities you should take into consideration when architecting your next application - small or large - and lays that structure on top of what the Drupal project is doing.

Understanding architecture, and the trade-offs that different architectures imply, is an important part of any software project. [...] To be able to speak and think about the design of your system properly, though, you need to understand the trade-offs that come with it. There is no such thing as a free lunch, and designing a system to be powerful in one way invariably tends to harm it in another. It is important to know what your priorities are before you start building; and in a distributed collaborative environment like Drupal to all agree what those priorities are, at least to a large extent.

Talks about software architecture design patterns (like Model-View-Controller or Naked objects) including one that's not so much a pattern as an evolution - monolithic architecture. Among the list of things he suggests considering are subjects like:

  • Modifiability
  • Testability
  • Performance
  • Scalability
  • Usability
  • Maintainability

He compares this list to how the Drupal project is run and finds a large emphasis on extensibility, modularity, scalability. These came at the cost of testability, verifiability and understandability however.