什么是Ruby之道? 翻译这篇文章让我对这个问题有了更深的理解。 这个“道”如果只是Ruby所有,那么它只是一种有为法。但是Hal Fulton并非这么想,他只是想通过Ruby来让我们理解其背后的“道”。这种道不生不灭,无色无相,乃是一种无为法。所有世间事物皆遵循这种道,而道又是不能由世间文字所描述,只能通过个人修证而来。 Ruby之道表现为简单性和美感,这点和其他世间法是一致的。只有摆脱“企业级”,“工业标准”之类的枷锁才能真正做到这一点。而J2EE就是典型的反面例证,企业级成为复杂性的堂皇借口,复杂性成为标准的设计原则,程序员沦为标准的奴隶。 作者全篇也没有明确地讲出什么是Ruby之 ...
desc "Run all specs in spec directory with RCov (excluding plugin specs)" Spec::Rake::SpecTask.new(:rcov) do |t| t.spec_files = FileList['spec/**/*_spec.rb'] t.rcov = true t.rcov_opts = ['--exclude', 'spec'] t.rcov_dir = ENV['CC_BUILD_ARTIFACTS'] || 'coverage' end CC_BUILD_ARTIFACTS是 ...
开发过程中,在三个Model的REST描述上,我昨天冥思苦想了一整天。突然对REST有了顿悟,对于以前的错误理解捶胸顿足。 REST不是什么? 1. REST不是技术   之所以说REST更接近道,是因为REST不是一种技术,而是一种思想,任何方式都可以实现。使用Rails 1.2不代表使用了REST。 2. REST不是Model的Proxy   以为只要Model和Model的关系设计好了,REST风格的URL就被决定了。这就是我前段时间所犯的最愚蠢的错误。这种思想让我用Model First的方式设计系统。结果系统实现得越多,离用户价值越远。 3. RES ...
ZenTest的作者提出了Matrix Test ,并且在ZenTest里面提供了一个实现。 我前段时间实现了一个增强版的MatrixTest--http://agilewebdevelopment.com/plugins/test_helpful 现在有一个项目转到RSpec上了,我于是作了一个Matrix Test的RSpec实现-- http://svn.nibirutech.com/opensource/plugins/matrix_spec/ RSpec的实现中,我实在没弄明白如何扩展RSpec,只好把方法调用放到 before(:each)里面,很是无奈。抽出时间再写READ ...
map.resources :account_types, :has_many => :accounts 是简短写法,等价于 map.resources :account_types do |account_type| account_type.resources :accounts end 且慢,有一点变化要注意: 最后生成的是 account_type_accouts_path 而不是 account_path, 如果要还原成1.2的样子,需要这么写: map.resources :account_types do |account_type| account_type ...
Mock 一下Request. module ActionController class AbstractRequest alias :subdomains_bak :subdomains def subdomains return @subdomains if @subdomains old_subdomains_bak end def subdomains= (*domains) @subdomains = domains end end end
I extract the plugin from a real project http://code.google.com/p/railsjob/ to make test easier. I submit it to http://agilewebdevelopment.com/plugins/test_helpfulAnd write a short document -- sorry for my ugly English. :pTestHelpful===========This plugin provide the following helper method for test ...
CSS网页谁都会编,如何用最少的HTML和CSS进行布局就很少有人会了。比如这个 漂亮的表单布局,完全摒弃table。我的使用HTML的table的原则是:不用table!当CSS布局搞不定的时候,table是极有诱惑力的手段。它也是导致网页臃肿,可访问性极差的元凶。请强迫自己:不要用table标签!Sass用了以后再也不想写CSS文件了make_resourceful把Controller代码精简到极致。这也要归功于RESTfulMatrix test至少减少了我的三分之一的测试代码。我近期将release 一个相关的plugin, 来帮助人使用 matrix test.Edge rails ...
2007-05-27

make_resourceful 0.1.0 released

