<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<title>石頭閒語</title>
<link>http://blog.roodo.com/rocksaying/</link>
<description>[Licensed by GNU FDL]
Rock's Saying 
遊手好閒的石頭成的部落格 
Open Your Mind, Use the Source! 
//
</description>
<language>zh-tw</language>
<generator>Roodo Blog System</generator>
<copyright>All Rights Reserved</copyright>

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/rocksaying" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
	<title>Ruby的中介編程與反射能力示範</title>
	<description>
		<![CDATA[<p>
在系列文章的前幾篇，我已經說明了 JavaScript 與 PHP 中介編程與反射能力的方式。
本文則就同樣的需求功能，示範 Ruby 的實作方式。
</p>

<p>
本文所示範的輸出結果，與 <a href="http://blog.roodo.com/rocksaying/archives/10624583.html" class="bookname_notation">JavaScript的中介編程與反射能力示範</a> 、<a href="http://blog.roodo.com/rocksaying/archives/10657709.html" class="bookname_notation">
PHP的中介編程與反射能力示範</a> 相同。
該做什麼，前文都提過了，此處不再重談。
</p>		]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/10711741.html</link>
	<guid isPermaLink="true">http://blog.roodo.com/rocksaying/archives/10711741.html</guid>
	<category>Ruby</category>
	<pubDate>Sun, 15 Nov 2009 21:21:49 +0800</pubDate>
</item>
<item>
	<title>擁抱變化，從函數指標到函數個體</title>
	<description>
		<![CDATA[<p>
我來說個關於函數指標(<span class="Onote">在 C 語言中，function 就是一個 function pointer</span>)與函數個體(function object)的小故事。這個故事還有一個 Java 版的，在本文的最後一節。只對 Java 語言有興趣的，可以先看後面的 Java 版，再回頭看前面。
</p>

<p>
有一天，"偉大的"架構設計師交代甲和乙兩位程序員共同負責撰寫一個小程式。這個程式配置了兩個陣列，一個是傳統的整數陣列，一個是整數<code>vector</code>。這個程式要將這兩個陣列的內容傾印出來。
</p>
		]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/10700785.html</link>
	<guid isPermaLink="true">http://blog.roodo.com/rocksaying/archives/10700785.html</guid>
	<category>C/C++</category>
	<pubDate>Sat, 14 Nov 2009 23:52:42 +0800</pubDate>
</item>
<item>
	<title>JavaScript的類別定義擴充能力</title>
	<description>
		<![CDATA[<p>
我在試探不同程式語言的中介編程與反射能力系列文章的第三篇<a href="http://blog.roodo.com/rocksaying/archives/10657709.html" class="bookname_notation">PHP的中介編程與反射能力示範</a>中提到 JavaScript 也可以透過 <dfn>prototype</dfn> 的操作實現直接擴充類別定義的能力，這種能力在 Ruby 中稱為 <em>open class</em>。本文是為了示範 JavaScript 此能力所做的補充。
</p>
		]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/10683081.html</link>
	<guid isPermaLink="true">http://blog.roodo.com/rocksaying/archives/10683081.html</guid>
	<category>JavaScript</category>
	<pubDate>Thu, 12 Nov 2009 23:15:06 +0800</pubDate>
</item>
<item>
	<title>PHP程序員開始寫Ruby程式的函數參考網站</title>
	<description>
		<![CDATA[<p>
工商服務時間。PHP程序員學了Ruby語言後，如果想開始動手寫程式，很快就會發現許多在PHP用慣了的函數，在 Ruby 中並沒有同名的函數。然後初學Ruby的滿腔熱血，就在翻找 Ruby 手冊的過程中降溫。這實在是令人遺憾的事。如何避免這種事情發生呢？
</p>
<p>
就讓我來介紹一個很好的參考網站，那就是「<a href="http://railsforphp.com/reference">Rails for PHP Developers</a>」。幾乎八成常用的PHP函數，都可以在那找到對應的Ruby API。你只要在該網站的搜尋欄中輸入你想查的 PHP 函數名稱，若該網站有整理，它就會告訴你這個 PHP 函數對應的 Ruby API 是什麼，還附帶程式範例。如下圖所示。
</p>
<img src="http://blog.roodo.com/rocksaying/3fcf712b.png" alt="rails for php developers sample"/>
<p>
我前陣子將我以前寫的一些PHP工具程式用Ruby改寫時，靠這個網站省下許多翻手冊的時間。我相信有了它之後，PHP程序員開始寫Ruby程式時，會感到相當愉快。
</p>
<p>
PS. 我仍然很喜歡PHP。只是身為一個程序員，擁抱三四種程式語言是很正常也很合理的。
</p>		]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/10682381.html</link>
	<guid isPermaLink="true">http://blog.roodo.com/rocksaying/archives/10682381.html</guid>
	<category>Ruby</category>
	<pubDate>Thu, 12 Nov 2009 21:55:59 +0800</pubDate>
</item>
<item>
	<title>PHP的中介編程與反射能力示範</title>
	<description>
		<![CDATA[<p>
本文是我試探不同程式語言的中介編程與反射能力系列文章中的第二部份，關於 PHP 的內容。
基本上，我指的是 PHP5 。
</p>

<p>
PHP 雖然被認為是動態語言，但語法上卻又具有許多靜態語言的性質，這使得它被認為「不那麼動態」。
尤其它在引入 OOP 能力時，學了不少 Java 語言的方式，因此限制了 PHP 的表達能力。
例如 PHP 也將型別分成原始型別(primitive types)與個體型別，套用 Java 的 class 與 interface 語法，
功能相似的反射類別等等。儘管如此，PHP 還是具有一些 Java 語言沒有的能力，故能達到比 Java 語言更高的靈活度。所以在實作本文所需範例時，仍比 Java 語言簡單。
</p>
		]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/10657709.html</link>
	<guid isPermaLink="true">http://blog.roodo.com/rocksaying/archives/10657709.html</guid>
	<category>PHP</category>
	<pubDate>Wed, 11 Nov 2009 14:43:31 +0800</pubDate>
</item>
<item>
	<title>再探 JavaScript的中介編程 foreach</title>
	<description>
		<![CDATA[<p>
網友 WanCW 在 <a href="http://blog.roodo.com/rocksaying/archives/10624583.html">JavaScript的中介編程與反射能力示範</a> 一文中<a href="http://blog.roodo.com/rocksaying/archives/10624583.html#comment-20046335">回應</a> <q>文章中的 foreach() 並未產生新的程式或是修改現有的程式，好像不太能算是 metaprogramming？</q>
</p>
<p>
並非如此，其實 foreach 在中介編程(metaprogramming)的領域是經典樣式。只是我上文的例子太精簡，以至於看不出它的威力。嗯，如果不來個複雜點的程式碼，確實不容易看出 foreach 到底可以幫我們省下多少程式碼。我就來個複雜點的示範吧。
</p>
		]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/10637755.html</link>
	<guid isPermaLink="true">http://blog.roodo.com/rocksaying/archives/10637755.html</guid>
	<category>JavaScript</category>
	<pubDate>Tue, 10 Nov 2009 00:56:32 +0800</pubDate>
</item>
<item>
	<title>JavaScript的中介編程與反射能力示範</title>
	<description>
		<![CDATA[<p>
基於某些原因，我這幾天嘗試分別以 JavaScript, PHP, Ruby (排名按字母順序) 實現同一個簡單的功能，這個功能用了簡單的反射與中介編程技巧。
主要目的是看這些語言在動態型別、中介編程、迭代與反射語法方面的表現。
最後，我會用 Java 語言來實現這個需求，「展現Java語言的特點」。
</p>
<p>
這篇構想中的文章，愈寫愈長。我想了想，還是按程式語言拆成幾篇，先把要示範的源碼與說明發佈上來。
這是第一篇發佈的，內容是 JavaScript 的實作，示範了兩個基本的中介編程技巧: foreach 和 accessor。
</p>		]]>
	</description>
	<link>http://blog.roodo.com/rocksaying/archives/10624583.html</link>
	<guid isPermaLink="true">http://blog.roodo.com/rocksaying/archives/10624583.html</guid>
	<category>JavaScript</category>
	<pubDate>Mon, 09 Nov 2009 11:45:07 +0800</pubDate>
</item>
</channel>
</rss>
