<?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>rails &#8211; Watch Rick Code</title>
	<atom:link href="https://watchrickcode.com/tag/rails/feed/" rel="self" type="application/rss+xml" />
	<link>https://watchrickcode.com</link>
	<description>Rails new, you sexy thing…</description>
	<lastBuildDate>Thu, 07 May 2015 12:00:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.3</generator>

<image>
	<url>https://watchrickcode.com/wp-content/uploads/2022/01/cropped-site-icon-wrc-32x32.png</url>
	<title>rails &#8211; Watch Rick Code</title>
	<link>https://watchrickcode.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Omakase and two stacks for Rails</title>
		<link>https://watchrickcode.com/2015/05/07/omakase-and-two-stacks-for-rails/</link>
		
		<dc:creator><![CDATA[rickColosimo]]></dc:creator>
		<pubDate>Thu, 07 May 2015 12:00:50 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[rails]]></category>
		<guid isPermaLink="false">http://watchrickcode.com/?p=20</guid>

					<description><![CDATA[This concept of Rails having &#8220;two default stacks&#8221; is a tough one for me. I chose Rails over other possible &#8220;first language&#8221; choices because I respect the conscious decision of convention over configuration, and I recognize that good fences make good neighbors, particularly in the early stages of learning something with so many potentially moving&#8230;]]></description>
										<content:encoded><![CDATA[<p>This concept of Rails having &#8220;<a href="http://words.steveklabnik.com/rails-has-two-default-stacks">two default stacks</a>&#8221; is a tough one for me. I chose Rails over other possible &#8220;first language&#8221; choices because I respect the conscious decision of convention over configuration, and I recognize that good fences make good neighbors, particularly in the early stages of learning something with so many potentially moving parts.</p>
<p>It would be good if we (now that I feel I&#8217;m <em>almost</em> part of the Rails community) figured out how to do less shooting ourselves in the foot. Let&#8217;s turn gems into more service-like systems, so that a dotenv change can switch my authentication choices from one gem to another without requiring a lot of extra work.</p>
<p><span id="more-20"></span></p>
<p>This is the same DRY principle I learned, and implement, in the contract drafting world (yes, I&#8217;m a lawyer by education). Poorly drafted contracts have lots of bear traps hidden throughout, like a person&#8217;s individual name in Section 6.3, and a random sentence added to Section 5.4(a). These are the legal equivalent of hard coding numbers into your excel formulas or using a fixnum instead of a variable in a method (which I understand well <em>because</em> I understand the excel framework so well).</p>
<p>Gems should be more plug and play in basic methods, so that we&#8217;re not writing code, and then rewriting code to implement a new gem&#8217;s version of the same features. New code for new features, sure. But when I switch my email provider from one imap provider to another, the experience is awfully seamless.</p>
<p>Of course, gem authors aren&#8217;t really participants in a self-organizing system, and there&#8217;s no <a href="https://twitter.com/dhh">DHH</a> to stake out a position for everyone else to either applaud or complain about. (And for that, this newbie says, &#8220;Thanks for being the lightning rod, DHH.&#8221; I know it can&#8217;t be a lot of fun some days.) But we as developers can think about ways to make our gems function more like services to our apps, so that we can replace and upgrade them without triggering lots of additional changes.</p>
<p>It&#8217;s not just DRY within an app, it&#8217;s also DRY within your app&#8217;s ecosystem and even across apps.</p>
<p>Having seen how a very old profession has continued to screw ourselves by poor architecture/design choices, I can see a path to improving the efficiency/value of dev time.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
