<?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/"
	>

<channel>
	<title>zahnster &#187; Frameworks</title>
	<atom:link href="http://zahnster.com/category/frameworks/feed" rel="self" type="application/rss+xml" />
	<link>http://zahnster.com</link>
	<description>my name's jade. i'm a child of the internet.</description>
	<lastBuildDate>Tue, 27 Apr 2010 04:04:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HTML Helpers: Friend or foe?</title>
		<link>http://zahnster.com/frameworks/html-helpers-friend-or-foe</link>
		<comments>http://zahnster.com/frameworks/html-helpers-friend-or-foe#comments</comments>
		<pubDate>Fri, 01 Jun 2007 23:23:17 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Frameworks]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=21</guid>
		<description><![CDATA[Ever since getting on the rapid development framework bandwagon, the one part I&#8217;ve not been totally sold on is the use of helpers, specifically, helpers which replace HTML code.
The reasoning is that I&#8217;ve never really seen the point of them. To give an example, CakePHP has an HTML helper for creating links &#8211; and the [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since getting on the rapid development framework bandwagon, the one part I&#8217;ve not been totally sold on is the use of helpers, specifically, helpers which replace HTML code.</p>
<p>The reasoning is that I&#8217;ve never really seen the point of them. To give an example, CakePHP has an HTML helper for creating links &#8211; and the code looks a little something like this:<br />
<code>&lt;?php echo $html-&gt;link('link text description', '/path/to/link') ?&gt;</code></p>
<p>Which isn&#8217;t really much more efficient than it&#8217;s HTML counterpart, written like this:<br />
<code>&lt;a href="url"&gt;link text description&lt;/a&gt;</code></p>
<p>In fact, the HTML is shorter to write out. So why even bother with HTML helpers?</p>
<p><span id="more-21"></span></p>
<p>I got into the habit of using them, mostly because when I got into the CakePHP framework, it just seemed like the thing to do. It made me feel all Cake-y, and yes, it does come in handy when you are using php variables in the link creation. However, it became abundantly clear to me the other day that it can really cripple regular website maintenance for developers who come into the project not knowing Cake.</p>
<p>One of my clients, who I had created a site for using Cake, needed to change a link in one of the page views, saw the $html-&gt;link() function, didn&#8217;t understand it, and thought that all links had to be created in this special way. Which is totally understandable &#8211; the client doesn&#8217;t know a lot about the Cake framework (or frameworks in general), and wasn&#8217;t aware that all the link function does is parse out an HTML link (and that he could have just used a normal HTML link and it would have been the same).</p>
<p>So, the question remains &#8211; are HTML helpers worth it?</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/frameworks/html-helpers-friend-or-foe/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Frameworks: Light on the SQL, Please</title>
		<link>http://zahnster.com/frameworks/frameworks-light-on-the-sql-please</link>
		<comments>http://zahnster.com/frameworks/frameworks-light-on-the-sql-please#comments</comments>
		<pubDate>Fri, 20 Apr 2007 07:32:17 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Frameworks]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=12</guid>
		<description><![CDATA[Cake, the rapid development framework for PHP, makes life 10,000% easier for developers everywhere by providing us with an ActiveRecord pattern for performing the most used database interaction methods: Create, Read, Update, and Delete (CRUD). It&#8217;s modeled closely off of Ruby on Rails&#8217;s ActiveRecord, for those who are more familiar with that framework.
As a Rails [...]]]></description>
			<content:encoded><![CDATA[<p>Cake, the rapid development framework for PHP, makes life 10,000% easier for developers everywhere by providing us with an ActiveRecord pattern for performing the most used database interaction methods: Create, Read, Update, and Delete (CRUD). It&#8217;s modeled closely off of Ruby on Rails&#8217;s ActiveRecord, for those who are more familiar with that framework.</p>
<p>As a Rails developer I&#8217;ve seen the limits of ActiveRecord, and the performance issues it gets when dealing with large, complex database types. But to be honest, I&#8217;ve never been a big fan of the Ruby language, and part of me assumed that was just Ruby being slow. I was convinced that with a good framework, ActiveRecord could be used (efficiently) in complex database environments.</p>
<p>Yesterday that blind faith was taken to the test as I attempted to optimize a CSV generator. The problem was simple: the query which collected a table&#8217;s information, was producing an array which was way too large &#8211; the database table had close to 60,000 records and at 9.something MB, was throwing PHP memory allocation errors left and right.</p>
<p>Right now it stands at Heavyweight SQL: 1 / CakePHP: 0. However, I am determined to find a way to make complex databases work well with Cake &#8211; I still have a lot to learn about this framework, and I have belief in it.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/frameworks/frameworks-light-on-the-sql-please/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Power Behind Frameworks</title>
		<link>http://zahnster.com/frameworks/the-power-behind-frameworks</link>
		<comments>http://zahnster.com/frameworks/the-power-behind-frameworks#comments</comments>
		<pubDate>Fri, 20 Apr 2007 05:46:27 +0000</pubDate>
		<dc:creator>Zahnster</dc:creator>
				<category><![CDATA[Frameworks]]></category>

		<guid isPermaLink="false">http://zahnster.com/?p=10</guid>
		<description><![CDATA[Ever since discovering the Ruby on Rails craze last spring, I&#8217;ve been falling more and more interested in frameworks. It&#8217;s quite amazing how they help web developers not only develop applications faster, but create them with less code, cleaner code, and more maintainable code.
New frameworks are popping out all the time, and it&#8217;s really amazing [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since discovering the Ruby on Rails craze last spring, I&#8217;ve been falling more and more interested in frameworks. It&#8217;s quite amazing how they help web developers not only develop applications faster, but create them with less code, cleaner code, and more maintainable code.</p>
<p>New frameworks are popping out all the time, and it&#8217;s really amazing that this is starting to catch on in the web industry. Ruby has Rails, PHP has Cake, Python has Django&#8230; and that&#8217;s just the top of the pile.</p>
<p><span id="more-10"></span></p>
<p>However, not all frameworks are created equal. In a world where everyone and their mother are getting on the framework bandwagon, one must be wary of what they put time into learning. All too often you find a framework which has become too bloated with features, backwards code, and crappy documentation. But when you can find a good framework and connect with it &#8211; well, it can be very empowering. A small development team can take on the world.</p>
<p>So this got me thinking &#8211; what makes a framework a great framework or a crap one? What are we, as developers, gaining from frameworks and how can we best utilize them without fattening them up like a Thanksgiving turkey?</p>
<p>The power behind a good framework is actually quite simple, and has been in process for eons. It&#8217;s really a method of standardization for programming. Back when we would judge distance by our hands and feet, everyones beds were different lengths. Just like now &#8211; we see a programmatical goal &#8211; we need to make a affect b. Without frameworks, chances are we&#8217;d all program it slightly different. What good frameworks do is set us up with conventions to program &#8211; a sub-language of sorts which unifies programmers.</p>
<p>But what kinds of conventions do we need? If we try to cover everything, we&#8217;ll end up with a big jumbled mess of 20 parameter functions and an API that scrolls for years. A framework which knows its limits is always going to win over a framework which tries to do everything for you. However, there are several standard conventions which greatly improve frameworks. At the most basic, some really important ones are:</p>
<ul>
<li>CRUD functionality</li>
<li>MVC architecture</li>
<li>Helpers, Components, and Partials</li>
<li>Support of 3rd Party Libraries</li>
</ul>
<p>Why these? Lets dig a bit deeper into the benefits of each:</p>
<p><strong>CRUD FUNCTIONALITY<br />
</strong>CRUD is one of the neatest things to come about in the in the web since the conception of standardization. If you&#8217;re not up on the buzzword, CRUD is an acronym for Create, Read, Update, Delete, and refers to the MySQL functions you find yourself using a hundred times a day. With a good framework, no longer will you have to connect to your database &#8211; it&#8217;s been done for you. Your table? Selected. How? Standardization of your code lets the framework do all the redundant work for you. CRUD functionality is now down to a one-line process, drastically boosting development speed and cleaning up code.</p>
<p><strong>MVC ARCHITECTURE<br />
</strong>The MVC Architecture, to me, is just beautiful. The ability to separate your database code from your processing code and presentation code is the best possible way to develop. Separating code always helps keep it maintainable &#8211; the less you have to echo out HTML statements with PHP, the better. Separating your code into database logic, the application layer, and presentation logic is a very well-organized and efficient logic when you get right down to it.</p>
<p><strong>HELPERS, COMPONENTS, AND PARTIALS<br />
</strong>In an MVC world, where code is separated by it&#8217;s software role, one might think that this isn&#8217;t very DRY. If every view requires a navigation bar, wouldn&#8217;t copying and pasting the bar through every view seem a bit redundant?</p>
<p>Well, this is where helpers, components, and partials come in.</p>
<p>These three types of files allow code to be reused through multiple areas of the project. Think of them like the guys at concerts with all-access passes &#8211; one partial can display code for every view file in your application. Helpers, components, and partials play a huge role in DRYing up your code, and all the while make it way more maintainable. That horrible nav with the overlays you programmed? It&#8217;s stored in it&#8217;s own partial &#8211; and calling it out on your view pages is reduced to a single line of code.</p>
<p><strong>SUPPORT OF 3RD PARTY LIBRARIES<br />
</strong>Since we&#8217;re not trying to have our framework do everything for us, there are times when we will need to do something that&#8217;s outside our framework&#8217;s scope. Cake, for instance, does not have built in support for RSS feeds, but does that mean that we could never tap into an RSS feed?</p>
<p>Not a chance. Just like frameworks, development libraries are popping up all around us. Javascript alone has dozens &#8211; from scriptaculous and prototype to jquery. Any good framework will allow you to be flexible with third party libraries &#8211; and a great framework will provide you the means to integrate these libraries into it. It shouldn&#8217;t be a surprise that most frameworks come with a Vendors folder, or something similar to place and hook up your third party applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://zahnster.com/frameworks/the-power-behind-frameworks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
