<?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>ruby &#8211; 天地一沙鸥</title>
	<atom:link href="https://haoluobo.com/tag/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>https://haoluobo.com</link>
	<description>to be continue....</description>
	<lastBuildDate>Thu, 16 Dec 2021 03:50:23 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>编程语言们各自的哲学</title>
		<link>https://haoluobo.com/2012/10/program-language-zen/</link>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Thu, 11 Oct 2012 06:31:43 +0000</pubDate>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<guid isPermaLink="false">/?p=10800</guid>

					<description><![CDATA[曾有同事打算将ZOPE和PLONE啃下，我是不建议的。同事说我不够开放，对自己不喜欢的技术都很排斥。我承认，每 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>曾有同事打算将ZOPE和PLONE啃下，我是不建议的。同事说我不够开放，对自己不喜欢的技术都很排斥。我承认，每个人都会有自己的偏好。但我不赞成使用ZOPE恰恰不是因为偏好问题，我也不会因个人偏好而建议采用或不采用某项技术。<br />
在我看来ZOPE是一个很变扭的技术。ZOPE引入了接口/容器等概念，给人感觉ZOPE在很多方面都在有意的模仿JAVA。Python和JAVA在语言哲学方面有着比较大的差异，试图以Java的方式来做一个Python的WEB开发框架无疑是有些别扭的。如果ZOPE真的学的特别象，那我为什么不干脆直接使用Java？<br />
这世界上存在各种编程语言，每种编程语言都有着自己的特点，正是这些差异满足了各类人的不同需求。这些编程语言都有着自己最核心的思想，这个核心思想就是所谓的“哲学”。没有自己“哲学”的编程语言是无法在这个世界上存活的。有些编程语言看上去问题很多，却很流行。或许它的那些问题也正是它流行的原因。</p>
<h4>PHP</h4>
<p>PHP的使用门槛非常的低，而且通常用PHP写出来的东西代码都不是那么的“漂亮”。于是有些人将PHP看成是业余程序员用的东西。然而就是这么一个看似不怎么专业的东西统治了大半个互联网。PHP的“哲学”是“quick and dirty”。在一定程度上beauty和quick并不容易并存。PHP将quick和简单作为第一要求，代码的漂亮退居第二。dirty的代码并不容易维护，所以通常在系统在复杂后，复杂业务逻辑功能将交由其他技术实现。PHP则安心做着自己表现层的事。</p>
<h4>Java</h4>
<p>有人说Java是给笨人用的语言。这话虽然很难听，不过在一定程度上这还真就是Java的哲学。Java充分利用语言特性和IDE等自动化工具来避免程序员犯错，让人海战术成为可能。对于大多Java项目只需要少数的牛人来设计系统构架和主要接口，下面的具体实现用“笨人”来做就可以了。</p>
<h4>Python</h4>
<p>python的哲学是“quick and clean”。在一定程度上说python确实非常clean也很quick。不过python的clean可让也让python变的有些平庸。python号称什么都能做，却又没在哪个领域特别突出。</p>
<h4>Ruby</h4>
<p>Ruby强调人文关怀，编程是一件有乐趣的事，你可以按照自己喜欢的方式去使用ruby。相对而言ruby可能更容易发挥个人的创造性，但在团队协作时则容易遇到麻烦。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ruby中的block和yield</title>
		<link>https://haoluobo.com/2011/07/ruby-block-yield/</link>
					<comments>https://haoluobo.com/2011/07/ruby-block-yield/#comments</comments>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Tue, 12 Jul 2011 12:41:11 +0000</pubDate>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[ruby]]></category>
		<guid isPermaLink="false">/2011/07/ruby%e4%b8%ad%e7%9a%84block%e5%92%8cyield/</guid>

					<description><![CDATA[rails的同学极力鼓吹rails的简洁高效。虽一早就认定rails不太符合我的习惯，还是经不住诱惑再多看了r [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>rails的同学极力鼓吹rails的简洁高效。虽一早就认定rails不太符合我的习惯，还是经不住诱惑再多看了rails两眼。<br>rails中大量使用了ruby的block语法。由于此前没有系统的看过ruby语法，block还是给我带来了不小的困惑。网上不少介绍block的文章，都说的不是太清楚。在看过《Programming Ruby》后才真正的开始理解block的用法。<br>代码块(<strong>Blocks</strong>)是指一块代码，用大括号({})或者do&#8230;end来标明起始和结束，代码块只能跟在方法调用后边。<br><strong>yield</strong>语句：在方法内部使用yield语句来占位，当方法执行到yield时，实际执行的是调用方法时跟在后边的的代码块。<br><strong>|x|</strong>：变量用一对&#8217;|&#8217;包裹，在代码块中使用，用于接受yield传递的参数。yield后跟的参数会传递给代码块中用| |标志的变量。<br>下面通过例子来更直观的认识block。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: ruby; title: ; notranslate">
def x
  p &quot;=start&quot;
  yield &#039;a&#039;
  yield &#039;b&#039;
  p &quot;=end&quot;
end
x do |a|
  p &quot;hello&quot;, a
end
</pre></div>


<p>程序的运行结果为：</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: ruby; title: ; notranslate">
&quot;=start&quot;
&quot;hello&quot;
&quot;a&quot;
&quot;hello&quot;
&quot;b&quot;
&quot;=end&quot;
</pre></div>


<p>定义了函数x，其中两次使用yield调用block中的代码块。block代码块支持一个参数。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://haoluobo.com/2011/07/ruby-block-yield/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