关键字: make_resourceful
make_resourceful 0.1.0 released! Overview of make_resourceful 0.1.0 Really very nice!
人外有人,天外有天。昨天把Peercode的视频看了一遍,真是太爽了。也看到了自己和国外的ROR技术高手之间的差距,我的学徒之路还很漫长。在欣赏高手纯属的技术的同时,还可以看到对代码一丝不苟的精神。凡是一点点重复的代码都会立刻被重构,一点点可以重用的部分都会被抽取。任何可以利用现有plugin的地方决不重新发明轮子。高手基本上都在英文社区,国内的英语水平严重限制了新技术的传播,真是一件很遗憾的事情。这也是我们这些Ruby on Rails先行者应该做的事情。
http://www.hamptoncatlin.com/assets/2007/5/21/make_resourceful.pdf Rails中的Restful app并没有抽象CRUD代码,但是它给除了一种抽象CRUD的思考方式,Hampton Catlin则把它发挥到了极致。
2007-05-19

heckle--测试覆盖率检测工具

关键字: TDD heckle rcov
上次rails爱好者聚会时,跟Robbin Lu讨论过测试覆盖率的问题。现有的覆盖率检测工具rcov只能检测代码覆盖率,不能检测逻辑覆盖率。比如说: @post.nil ? "Invalid Post" : post.title 在@post不空的时候进行测试,这段代码的测试覆盖率就达到了100%,而@post.nil?为true的情况没有测试到,这时的100%就是唬人的。 heckle就是解决这种问题的工具,为我们这种测试驱动强迫症患者准备的探测器。它能够修改代码中的每一行,以及每一个分支,以确定修改之后至少有一个test failed。
2007-05-19

我的gem 列表

关键字: gem
看到 秀出你的Gem我也秀一下。 actionpack (1.13.3) actionwebservice (1.2.3.6548, 1.2.3) activerecord (1.15.3) activeresource (0.9.0.6653) activesupport (1.4.2) builder (2.1.1) capistrano (1.99.0) cgi_multipart_eof_fix (2.1) cmdparse (2.0.2) daemons (1.0.6) diff-lcs (1.1.2) fastthread (1.0) feedtools ...
2007-05-19

HAML必将流行

关键字: haml, rails,rhtml
不管你认不认同HAML,它正在获得关注。可以预料的是,一场口水战不可避免,就像当年Rails出世一样。而这场口水战之后,HAML将不得不流行起来。 再重申我以前的一个观点:在软件领域,技术不是用来解决问题的(软件领域几乎没有技术解决不了的问题),而是用来降低解决问题的成本的。 衡量一门技术的最终标尺是解决问题的成本,简洁的代码是降低成本的一条有效途径。 HTML或者rhtml可以解决的问题HAML同样可以解决,既然后者可以得到简洁的代码,那么取而代之何尝不可?
2007-05-18

SASS是一个好东西

