据我经验,Ruby和Ruby on Rails一直是最难真正掌握的语言/框架组合之一。对于C、C++和Java程序员而言,Ruby有着非常不同(很不好)的OO设计方法,Rails有太多需要理解和记忆的主张。依我的水平,我已经花了不少时间 ------ 我坚信还有很长的路要走 -------我爱它,并坚持到底。
我对Ruby on Rails人数保持增长私下表示过怀疑,仍然有很多开发者沉湎于Java形式的OO思想,这也是很多人正在学的;这是非常好。同时,它也是坏事,因为垃圾代码源于其他的垃圾代码,在发布或被其他人查看的时候。
ThriveSmart雇佣了更多的开发者------他们不都是Ruby或Ruby on Rails专家------有必要确保代码和设计模式在跨项目中保持一个较高的质量水准。My good friend Dan和我整理了这个清单,便于小组应用到他们的每个项目里。
这是一个不断更新的清单,下面只是临时的片段。
以下略
解释
清单上的每一条对于经验丰富的Ruby on Rails开发者比较熟悉、不值一提了 ------但是对新手而言,还需一些解释。往下看:
(1)每个controller action 仅仅调用一个model方法而不是初始化的find或new。必要时,自定义一些 .net 或 .update的方法.
胖模型、瘦控制器是Rails编码最提倡的方法论------但是它太开放,以至于很难按照我的方式说明。通常,你把所有的逻辑堆在了model里,因此你的controler看起来和script/generate产生的controller一模一样------除了自定义方法,你只是把通常的.new 和 .update_attributes方法按相同方式处理。举一个简单的例子,有一个额外的逻辑,属性被一个特定的user更新:@foo.update_attributes_by_user(params[:foo], current_user)。
额外逻辑应该放在controller、而非model中仅仅当它要渲染不同的action或做出不同的跳转。
(2)仅仅一个或两个实例变量在controller或view之间共享。
实例变量hell很容易出现在Rails里------当controller和view共享很多实例变量时。它潜在地会损害性能,由于你会重复调用一些未知的关联。相反,你的controller应该仅仅控制一个实例变量------或许还有一个current_user。这样,所有的关联均可以“按需”调用,并在一个地方成为实例变量缓存。
该方法同样适用于片段缓存,因为在实际载入关联之前,你可以检查一下view中的缓存。
例如,你的Blog controller不必建立实例变量@post和@related_posts,仅仅建立一个方法,@post会给出Post模型中的related_posts 方法,因此你只需在view层调用@post.related_posts。
(3)所有的model和变量名要简明(对新手)、尽可能短、但不要使用英文缩写。
命名比较难。特别对于那些专心一个应用程序的开发人员------当你头脑中载入整个应用程序上下文时,它或许明显,但对于后来的你或别人就不太明显啦。
Ruby和Ruby on Rails其中伟大之处在于命名简明扼要、可读性强,哪怕对新人。不要破坏它的强大力量!
如果你不能马上想到一个灵巧的、清晰的、短名字,先编码你的方法,然后试着丢掉刚才的代码环境。在一天结束的时候,放一个TODO进去、重新命名变量或方法名称。
(以下待翻译)
原文地址: http://www.matthewpaulmoore.com/articles/1276-ruby-on-rails-code-quality-checklist
分享到:
相关推荐
《Ruby on Rails Tutorial》中文版(原书第2版,涵盖 Rails 4) Ruby 是一门很美的计算机语言,其设计原则就是“让编程人员快乐”。David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby...
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
Ruby On Rails中文教材(PDF)
Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 ...
ruby on rails社区网站开发源码
Ruby on Rails入门经典代码,非常适合新手学习使用
基于ruby on rails开发示例源码
Ruby on Rails Web开发学习实录 内容简介: 在目前的主流web开发技术中,基于ruby语言的rails框架是做网站开发速度最快的工具。它可以达到j2ee框架开发速度的5~10倍,并且代码量也非常少。另外由于代码量的大幅度...
ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作
Ruby On Rails 官方教程,这本书讲解如何使用 Ruby on Rails 框架开发应用,以及如何把应用部署到生成环境。本书使用 Rails 默认的开发工具栈开发了一个完整的社交应用(类似 Twitter)。读完本书后你将掌握如何使用...
Ruby on Rails中文指南
本书的目标是成为对“如果想学习使用 Ruby on Rails 进行 Web 开发,我应该从哪儿开始?”这一问题的最好答案。学习完本书的内容之后,你将具备使用 Rails 进行开发和部署 Web 程序的技能。同时你还能够通过一些进阶...
ruby on rails 教程源码,配合原书使用
ruby on rails最新版 这是本人精心收集的重要软件
ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)
Ruby On Rails 框架自它提出之日起就受到广泛关注,在“不要重复自己”,“约定优于配置”等思想的指导下,Rails 带给 Web 开发者的是极高的开发效率。 ActiveRecord 的灵活让你再也不用配置繁琐的 Hibernate 即可...
ruby on rails api方便查阅
该资源包包括在Linux安装Ruby on Rails所需的包,以及安装步骤文档
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。