<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Ruby论坛最新讨论 - JavaEye</title>
    <description>Ruby编程、Ruby DSL、Ruby on rails - Java编程，Ruby编程，微软.net，AJAX，敏捷软件开发，综合软件技术</description>
    <link>http://www.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>使用Open Flash Chart同时显示多图遇到的问题</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://alexeyomux.javaeye.com">alexeyomux</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/233678" style="color:red;">http://www.javaeye.com/topic/233678</a>&nbsp;
          发表时间: 2008年08月28日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在应用中，我打算使用Open Flash Chart来处理统计数据的图形化显示。当我把一个柱状图和一个饼图放在同一个View里同时显示的时候，只有排在后面（以View中的代码顺序）Chart会在浏览器中正确出现。我看了一下Open Flash Chart官方网站上关于多个Chart在一个View里显示的教程，发现这个问题有一个叫Nick的人遇到过，也向教程的编写者提出来了。<br />    产生这个问题的原因是：Chart在View中是放在一个Div里显示的，而该插件使用的是将当前系统时间进行Hash后，作为Div的ID的做法。当处理器速度较快时，两个Chart的Hash值是一样的，也就是两个Div的ID是一样的，浏览器自然显示后面一个Div的内容。作者修正了算法，在进行Hash的时候使用了Timw.now＋url的做法，该办法解决了Nick的问题，但我使用的是修正后的插件，这个问题仍然存在。<br />    于是我继续修改插件中算法，在生成用于Hash的原始字符串里加入随机数，甚至加入一个消耗时间的循环，但问题依然存在。（不知道是不是我的机器处理器真的足够快<img src="/images/smiles/icon_cry.gif"/>） 其间我把WEBrick关掉了重新启动了一次，为的是让服务器重新装入代码运行（包括插件），但不知道此方法是否能保证插件代码被重新装载运行？！<br />    请教Javaeye的各位达人，有什么办法可以解决这个问题。谢谢！<br /><pre name="code" class="java">