关键字: haml sass
HAML 1.5以后的新特性要数sass最为吸引人了。昨天试用了一下,确实让css文件简洁了不少。支持常量和缩进嵌套。比如说scaffold生成的CSS: .errorExplanation { margin-bottom: 20px; font-size: 10px; } .errorExplanation h3, .errorExplanation h2 { background: #e33; padding: 3px; margin-bottom: 0; font-size: 14px; color: #ff ...
ThoughtWorks大力宣传JRuby,可是我是在想不通原因。 文章中说用JRuby的好处是“它使横跨他们目标平台的部署过程变得流畅”。这一点太搞笑了,Java就比Ruby部署流畅拉?部署过J2EE的朋友都清楚。 我完全不看好JRuby,XRuby之类的项目。放不下遗留系统,就继续用J2EE。新项目想用rails,就换成Ruby。拖泥带水没有好下场。
今天把一个程序切换到edge rails(revision=6688),发现了以下变化: 1. 需要安装 libopenssl-ruby,否则会有 `const_missing': uninitialized constant ActionController::Base::DEPRECATED_INSTANCE_VARIABLES (NameError) 2. URL中的" ; " 变成了“/” assert_select "a[href=/pages/#{page.id};edit]" 要改为 assert_select "a[href=/pages/#{page.id} ...
2007-05-02

我的 .emacs 文件

关键字: emacs
(custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(case-fold-search t) '(current-language- ...
这次聚会的目的虽然说是Rails源代码分析,我的活动内容却是和几位朋友扯蛋。 Kevin是活动的组织者,一德公司的开发者,对新技术保持着激情与活力。  蔡旺勤(www.caiwangqin.com)是Rails社区的先行者,曾效力于uuzone.com。蔡旺勤最近做了www.p1ay.cn,真是个好玩的域名。可惜曾经风靡一时的Web2.0社区uuzone竟毁于一旦。找不到盈利模式是互联网企业的通病。门户模式已经被互联网巨头垄断。保持创新,敏捷,是如今互联网企业生存的关键。今年还会有大量互联网企业死掉,这场战斗才刚刚开始。 博文视点的几位组织者非常 ...
http://code.google.com/p/ereader/ 我自娱自乐的一个RSS Reader,本打算做成形再发布。但是最近工作比较忙,成形就不知道猴年马月了。 现在就当献丑公布一下,欢迎大家积极参与。
2006-12-13

也谈一下我对Rails 1.2中 Restful的理解

关键字: ruby rails REST
读了 http://www.javaeye.com/topic/38653, 想从代码方面谈一谈对Rails 1.2中的RESTful application 的感受。 我有User 和 Article两个Model,并且需要某一个User未读的所有Article。我的第一灵感就是声明一个has_and_belongs_to_many(好长的方法啊,每次都怕敲错)。 class User < ActiveRecord::Base has_and_belongs_to_many :articles end class Article < ActiveRecord:: ...
ROR做Unit Test的速度有些让人失望,使用内存数据库能够大幅提高Unit Test的速度,提高开发效率,今天刚刚配上了SQLite3,下面作一个简要攻略。   假设你已经有一个rails的工程了,并且已经用SQLite3生成了一个development模式的数据库db/eplanner_development.db。   1.       安装SQLite-ruby 运行: gem install sqlite3-ruby 选择mswin32安装 2.       测试SQLite-ruby     require 'sqlite3'     db = SQLite3::Databa ...
最近学习Ruby的过程中对ruby 极高的开发效率深有感触,但是却也因为效率问题感到遗憾。但是我绝对没有贬低Java,吹捧ruby的意思。我认为未来的ruby和Java将会是双赢的局面。   首先Java的概念分为三个部分: 一门面向对象的语言 一套标准类库 Java虚拟机 我之所以说ruby比java开发高效主要是指Ruby语言上比较Java更简洁和精炼,其次是标准类库设计上要好得多。其实Java也是有很多优点的。 Is Java Dead?, java当中优秀的东西也很多,比如高性能的虚拟机,一些业务框架比如业务规则引擎,分布式事务等。如果JRuby大行其道,ruby将能够运行于Java ...
什么样的编程书我都见过,就是没见过集卡通,散文和编程于一身的教程。 《why's (poignant) guide to Ruby 》就是这样一本书。   一本编程书写的再好读久了也会觉得枯燥,但是配上卡通故事呢?   按照郑渊洁的话讲,这是一本适合0-100岁人读的书。   这本书还在写作中,期待正式版本会更精彩      
http://shootout.alioth.debian.org/debian/benchmark.php?test=all&lang=ruby&lang2=javaclient
昨天作了一道Topcoder的题目,是一道典型的图搜索问题。由于正在学习Ruby,所以用Ruby实现了一下。   测试时发现规模小的时候比如100*100以下的图,运行时间还可以接受。而题目要求是500*500的图,这种规模下,运行时间已经超出了我的耐心。   一般来说,Topcoder的题目都是能够十多秒运行出结果的,否则就是没有做对。   本来以为是我的算法写的有问题,所以反复检查我的算法,并没有发现更有效率的途径。   开始怀疑ruby的性能问题,用Java把其中的堆数据结构重新实现了一次,然后和ruby实现的堆进行比较。   结果让人大吃一惊,竟然比ruby快20-30倍。我的测试并不 ...
dongbin
搜索本博客
存档
最新评论