1. 约定大于配置
Rails的理念就是约定大于配置,这在ActiveRecord模块里面体现的淋漓尽致,没有hibernate繁琐的mapping xml或者annotation,它是直接根据数据库中表的字段信息配合少量关系定义去实现ORM。
以一个简单的论坛主题贴为例子:
class Topic < ActiveRecord::Base
belongs_to :user
belongs_to :forum
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :topic ...
Java v.s Ruby,prototype js v.s jquery, Hibernate v.s iBatis v.s EJB ...
这种语言之争,框架之争,每隔一段时间总会在论坛出现
最近我读到一篇博客:Java程序员应该学习Ruby,非常赞同作者的观点,粗略翻译其中的小部分,希望大家可以减少这种无意义的争论
--------翻译开始分割线--------
Java程序员应该学习Ruby
当然,它不一定是Ruby,你可以挑选其他语言,比如ErLang,甚至JavaScript,只要它和Java有足够的差异就可以了。
因为它能够让你成为一个更好的Java程序员:
1. 学习另 ...
把Rails从2.0.2升级到了2.1,跑了一下JavaEye的单元测试代码,发现了一个很奇怪的错误:某个serialized 属性无法被持久化到数据库,经过一番查找,结果发现是Rails 2.1引入的partial update和dirty object check导致的bug:
http://rails.lighthouseapp.com/projects/8994/tickets/360-dirty-tracking-on-serialized-columns-is-broken
在Rails团队解决这个bug之前,一个临时的解决方法是手工调用serialized_name_will_ ...
这篇Ruby每周一测有点特殊,它不是翻译Ruby Quiz上的文章,而是我自己出的一个quiz :
我们在做页面排版的时候,为了避免过长字符串撑开页面,经常需要调用截取过长字符串的方法,rails已经为我们提供了一个方法:
ActionView::Helpers::TextHelper#truncate(text, length = 30, truncate_string = "...")
调用很简单:
truncate("Once upon a time in a world far far away", 14)
# => Once upon a...
truncat ...
Ruby语言有TMTOWTDI的味道 (There’s more than one way to do it),一些人认为这是一种不好的味道,但我觉得这很好玩,颇有条条道路通罗马意味。我翻译过一些Ruby Quiz的题目,可以看到很多不同的ruby解法,从好玩中学到别人的想法和知识,这很棒。
写这篇文章的一个起因是问答频道的一个题目:ruby 怎么利用正则表达式在把一个字符串数组中的数字放到一个数组中?,我从其他人的解答中学到了一些string对象以前从来不注意的方法。
第2个原因是一篇博客:21个你应该使用的Ruby小技巧,学到了很多非常棒的小技巧,可以让代码更简练。
第3个原因还是一篇博 ...
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。
-----题目分割线-----
命令行操作通常都会支持缩写,这周的Ruby Quiz要实现一个支持方法名缩写调用机制,举具体例子来看,假设一个Mine对象有step, next, stop, exit 4个方法,我们用abbrev操作定义这4个方法可以被缩写调用:
class Mine
abbrev ...
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。
-----题目分割线-----
海龟作图(Logo)是我最早学习的一种编程语言,相信许多我的同龄人都接触过这个语言,正是它让我对编程产生了浓厚兴趣,在rubyquiz上看到这篇利用ruby实现海龟画图的每周一测后,倍感亲切:
引用
想像你控制了一只小海龟在一片沙滩上行动,你可以控制它前进(FORWARD),后退 ...
Rails 2.1快出来了,和2.0相比它又添加了很多新特性,列举一下我认为值得关注的新特性:
1. Has Finder 功能
广受欢迎的Has Finder插件被集成到了2.1的代码中,不过换了种写法,使用named_scope:
class User < ActiveRecord::Base
named_scope :active, :conditions => {:active => true}
named_scope :inactive, :conditions => {:active => false}
named_scope :recent, la ...
libmemcached是一个基于C/C++实现的memcached client library,memcached gem给这个library提供了ruby封装,根据原作者的性能评测,它比目前常用的memcache-client gem最多要快150倍。
因为对memcache的操作在rails处理整个http请求中所占时间比例并不多,而且JavaEye网站大部分是做cache读取操作,于是做了2个试验测试一下2者对于提升整个网站的性能到底有多少帮助:
1. 测试访问JavaEye网站的首页,在这个请求中只有一个缓存读取操作,使用ab简单地跑单次请求10000次:
使用memcache- ...
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。
-----题目分割线-----
以前在国外的影视或者广告中看到出现含字母的电话号码,比如1-800-PICK-UPS (美国UPS快递号码),心中不免有些疑惑:难道国外的电话是可以拨字母的?后来请教国外朋友,才明白这个疑问有点傻有点天真 看一下常见的电话键盘:
每个数字旁边都有3个或者4个字母对应,那么上面 ...
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。
-----题目分割线-----
我们会在很多地方看到液晶屏样式显示的数字,比方说DVD/微波炉显示时间,常见的实现是利用7个发光二极管来做的:
这周的题目就是完成下面这个class,调用display方法进行液晶数字显示:
class LCD
def initialize(scale=1)
...
Ruby每周一测 - Ruby Quiz 是Ruby Talk邮件列表上的一个持续了很长时间活动,每周有一个小题目被提出来,然后大家进行解答讨论。Amazon上还有相关的书: Best of Ruby Quiz。我尝试挑选其中的一些题目进行翻译,做一个每周一测系列,欢迎大家参与讨论。
-----题目分割线-----
这周的题目是找零钱,假设我们需要找给别人39美分的零钱,那么结果将会是(美元的硬币有25,10,5,1这种):
>> make_change(39)
=> [25, 10, 1, 1, 1, 1]
假设我们的硬币种类有10,7,1,那么找14美分的零钱结果将会是:
...
在Ruby里用到对象图导航(Object Graph Navigation)的时候,有时候需要判断对象是否为nil,很常见这样的代码:
#显示某个产品的分类名称
product.category ? product.category.name : nil
ozmm.org的chris最近介绍了一个好方法,他给这个方法起名叫try(),给Object添加一个try方法:
class Object
def try(method)
send method if respond_to? method
end
end
这样上面的代码就可以简化成
produc ...
- 浏览: 27241 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
M_100_4350
共 30 张
共 30 张
最近加入圈子
最新评论
-
Java程序员应该学习Ruby
[quote="baichinie"]public interface List ...
-- by unique.wu -
Java程序员应该学习Ruby
看了这个帖子,我终于找到了在本论坛可以多得分的秘密途径,也就是捷径,那就是多写R ...
-- by ltian -
Java程序员应该学习Ruby
以前我主要用.net, 现在改用python, 无论如何不想换回去了. 不过, ...
-- by 白发红颜 -
Java程序员应该学习Ruby
geszJava 写道ruby没啥吸引力,还是groovy好,不容易犯错。rub ...
-- by liusong1111 -
Java程序员应该学习Ruby
ruby没啥吸引力,还是groovy好,不容易犯错。ruby陷阱太多了,如果不是 ...
-- by geszJava






评论排行榜