<?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>里克的自习室 &#187; ROA</title>
	<atom:link href="http://railser.cn/blog/tag/roa/feed" rel="self" type="application/rss+xml" />
	<link>http://railser.cn</link>
	<description>关注Ruby和Rails的学习与开发</description>
	<lastBuildDate>Sun, 26 Feb 2012 12:20:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>RESTful的Rails开发，讲讲4Rails.cn的开发心得</title>
		<link>http://railser.cn/blog/rails-on-rest-and-4rails-cn</link>
		<comments>http://railser.cn/blog/rails-on-rest-and-4rails-cn#comments</comments>
		<pubDate>Sun, 20 Jan 2008 09:01:29 +0000</pubDate>
		<dc:creator>里克</dc:creator>
				<category><![CDATA[default]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[ROA]]></category>

		<guid isPermaLink="false">http://railser.cn/archives/rails-on-rest-and-4rails-cn</guid>
		<description><![CDATA[这是一篇笔记。 最近的事情很多很不顺利，不过一切都会过去，并且重新走上 正规的。 前阵子在看《RESTful Web Services》，看得更加迷惑，毕竟是英文书，不太好理解。不过关于REST的理解还是整理了一下。 同时在写一个个人的项目，主要是在开发的过程中保持对编程的感觉（因为没有接到赚钱的项目），还有就是试用新的Rails2.0.2，以及对REST的重新理解。 这个个人的项目是http://4rails.cn，一个招聘信息发布和简历系统。由于目前是个人练习，所以功能上很主观，并未太考虑实用性。而且在正式美化界面前，它属于全人类。 开发4Rails有几个想法： 1、RESTful和ROA 2、Rails2.0.2下的RESTful 3、几个插件的使用 4、实现以前想过但是没做的想法 5、为另一个项目准备 随便写写： 1、RESTful和ROA I hold that everything in the Resource-Oriented Architecture is also RESTful. 在这篇文章里面，比较详细的介绍了REST的概念，但是，普遍的来说，很多文章 对REST的描述都是千篇一律的。那么，《RESTful Web Services》中如何来介绍REST的呢？ 第四章《The Resource-Oriented Architecture》 中讲到：REST不是一个结构，而是一个标准[criteria]，但是这里并不是在说“REST 结构”。而ROA(Resource-Oriented Architecture)才是一个结构，一个RESTful的结构。 在这里，“Oriented”再次出现在眼里，而它出现最多地方的便是“Object Oriented Programming”，计算机教科书里的翻译为“面向对象的程序设计”。那么根据同样的原则，来对ROA理解，可以叫做“面向资源的结构”。 那么Rails2.0.2里面，是如何来实现ROA的呢？ 2、Rails2.0.2下的RESTful 在Rails1.2.x里面就在坚持着RESTful的风格，现在Rails2.0.2更加强调了ROA的结构，特别是在scaffold的生成和routes的设计上。不过，Rails并不是完全的REST，“RESTful”比较合适。而在目前的开发中，更多的是在遵循ROA，来设计“资源”。 在4Rails的这个系统中，资源包括：用户，招聘信息，用户关注的信息，简历，头像。 刚开始对REST感兴趣的时候，经常会想到的问题：“是不是网站的设计都要RESTful”，不。 REST讲究的是ROA的设计，是对网站资源的操作，而很多业务操作，如用户登陆，购买流程，统计结算等等，还是需要传统的设计。RESTful的优点是方便资源的利用。所以，再重新设计一个销售项目的时候，Rails做的是对网站资源和用户资源重新设计，这主要的改进是，对资源的表述更加准确。 比如以前喜欢把用户中心地址设计成"/u/1"，用户的销售商品列表就是"/goods"。 而现在统一的都是"/users/1"，和"/users/1/goods"，当然，这里面避免了的麻烦还很多。 里克：当然，id的使用并不是REST所提倡的，因为它不够直接，而且当id变化的时候（很容易造成变化，比如新老系统的数据整合的时候），就会造成一些问题。我倒是希望Rails能够用slug来代替id，就像wp的Post Slug，或者给出两个方案，默认用id，slug可选。这会成真吗？ 有时候，xxx_id 并不一定代表model关系中的外键关联，它可能是一个判断标准。尤其在REST的view页面的时候。对于需要对其判断权限的访问者，这个id比其他的更重要。 3、插件 4Rails用到了4个插件： will_paginate：分页插件，很好用。 [...]]]></description>
			<content:encoded><![CDATA[<p>这是一篇笔记。</p>
<p>最近的事情很多很不顺利，不过一切都会过去，并且重新走上 正规的。</p>
<p>前阵子在看《RESTful Web Services》，看得更加迷惑，毕竟是英文书，不太好理解。不过关于REST的理解还是整理了一下。</p>
<p>同时在写一个个人的项目，主要是在开发的过程中保持对编程的感觉（因为没有接到赚钱的项目），还有就是试用新的Rails2.0.2，以及对REST的重新理解。</p>
<p>这个个人的项目是<a href="http://4rails.cn" target="_blank">http://4rails.cn</a>，一个招聘信息发布和简历系统。由于目前是个人练习，所以功能上很主观，并未太考虑实用性。而且在正式美化界面前，它属于全人类。</p>
<p>开发4Rails有几个想法：</p>
<blockquote><p> 1、RESTful和ROA</p>
<p>2、Rails2.0.2下的RESTful</p>
<p>3、几个插件的使用</p>
<p>4、实现以前想过但是没做的想法</p>
<p>5、为另一个项目准备</p></blockquote>
<p>随便写写：</p>
<h3>1、RESTful和ROA</h3>
<blockquote><p> I hold that everything in the Resource-Oriented Architecture is also RESTful.</p></blockquote>
<p>在<a href="http://baike.baidu.com/view/1077487.htm" target="_blank">这篇文章</a>里面，比较详细的介绍了REST的概念，但是，普遍的来说，很多文章 对REST的描述都是千篇一律的。那么，《RESTful Web Services》中如何来介绍REST的呢？</p>
<p>第四章《The Resource-Oriented Architecture》 中讲到：REST不是一个结构，而是一个标准[criteria]，但是这里并不是在说“REST 结构”。而ROA(Resource-Oriented Architecture)才是一个结构，一个RESTful的结构。</p>
<p>在这里，“Oriented”再次出现在眼里，而它出现最多地方的便是“<a href="http://baike.baidu.com/view/63596.htm">Object Oriented Programming</a>”，计算机教科书里的翻译为“面向对象的程序设计”。那么根据同样的原则，来对ROA理解，可以叫做“面向资源的结构”。</p>
<p>那么Rails2.0.2里面，是如何来实现ROA的呢？</p>
<h3>2、Rails2.0.2下的RESTful</h3>
<p>在Rails1.2.x里面就在坚持着RESTful的风格，现在Rails2.0.2更加强调了ROA的结构，特别是在scaffold的生成和routes的设计上。不过，Rails并不是完全的REST，“RESTful”比较合适。而在目前的开发中，更多的是在遵循ROA，来设计“资源”。</p>
<p>在4Rails的这个系统中，资源包括：用户，招聘信息，用户关注的信息，简历，头像。</p>
<p>刚开始对REST感兴趣的时候，经常会想到的问题：“是不是网站的设计都要RESTful”，不。</p>
<p>REST讲究的是ROA的设计，是对网站资源的操作，而很多业务操作，如用户登陆，购买流程，统计结算等等，还是需要传统的设计。RESTful的优点是方便资源的利用。所以，再重新设计一个销售项目的时候，Rails做的是对网站资源和用户资源重新设计，这主要的改进是，对资源的表述更加准确。</p>
<p>比如以前喜欢把用户中心地址设计成"/u/1"，用户的销售商品列表就是"/goods"。<br />
而现在统一的都是"/users/1"，和"/users/1/goods"，当然，这里面避免了的麻烦还很多。</p>
<p>里克：当然，id的使用并不是REST所提倡的，因为它不够直接，而且当id变化的时候（很容易造成变化，比如新老系统的数据整合的时候），就会造成一些问题。我倒是希望Rails能够用slug来代替id，就像wp的Post Slug，或者给出两个方案，默认用id，slug可选。这会成真吗？</p>
<p>有时候，xxx_id 并不一定代表model关系中的外键关联，它可能是一个判断标准。尤其在REST的view页面的时候。对于需要对其判断权限的访问者，这个id比其他的更重要。</p>
<h3>3、插件</h3>
<p>4Rails用到了4个插件：</p>
<p>will_paginate：分页插件，很好用。</p>
<p>resource_feeder和simply_helpful：用来实现RSS订阅。不过被大砍了很多代码，因为是针对1.2.x版本的，在2.0.2上会覆盖掉默认的form_form 方法，所以需要改一下。</p>
<p>acts_as_attachment：头像的上传</p>
<p>acts_as_attachment和attachment_fu两个插件会在下一篇博客里好好整理一下，早就知道这两个插件的大名，而且向人吹嘘说是插件排行榜前三位。不过说实话我还没用过呢。嘿嘿。</p>
<pre>
<script type="text/javascript"><!--
google_ad_client = "pub-7545275883969710";
//336x280, 正方形图文
google_ad_slot = "8079527128";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</pre>
<p>参考文章：<br />
<a href="http://www.ibm.com/developerworks/cn/web/wa-ajaxarch/">Ajax 和 REST，第 1 部分</a><br />
<a href="http://www.ibm.com/developerworks/cn/web/wa-ajaxarch2.html">Ajax 和 REST，第 2 部分</a></p>
]]></content:encoded>
			<wfw:commentRss>http://railser.cn/blog/rails-on-rest-and-4rails-cn/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

