<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>BrandonSavage.net &#187; System Architecture</title>
	<atom:link href="http://www.brandonsavage.net/category/system-architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brandonsavage.net</link>
	<description>The personal blog of Brandon Savage. Contains entries of a personal and professional nature focusing on PHP, Apple, LAMP, MySQL and Washington, DC.</description>
	<lastBuildDate>Wed, 28 Jul 2010 15:28:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>July Slides</title>
		<link>http://www.brandonsavage.net/july-slides/</link>
		<comments>http://www.brandonsavage.net/july-slides/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 15:28:37 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[micro-optimization]]></category>
		<category><![CDATA[object oriented programming]]></category>
		<category><![CDATA[object-oriented design]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1317</guid>
		<description><![CDATA[July was a month of talks and travel, including speaking at OSCON and user group talks to DCPHP and PDXPHP. For those who saw the &#8220;Micro Optimize This!&#8221; talk, you can download the slides here. For those looking for the &#8220;Five Tips To Make Good Object Oriented Code Better&#8221; slides, those are available here.]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/july-slides/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>An Intro To Zend_Navigation</title>
		<link>http://www.brandonsavage.net/an-intro-to-zend_navigation/</link>
		<comments>http://www.brandonsavage.net/an-intro-to-zend_navigation/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 11:00:06 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Acl]]></category>
		<category><![CDATA[page tree]]></category>
		<category><![CDATA[Zend_Acl]]></category>
		<category><![CDATA[Zend_Navigation]]></category>
		<category><![CDATA[ZF]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1215</guid>
		<description><![CDATA[This past week I had the need to integrate Zend_Acl with a navigation and menu system. Unfortunately, the documentation took a couple reads for me to understand how Zend_Navigation worked; given this, I wanted to write a primer that others could use to get started with Zend_Navigation. This is a short guide to how Zend_Navigation [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/an-intro-to-zend_navigation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<series:name><![CDATA[Zend Navigation]]></series:name>
	</item>
		<item>
		<title>Why Active Record Isn&#8217;t A Bad Design Pattern</title>
		<link>http://www.brandonsavage.net/why-active-record-isnt-a-bad-design-pattern/</link>
		<comments>http://www.brandonsavage.net/why-active-record-isnt-a-bad-design-pattern/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 13:00:38 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Object-Oriented Development]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[ActiveRecord]]></category>
		<category><![CDATA[design patterns]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=1190</guid>
		<description><![CDATA[Were I writing this as an article for a newspaper, the subhead would be &#8220;Design Patterns Don&#8217;t Cause Application Slowness.&#8221; The point of this piece isn&#8217;t to defend Active Record per se; it&#8217;s to discuss the fact that design patterns aren&#8217;t to blame for your application&#8217;s problems, and more to the point, design patterns aren&#8217;t [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/why-active-record-isnt-a-bad-design-pattern/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Why Every Developer Should Write Their Own Framework</title>
		<link>http://www.brandonsavage.net/why-every-developer-should-write-their-own-framework/</link>
		<comments>http://www.brandonsavage.net/why-every-developer-should-write-their-own-framework/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 06:00:49 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[General PHP]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=942</guid>
		<description><![CDATA[Lots of people have the itch to write their own frameworks. They think that they can do better than Zend, Cake, Symfony, or application-level frameworks like Drupal. They&#8217;re convinced that those designers and developers made fatal flaws, and they can improve upon them. They&#8217;re just itching to give it a shot. So for those of [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/why-every-developer-should-write-their-own-framework/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Five Tips To Make Good Object-Oriented Code Better</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/</link>
		<comments>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 05:00:20 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[composition vs inheritance]]></category>
		<category><![CDATA[dependency injection]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945</guid>
		<description><![CDATA[Last week, I did a talk at the Frederick Web meetup about tips and tricks for improving your object-oriented code. A lot of these tips were adapted from a fabulous presentation by Stefan Priebsch but the ideas are by no means original to him, and they&#8217;re exceptionally good ideas when you&#8217;re talking about object-oriented code. [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Accessing Databases with PDO: A Primer</title>
		<link>http://www.brandonsavage.net/pdo-primer/</link>
		<comments>http://www.brandonsavage.net/pdo-primer/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 05:00:50 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[PDO]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=753</guid>
		<description><![CDATA[With the introduction of PHP 5, the PHP Data Object was introduced as core functionality. PHP 5.1 turned on a minimum level of support for SQLite, by default, and PDO supports most of the major database engines. PDO offers a number of enhancements and improvements over the various database libraries (e.g. mysql_*, mysqli_*, pg_*), the [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/pdo-primer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<series:name><![CDATA[The Beginner Pattern]]></series:name>
	</item>
		<item>
		<title>Peer Review: You Have Not Because You Ask Not (Requests &amp; Responses)</title>
		<link>http://www.brandonsavage.net/peer-review-you-have-not-because-you-ask-not-requests-responses/</link>
		<comments>http://www.brandonsavage.net/peer-review-you-have-not-because-you-ask-not-requests-responses/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 05:00:12 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[code review]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Peer Review]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=598</guid>
		<description><![CDATA[This entry is part of an ongoing series involving the review of a code sample and it&#8217;s refactoring. For the original code sample, see here. The topics discussed in this entry may be fairly advanced. Please feel free to ask questions, and discuss best practices. If you&#8217;ve been following this series from the beginning, take [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/peer-review-you-have-not-because-you-ask-not-requests-responses/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<series:name><![CDATA[Peer Review]]></series:name>
	</item>
		<item>
		<title>Custom Apps: Some Strategies For Easy Configuration Files</title>
		<link>http://www.brandonsavage.net/custom-apps-some-strategies-for-easy-configuration-files/</link>
		<comments>http://www.brandonsavage.net/custom-apps-some-strategies-for-easy-configuration-files/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 05:00:54 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[class constants]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[ini files]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=661</guid>
		<description><![CDATA[One of the decisions that has to be made each time an application is written for distribution is how best to set up the configuration files. There are a number of different approaches taken to this: some opt to use the define() function and define constants, while others use large arrays. The purpose of this [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/custom-apps-some-strategies-for-easy-configuration-files/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Peer Review: Testable Code And Architecture</title>
		<link>http://www.brandonsavage.net/peer-review-testable-code-and-architecture/</link>
		<comments>http://www.brandonsavage.net/peer-review-testable-code-and-architecture/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 05:00:58 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[PHPUnit]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=597</guid>
		<description><![CDATA[This entry is part of an ongoing series involving the review of a code sample and it&#8217;s refactoring. For the original code sample, see here. Now that we&#8217;ve worked out the abstraction issues and the logic questions, we should take a moment to focus our attention on a few of the issues relating to the [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/peer-review-testable-code-and-architecture/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<series:name><![CDATA[Peer Review]]></series:name>
	</item>
		<item>
		<title>Peer Review: Improving The Business Logic</title>
		<link>http://www.brandonsavage.net/peer-review-improving-the-business-logic/</link>
		<comments>http://www.brandonsavage.net/peer-review-improving-the-business-logic/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 05:00:00 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[business logic]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[objects php 5]]></category>
		<category><![CDATA[PHP 5]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=596</guid>
		<description><![CDATA[This entry is part of an ongoing series involving the review of a code sample and it&#8217;s refactoring. For the original code sample, see here. So far, we&#8217;ve done quite a bit of work on our Twitter class, making it better. There&#8217;s still work to be done, though, especially improving the logic. The Twitter class [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/peer-review-improving-the-business-logic/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<series:name><![CDATA[Peer Review]]></series:name>
	</item>
		<item>
		<title>Peer Review: Looking At Abstraction &#8211; Redux</title>
		<link>http://www.brandonsavage.net/peer-review-looking-at-abstraction-redux/</link>
		<comments>http://www.brandonsavage.net/peer-review-looking-at-abstraction-redux/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 10:30:34 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[Propel]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=590</guid>
		<description><![CDATA[This entry is part of an ongoing series involving the review of a code sample and it&#8217;s refactoring. For the original code sample, see here. Editor&#8217;s Note: The response of the community to this series has been great, and I&#8217;ve been given a large number of suggestions. I&#8217;ve incorporated some of those suggestions into the [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/peer-review-looking-at-abstraction-redux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<series:name><![CDATA[Peer Review]]></series:name>
	</item>
		<item>
		<title>Peer Review: Looking Into Abstraction</title>
		<link>http://www.brandonsavage.net/peer-review-looking-into-abstraction/</link>
		<comments>http://www.brandonsavage.net/peer-review-looking-into-abstraction/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 05:00:16 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[objects php 5]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=571</guid>
		<description><![CDATA[This entry is part of an ongoing series involving the review of a code sample and it&#8217;s refactoring. For the original code sample, see here. There are a number of fundamental concepts in object-oriented design that we should take notice of. One of these concepts is abstraction. This is what we will focus on today [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/peer-review-looking-into-abstraction/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<series:name><![CDATA[Peer Review]]></series:name>
	</item>
		<item>
		<title>Peer Review: Managing Coding Standards</title>
		<link>http://www.brandonsavage.net/peer-review-managing-coding-standards/</link>
		<comments>http://www.brandonsavage.net/peer-review-managing-coding-standards/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 04:00:21 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[code review]]></category>
		<category><![CDATA[constructor]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=558</guid>
		<description><![CDATA[If you need a sample of the code, please visit here. One of the first things I look for when I check out code is how is the code organized? Is it laid out well? Is it coded to a particular standard? In our code sample, the first thing we should address is how does [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/peer-review-managing-coding-standards/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<series:name><![CDATA[Peer Review]]></series:name>
	</item>
		<item>
		<title>To stat() Or Not To stat()?</title>
		<link>http://www.brandonsavage.net/to-stat-or-not-to-stat/</link>
		<comments>http://www.brandonsavage.net/to-stat-or-not-to-stat/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 20:33:17 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[stat]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=503</guid>
		<description><![CDATA[The Alternative PHP Cache (APC) is a tool that offers a massive performance gain to almost any PHP application simply by turning it on. This extension to PHP provides both opcode caching and user caching, placing files and data into memory for fast retreival, and, if used correctly, eliminating some of the bottlenecks of the [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/to-stat-or-not-to-stat/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Making Life Better With The SPL Autoloader</title>
		<link>http://www.brandonsavage.net/making-life-better-with-the-spl-autoloader/</link>
		<comments>http://www.brandonsavage.net/making-life-better-with-the-spl-autoloader/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 07:00:32 +0000</pubDate>
		<dc:creator>Brandon Savage</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[PHP 5]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[autoloader]]></category>
		<category><![CDATA[SPL]]></category>

		<guid isPermaLink="false">http://www.brandonsavage.net/?p=492</guid>
		<description><![CDATA[How many of us have seen this example in code we&#8217;ve worked on? &#60;?php require &#039;/path/to/lib/DatabaseI.php&#039;; require &#039;/path/to/lib/Database.php&#039;; require &#039;/path/to/lib/Authenticate.php&#039;; require &#039;/path/to/lib/User.php&#039;; require &#039;/path/to/lib/BlogEntry.php&#039;; require &#039;/path/to/lib/Comments.php&#039;; require &#039;/path/to/lib/TemplateLoader.php&#039;; &#60;span id=&#34;more-492&#34;&#62;&#60;/span&#62; ?&#62; &#8230;and well you get the point&#8230; If you&#8217;ve been in the business for any length of time you&#8217;d recognize this because almost every single [...]]]></description>
		<wfw:commentRss>http://www.brandonsavage.net/making-life-better-with-the-spl-autoloader/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk (feed is rejected)
Page Caching using apc (user agent is rejected)
Database Caching 48/55 queries in 0.030 seconds using disk
Content Delivery Network via Amazon Web Services: S3: files.brandonsavage.net.s3.amazonaws.com

Served from: www.brandonsavage.net @ 2010-07-31 11:04:15 -->