def open_flash_chart_object(width, height, url, use_swfobject=true, base="/")
  url      = CGI::escape(url)
  # need something that will not be repeated on the same request
  # need the gsub at the end to first get the last newline (which could simply be done with chomp)
  # and second get the newlines in the middle of the encoded string
  special_hash = Base64.encode64(Time.now.to_f.to_s + url.to_s).gsub(/\n/,"")
  obj_id   = "chart_#{special_hash}"  # some sequencing without all the work of tracking it
  div_name = "flash_content_#{special_hash}"
  protocol = "http" # !request.nil? ? request.env["HTTPS"] || "http" : "http"

  return %[
    &lt;div id="#{div_name}">&lt;/div>
  (以下省略部分代码)
end
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://liusong1111.javaeye.com/topic/233678#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 28 Aug 2008 01:06:32 +0800</pubDate>
        <link>http://www.javaeye.com/topic/233678</link>
        <guid>http://www.javaeye.com/topic/233678</guid>
      </item>
      <item>
        <title>Rails程序开发的最大问题是代码规范</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hideto.javaeye.com">hideto</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/233800" style="color:red;">http://www.javaeye.com/topic/233800</a>&nbsp;
          发表时间: 2008年08月28日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          使用Rails开发大型复杂B2B应用一年了，这个项目目前开发人员达到近20人<br />现在感觉最痛苦的事情就是大家没有遵循统一的代码规范<br />我一直建议PM要设立一个项目架构师的角色，来统一大家的代码规范，但是PM不听<br />因为Ruby这种动态语言太灵活，大家各自写个各自的代码，相互之间很难看懂别人的代码<br />Controller、Model、View、Js、CSS等等文件目录的设立也是各模块小组之间各自为政<br />现在系统越来越复杂，各模块之间的协调和交互也越来越多<br />但是由于没有人来盯统一的代码规范和设计，大家的交流变得非常痛苦<br />换句话说，看见别人的代码和自己的代码风格迥异感觉很不爽
          <br/>
          <span style="color:red;">
            <a href="http://liusong1111.javaeye.com/topic/233800#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 28 Aug 2008 11:56:20 +0800</pubDate>
        <link>http://www.javaeye.com/topic/233800</link>
        <guid>http://www.javaeye.com/topic/233800</guid>
      </item>
      <item>
        <title>讨论：关于rails集群模式下的图片、附件存储方式</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://amonlei.javaeye.com">amonlei</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/233712" style="color:red;">http://www.javaeye.com/topic/233712</a>&nbsp;
          发表时间: 2008年08月28日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          首先，webapp具有图片、附件上传功能。<br />大多数情况下，rails插件都是以文件形式存储图片、附件，db记录文件名。然后通过插件在页面上显示全web路径。<br />如果是集群模式下，图片、插件文件必须像db一样给所有webserver共享，否则会出现不同步问题。<br />目前俺采用共享目录的方式，也就是做一个文件服务器，把图片附件写入它的一个共享目录，然后大家可以访问它。<br />大家讨论讨论看有无更优做法。<br />ps： javaeye的处理机制如何？
          <br/>
          <span style="color:red;">
            <a href="http://liusong1111.javaeye.com/topic/233712#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 28 Aug 2008 09:43:23 +0800</pubDate>
        <link>http://www.javaeye.com/topic/233712</link>
        <guid>http://www.javaeye.com/topic/233712</guid>
      </item>
      <item>
        <title>rails的设计艺术（ 一）</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://sina2009.javaeye.com">sina2009</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/232097" style="color:red;">http://www.javaeye.com/topic/232097</a>&nbsp;
          发表时间: 2008年08月24日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="font-size: medium;">首先声明本文档并非讲述rails的语法，而是讲述web开发新的方式及理念，以及rails如何拥抱这些新的web技术与新的开发理念。从深层次挖掘rails的设计艺术，及从中得到的启发。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><strong><span style="font-size: medium;">一 新web开发方式的出现：</span></strong></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span><span style="font-size: medium;">一般学习rails的人会按照awdwr的代码照做一遍，被rails的一些魔法方法雷晕后，就一鼓脑的进入到rails与ruby的研究之中。但如果没有掌握好rails的设计理念，而是去钻设计技能的牛角尖，最终你会发现你的代码还是无法与rails的代码进行深度的溶合。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span><span style="font-size: medium;">在rails框架中，提供了很多的小工具，但是你有没有想过，他为什么会提供这些小工具，这些小工具倒底体现了什么理念。所以本方档努力帮助你转变观念，从容易使用的工具－&gt;到编程方法论。从而让你的每一个设计都更有目的性。掌握了理念 ，再去学习相关的开发技能就能势如破竹。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span><span style="font-size: medium;">传统的开发方式：</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">1.code_first:这种开发方式典型代表就是cgi servlet，主要是用后台编出所有的网站逻辑，但因为必须转换成html给用户使用，所以这类程序都是在代码中输出相应的html标记。他的致命就是速度太慢了，每个用户请求都必须重新编译所有的代码。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">2.document_first:这种开发方式的法人代表是php，优点是对前端后端的修改都很方便，但缺点是文件太不好管理了，相关的逻辑经常被混入视图，最近我在研究cakephp的时候，免不了看一下我们公司其他成员写的php代码，他个看的才叫晕啊，一坨一坨的。简直可以在三秒钟之内雷晕。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">3.code_first+document_first :这也是mvc模式的来源，将网站的逻辑与视图隔离开来，指出程序的切入点，控制相关的逻辑，而document_first处理他的长处，就是输入html到客户端。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><strong><span style="font-size: medium;">一 rails的开发理念：</span></strong></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span><span style="font-size: medium;">rails的出现应该说给web开发界吹进了一股暖风，我也是最近在研究了cakephp及看了我们公司的php项目后，才明白为什么它会那么红了，而且红得发紫。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span><span style="font-size: medium;">rails的整个理念可以归纳为下面三种话：</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span><strong><span style="font-size: medium;">一个框架&nbsp; &nbsp; &nbsp; &nbsp; 一种语言&nbsp; &nbsp; &nbsp; &nbsp; 二种思想</span></strong></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 12.0px Helvetica; min-height: 14.0px;"><span style="letter-spacing: 0.0px;"><span style="font-size: medium;"><strong></strong></span></span><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><strong><span style="white-space: pre;"><span style="font-size: medium;">	</span></span><span style="font-size: medium;">1。 </span></strong><span style="font-size: medium;">一个框架：</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">			</span></span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">在rails的官方网站的首页有这么一句话：&ldquo;Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern&rdquo;，之所以说它是一个full-stack框架，是因为从接收请示（webrick）到数据库到布署，web开发的每一个环节它都有涉及到，是一个覆盖面很广的生态开发系统。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">在理解一个框架的含义，须从下面在个角度来看rails：</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">1：配置的角度，首先rails的coc（惯例优于配置）思想减轻了所以的配置信息，统一的文件结构，一致的文件名与类名。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">2：代码的角度，rails的整个代码可以分成三大块：</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 12.0px Helvetica;"><span style="font-size: 16px; font-weight: bold;"><img src="http://farm4.static.flickr.com/3033/2791887020_a8d027f9fc_o.png" height="152" alt="rails_code" width="583" /><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">3:流程的角度：</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="white-space: pre;">						</span><span style="font-family: Verdana;"><img src="http://farm4.static.flickr.com/3126/2791024811_d071e2b987_o.png" height="303" alt="rails_process" width="616" /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span><strong><span style="font-size: medium;">1。 </span></strong><span style="font-size: medium;">一种语言：</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">这里所说的一种语言是DSL语言。rails在很多地方都利用了ruby的特性。web开发是一个语言的生态系统，与桌面程序开发有很大的不同，前后涉及到html,css,js，数据库有sql，后台依据平台的不同，就更多了，所以它很杂，而rails利用DSL，在最大程度上虚拟化了这些语言之间的隔膜，这些方面主要体现在model,html与js方面</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">model填充了程序与数据库之间的空白，它 的assosiation与validation更是帮你做了很多工作，而在做这些工作，你丝毫感觉不到语言的不同与复杂所带来的事便 。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">helper更是简化了你的html开发工作量，但helper不单单只是为了体现dry思想，而是想让你在开发页面的时候，在头脑中开成一个分支的概念。比如页头，页尾，侧边栏等等 。这些分别用helper来实现，最后在你的头脑中不单只有html，而是一块一块有意义的区域。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">js：主要就是rjs，减轻了js工作，让你以最少的代码就可以迈出一大步。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">plugins: 强有力的扩展与&rdquo;money patch&rdquo;</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">	</span></span><strong><span style="font-size: medium;">1。 两种思想</span></strong><span style="font-size: medium;">：</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">首先rails的web开发思想有两个基本前提，第一个是web站点实际上是一个mvc程序，放弃了以前采用的以文件名来命令url的形式，而是采用统一的入口来规范url，因为按照rest的设计，uri应该指示的是web上的一个概念上的资源，而不是一个脚本。第二个前提是web站点是一个生态系统，里面充满了各种各样的语言，所以rails给你一个基本的文件结构，让你在此基础上专注于自己的业务规则。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">rais的两个基本思想就是coc(惯例优于配置)与dry(don&rsquo;t repeat youself),coc实际上是一种约束与生产力的平衡，如何完全约束，你将无法扩展，如果完全没有约束，你将陷入无穷无尽的配置当中。所以惯例就是一种平衡点。你必须遵守它的惯例，但这种约束也带来了价值，rails送给你的是强大的自动化。在这种惯例的基础之上，你进行一点点定制，就可以向前迈出一大步。另外dry思想也是在rails无处不在。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="font-size: medium;"><br /></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">另外借用一句DHH的最先介绍rails的一段话：ruby可以写出相当简洁的代码，而简洁可以让一人程序员very happy，而只有happy时，一个程序员才能发挥出强大的生产力，所以如果你是一个程序员的话，当你无论何时面对屏幕时，请你一定要保持微笑，而保持微笑和愉快的最好办法就是 gtd(getting things donw)。最近我一直在看&lt;&lt;人性的弱点&gt;&gt;与&lt;&lt;世界上最伟大的24堂课&gt;&gt;，发现人一生之中人最大的压力来源于对未来未发生的忧虑。人如果一陷入忧虑就会形成消极的思想，像就只有积极战胜消极，勇敢才能战胜怯懦一样，请你一定要保持积极的心态。放下忧虑与烦燥，你的人生将会更加美好。不说了，说太多了，有做广告之嫌。</span></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">&nbsp;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span style="letter-spacing: 0.0px;"><span style="white-space: pre;"><span style="font-size: medium;">		</span></span><span style="font-size: medium;">下回我们将探讨mvc设计模式中的一些最佳实践。另外本人刚刚失业，想找份工作，如果各位同仁有相关工作机会的话，我乐意为您效劳。。</span></span></p>
<div><span style="font-family: Helvetica;"><br /></span></div>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://liusong1111.javaeye.com/topic/232097#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 24 Aug 2008 13:33:50 +0800</pubDate>
        <link>http://www.javaeye.com/topic/232097</link>
        <guid>http://www.javaeye.com/topic/232097</guid>
      </item>
      <item>
        <title>我怎么就觉得rails适合做大型应用</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liuqiang.javaeye.com">liuqiang</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/232415" style="color:red;">http://www.javaeye.com/topic/232415</a>&nbsp;
          发表时间: 2008年08月25日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-size: 12pt; font-family: 'Times New Roman'; mso-spacerun: 'yes';"><span style="font-family: 宋体;"><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes';"><span style="font-family: 宋体;"><span style="font-family: 宋体;"><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes';"><span style="font-family: 宋体;"><span style="font-family: 宋体;"><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes';"><span style="font-family: 宋体;"><span style="font-family: 宋体;"><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes';"><span style="font-family: 宋体;"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体"><font face="宋体"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体"><font face="宋体"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; text-align: justify;"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">之前读了不少文章，说rails不大适合做大型的互联网应用或者企业应用，但通过实际的使用rails，越发的发现rails做大型应用是个不错的选择。&nbsp;说rails不适合做大型应用无非瞄准了rails的2个软肋，一个是ruby的性能，一个是后期的可维护性。</span><span style="font-size: 10.5pt; font-family: 'Arial'; mso-spacerun: 'yes';">&nbsp;</span></p>
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">&nbsp;</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">先谈谈可维护性吧，可维护性最大的问题是需求的改变，简单的说，取决于项目结束后，客户要求你变更程度的大小与多寡，这更多的是项目管理的范畴，具体到语言的层面，其实意义不大，我们可以想想，一个后期维护的问题放到rails难解决，那么放到java、php&hellip;&hellip;里面就简单了？真要比个优劣的话，我倒是觉得rails更胜一筹，rails本身就是一套良好实践的集合，你按它的规范做，会少走不少弯路，与其说rails是框架级代码的复用，不如说是良好设计和经验的复用。</span></p>
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">&nbsp;&nbsp;&nbsp;&nbsp;咱好好谈谈性能吧，由于rails是个全栈式MVC框架，各个组件之间的搭配都是经过优化的，而采用SSH，需要自行协调各个组件之间的协同工作，稍有不慎，肯定会带来性能上的问题，我想各位看客也知道那个意思，我这里就有个例子，一个用SSH开发的社区网站，速度极其的慢，采用ruby&nbsp;on&nbsp;rails&nbsp;改版后，速度明显提升很多，当然这可能也和开发者的水平有关，我也懒的去研究为什么当初采用SSH时性能会出现瓶颈，仅仅这个例子，让我知道一个一般的程序员用rails开发出东西未见得比用SSH的东西性能要低。</span></p>
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">&nbsp;&nbsp;&nbsp;&nbsp;当然，上面的例子可能并不具有普遍性，所以说服力也不够。那么总所周知的是，做一个大型应用的杀手锏是&ldquo;分&rdquo;，当年的j2ee也是这种理念，尽可能的分，但遗憾的是j2ee分的效果并不太好，或许是过于复杂了，我所知道的java项目大都跑在一台服务器上。当然也是有很多大型java项目还是分布式的，那么既然大家都跑在多台廉价的服务器上，单纯的比单台服务器的速度其实意义并不大，在一个可伸缩的架构中，资源的消耗应该随负载线性上升，负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需的资源消耗，可伸缩性则是衡量当工作单元的数量或尺寸增加时，资源消耗的变化情况。换句话说，可伸缩性是整个价格-性能曲线的形状，而不是曲线上某一点的取值。</span></p>
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">&nbsp;&nbsp;&nbsp;&nbsp;所以问题归到了架构上面来了，而对于目前或者未来的应用架构，最合理的方式是把一个大型应用拆成许多合理的单元，而内置了REST支持机制的rails将抢占了未来的先机，当然可能这种机制尚不完善，但它的方向我认为是正确的。</span></p>
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">那么我对rails的"分"的方案有以下几种思路：</span></p>
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;在应用程序的之间水平切分，一个系统拆成各自独立的系统拼接而成，每个独立的系统的后台将做服务器级别的集群，举个例子，校内最近开发的爱听网就是用ruby&nbsp;on&nbsp;rails&nbsp;开发的，它将是个独立的系统，会作为一个频道拼到现有校内的菜单上，这种方式不错，但相互过于独立，数据共享是个问题。</span></p>
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;在应用程序的内部水平切分，这种粒度要小一点，做相册的负责图片，做音乐的负责音乐，做博客的负责博客，用标准的负载均衡服务器来路由进入的流量。所有应用服务器都是均等的，而且任何服务器都不会维持事务性的状态，因此负载均衡可以选择自己的应用服务器。如果需要更多处理能力，只需要简单地增加新的应用服务器。貌似豆瓣是这种模式。</span></p>
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;针对具体资源的切分，这种方法是把所有的服务抽象成粒度更小的资源，分布在各个服务器上，在主服务器上通过REST调用展现出来，这样各个服务节点相互独立，不会因为某一节点造成性能上的瓶颈，当然我也不是随便说说，目前准备用这种方式构建一个社会化网络，就目前的感觉---良好。</span></p>
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes';">&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;SOA，相关的功能部分应该合在一起，不相关的功能部分应该分割开来&mdash;&mdash;不管你是否把它叫做SOA，功能分解还是工程秘诀。而且，不相关的功能之间耦合程度越松散，就越能灵活地独立伸缩其中的一部分。我对SOA理解不深，这里有一段访谈倒是蛮有说服力,</span></p>
</div>
</font></font></font></font></font></font></font></font></span><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体"><font face="宋体"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体"><font face="宋体"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</font></font></font></font></font></font></font></span><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体"><font face="宋体"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体"><font face="宋体">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</font></font></font></font></font></font></span><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体"><font face="宋体"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</font></font></font></font></font></span><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体"><font face="宋体"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</font></font></font></font></span><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体"><font face="宋体">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</font></font></font></span><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</font></font></span><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</font></span>
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;"><span style="font-family: 宋体;"><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes';"><span style="font-family: 宋体;"><span style="font-family: 宋体;">写道<font face="宋体"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体"><font face="宋体">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">
<div class="Section0" style="layout-grid: 15.6pt none;">
<div class="quote_div">Engine Yard公司的首席技术官Tom Mornini表示，单机百万线应用的时代已经结束，面向服务架构(SOA)是这一时代的终结者。该公司提供Ruby and Rails主机服务器。 <br />　　他在最近的采访中说&ldquo;我认为使用大型程序的年代已经结束了&rdquo;&ldquo;有些程序看起来很大，但是随着时间的推移，它们将最终成为许多小程序的结合体。&rdquo; <br />　　通过为全球市场的业务提供灵活性，SOA的可组合性改变了应用开发比赛。在全球市场中，商业机会不是一成不变的。 <br />　　Mornini说&ldquo;我实在看不出任何其他方式可以满足存取数据，改变流体的需求，以便在企业内外跟上时代的步伐。&rdquo;&ldquo;这就是为什么未来能解决所有问题的单机百万线应用在这一点上仅仅是个遗迹。&rdquo; <br />　　Mornini认为，这不再是SOA是传统应用开发选择的问题，而是除了SOA以外，我们没有其它的选择。 <br />　　他说&ldquo;这些大型程序很难管理和维护，很难想像单机应用会成为未来发展的方向&rdquo;。 <br />　　Engine Yard公司的首席技术官认为带有REST的Ruby on Rails是为SOA建立新一代的服务和应用的一种方法。与Java不同，Java是在SOA应用开发时代前开发的项目，他注意到，Ruby on Rails 和REST怀抱SOA为理念向世人提供了一个前所未有的方法。 <br />　　Mornini说&ldquo;拥有一个服从该框架的牢固而又深厚的面向服务架构就是Rails的秘诀&rdquo;该架构的开发商认为（它的SOA功能）是该平台的一大优势。 <br />　　他认为Ruby on Rails非常适合SOA开发。新发布的Rail 2.0令该框架更容易为SOA应用以及旧数据存取所接受。他承认，原有的Rails框架与旧数据存取关系并不是十分融洽。今年推出的新模型已经超过了前者。 <br />　　他说，例如，Rails组提供的代码增加了许多新的功能，通过以服务的形式将旧数据曝光，使得在SOA应用中访问旧数据变得更为简便。 <br />　　Engine Yard公司的首席技术官说 &ldquo;由于遵循了售后服务书籍和网络视频记录的规程，Rails令开发商使用RESTful数据变得更为简单&rdquo;。 <br />　　他说，&ldquo;如果你遵循RESTful Rails的标准过程，在系统外用Rails编写了一个程序，就会自动得到该程序展示的一个建立在XML-over-HTTP基础之上的API。 <br />　　但是如果要使其运转，"继续使用 Rails"很重要。Mornini说这就是Rails遵循既定规程的妙招。 <br /></div>
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</p>
</div>
</font></font></font></font></span><font face="宋体"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';"><font face="宋体">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</font></font></font></span><font face="宋体"><font face="'Times New Roman'" style="font-size: 10.5pt; mso-spacerun: 'yes';">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</font></font></span><font face="宋体">
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</font></span></p>
</div>
<div class="Section0" style="layout-grid: 15.6pt none;">
<p class="0" style="margin-top: 5pt; margin-bottom: 5pt;">&nbsp;</p>
</div>
</span></span></span></span></span></p>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://liusong1111.javaeye.com/topic/232415#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 25 Aug 2008 13:24:35 +0800</pubDate>
        <link>http://www.javaeye.com/topic/232415</link>
        <guid>http://www.javaeye.com/topic/232415</guid>
      </item>
      <item>
        <title>在本地开发时如何方便地实现注册用户的二级域名的解析</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://rails2.javaeye.com">qichunren</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/232322" style="color:red;">http://www.javaeye.com/topic/232322</a>&nbsp;
          发表时间: 2008年08月25日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          现在的WEB2.0的一个普遍的显著特征就是每个用户完成注册后，会立刻拥有一个属于自己的二级域名，如：http://yourid.javaeye.com,一般这个二级域名是根据用户注册的用户名加上.javaeye.com这种形式的。<br /><br />我在网上和javaeye站内找了许多关于这方面的文章，大体上是了解了这个是如何实现的：<br />首先你自己的域名必须支持泛域名功能，也就是将*.javaeye.com这个‘域名’绑定到javaeye的WEB服务器的IP地址，以后访问http://yourid.javaeye.com的时候，有一个过滤器，截取yourid这个字符串，有一个过滤器实现如下的代码：<br />@user_blogs = Blog.find_by_user_name("yourid"),然后转向Blogs这个controller，显示yourid这个注册用户的博客。<br />大致上在rails上是这个样子吧。<br /><br />现在就拿我来举例吧。<br />我现在想开发一个rubyeye.com网站，当然，我刚开始开发，肯定不会去买一个服务器和域名，也就是说一切都是在本地开发。那么要实现我以上所说的功能，就是要编辑hosts文件，在windows中，这个文件是位于%systemroot%\system32\drivers\etc下，在Linux下，这个文件是位于/etc/下，加上127.0.0.1 www.rubyeye.com就可以了访问www.rubyeye.com就可以访问http://127.0.0.1了。<br /><br />我想让有经验的大大们，说说如何实现前期在本地上开发和开发完毕后移到服务器上后(WEB服务器就用apache2)，所需要改在的代码最少。
          <br/>
          <span style="color:red;">
            <a href="http://liusong1111.javaeye.com/topic/232322#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 25 Aug 2008 11:21:18 +0800</pubDate>
        <link>http://www.javaeye.com/topic/232322</link>
        <guid>http://www.javaeye.com/topic/232322</guid>
      </item>
      <item>
        <title>从实际经验说说使用REST的感受</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://whygod.javaeye.com">whygod</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/232788" style="color:red;">http://www.javaeye.com/topic/232788</a>&nbsp;
          发表时间: 2008年08月26日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1. REST号称减少action，每个controller的action规定在4个。但实际应用时，需要action的数量要大于这个数，这么说来，就要增加更多的controller。<br /><br />2. 有别的方法可以让controller多处理几个action，例如在表单里设置个隐藏字段，那么POST以后根据隐藏字段的值进行不同的处理。或者说在routes里用with_options多设置几个独立的action。<br /><br />3. REST生成地址的函数，new/edit/XXX_path()，大家在用的时候会不会想到将来也许为了优化而要将它们都改成&lt;a href...>，你们会不会也觉得有点不爽。<br /><br />4. respond输出的format.xml, format.js，在一般的web网站开发中，基本不会被用到。虽然它们确实有用，但我看着自己项目里这些鸡肋代码，也不知是删了好还是留着好。<br /><br />5. 举个实际的例子来说明吧，开发bbs里帖子相关的功能，有新建，保存，修改，删除，但除此之外，我们还有开发预览帖子，引用，收藏，分享，支持或反对等等action。当这些功能处于一个大系统里，你是怎么分配controller和action的呢？<br /><br />很多人都说正解是：该用REST的部分用REST，其它的就按一般的controller/action来就行了。<br />是的，要说功能，最终肯定能做出来，但你看到最后写的代码，似乎啥都不像。你也会觉得有些不爽的。<br /><br />在此抛砖引玉，各位达人有其它好的方式，请多多指教~~
          <br/>
          <span style="color:red;">
            <a href="http://liusong1111.javaeye.com/topic/232788#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 26 Aug 2008 13:19:57 +0800</pubDate>
        <link>http://www.javaeye.com/topic/232788</link>
        <guid>http://www.javaeye.com/topic/232788</guid>
      </item>
      <item>
        <title>ROR学习笔记</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://karlom.javaeye.com">karlom</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/231468" style="color:red;">http://www.javaeye.com/topic/231468</a>&nbsp;
          发表时间: 2008年08月22日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近在学习《Web开发敏捷之道--应用Rails进行敏捷Web开发，第2版》，当我照着书做到当做到第六章《任务A：货品维护》时候，却进行不下去了，照着书敲上了下面的代码 <br />class AdminController &lt; ApplicationController <br />  scaffold :product<br /> end<br /> <br />      当运行的时候却报如下错误：<br />undefined method `scaffold' for AdminController:Class<br /> <br />    于是我赶紧去查了一下资料，结果发现是因为Rails2.0.2把scaffold 剥离为插件，也就是说Rails2.0.2里面不能直接使用scaffold了。于是我就先安装了它。<br />       <br />Depot>ruby script /plugin install http://dev.rubyonrails.com/svn/rails/plugins/scaffolding/<br /> <br />      不过如果就这样直接运行的话会出现这样的错误：<br />undefined method `paginate' for #&lt;AdminController:0x3b62210><br /> <br />       不用说，这个方法什么的也应该是在Rails2.0.2的时候剥离了，再查一下资料。<br />原来这是一个分页的功能，那么就重新安装一下。 接下来我使用TortoiseSVN通过 <br />svn://errtheblog.com/svn/plugins/classic_pagination<br />的URL把插件classic_pagination下载回来，然后把文件夹复制到项目的vendor\plugins的文件夹内，如：depot\vendor\plugins。<br />        然后重新启动项目，接下来访问http://127.0.0.1:3000/admin，一切正常了;那么就继续进行书本上的学习吧！<br />    接下来的是6.3的检查价格是否合法的方法:validates_numericality_of(),好像这个方法也没有用了.不过暂时查不到怎么样解决这个问题。直接跳过这个方法用写一个自己的验证方法了。。。。。。<br />    后来上到ROR的官方网站查了一下API文档，validates_numericality_of（）这个方法是有用的，奇怪了，为什么我打进去的就有错。我COPY进去的就没有错呢？郁闷的问题。。。。
          <br/>
          <span style="color:red;">
            <a href="http://liusong1111.javaeye.com/topic/231468#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 22 Aug 2008 10:40:15 +0800</pubDate>
        <link>http://www.javaeye.com/topic/231468</link>
        <guid>http://www.javaeye.com/topic/231468</guid>
      </item>
      <item>
        <title>rails 框架里的模型(模型)继承和类的问题</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://deferling.javaeye.com">deferling</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/231411" style="color:red;">http://www.javaeye.com/topic/231411</a>&nbsp;
          发表时间: 2008年08月22日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          开发中遇到一个问题<br />ReportRequest是一个表对应一个model:report_request.rb<br /><br />model report_request.rb 里面<br />class ReportRequest &lt; ActiveRecord::Base<br /><br />model TeikiRecountRequest.rb 里面<br />class TeikiRecountRequest &lt; ActiveRecord::Base<br /><br />model spot_report_request.rb 里面<br />class SpotReportRequest &lt; ReportRequest<br /><br />现在用 ReportRequest.find 方法在数据库里取数据<br />为什么取出来的对象会是SpotReportRequest 或者 TeikiRecountRequest 的类的对象<br /><img src="/images/smiles/icon_cool.gif"/><br />请教大家谢谢
          <br/>
          <span style="color:red;">
            <a href="http://liusong1111.javaeye.com/topic/231411#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 22 Aug 2008 09:11:09 +0800</pubDate>
        <link>http://www.javaeye.com/topic/231411</link>
        <guid>http://www.javaeye.com/topic/231411</guid>
      </item>
      <item>
        <title>rails activescaffold 快速设计erp系统的一些经验.</title>
        <author>JavaEye网站</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ajim.javaeye.com">ajim</a>&nbsp;
          链接：<a href="http://www.javaeye.com/topic/231509" style="color:red;">http://www.javaeye.com/topic/231509</a>&nbsp;
          发表时间: 2008年08月22日
          <br/>
          声明：本文系JavaEye网站发布的原创文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我是4月份开始用rails 和 activescaffold 设计来旅游系统操作erp系统.不知不觉已经过去3个月了. 期间经历了推翻 重做.再来的折磨.<br /><br />1.rails activesaffold 提供了快速开发中的结构可变性. 应用需求的变迁不再很痛苦.<br />因为思路的不清晰.业务流程的不了解.所以很多时候都是在走回头路.这种开发.的确实activescaffold 帮了我大忙至少.界面上面的问题我不用去考虑.我只需要设计数据库的表 各种表之间的关系.最后就能组成一套完整的应用.<br /><br />我的经验是对于实验性开发 rail +activescaffold 无疑提供了很好的开发环境 .整个开发就像是搭积木.做错了大不了重头再来.心里上遭受的打击要小很多.因为您付出的非常有限.<br /><br />1.关于 activesaffold数据库设计的经验.<br /><br />很多变量要存在上级对象中.数据库设计是必须要有冗余的 .我感觉设计三范式.到实际应用中会繁琐很多.
          <br/>
          <span style="color:red;">
            <a href="http://liusong1111.javaeye.com/topic/231509#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 22 Aug 2008 11:40:49 +0800</pubDate>
        <link>http://www.javaeye.com/topic/231509</link>
        <guid>http://www.javaeye.com/topic/231509</guid>
      </item>
  </channel>
</rss>
