`
daociyiyou
  • 浏览: 24112 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Rails开发技巧一览

阅读更多

昨天在网上看到一个Rails开发技巧一览,看了觉得很有用,所以翻译了,贴在 Ruby on Rails 中文 Wikihttp://wiki.rubyonrailscn.org上。转发在这里,希望对大家有帮助。 

本列表整理自Massive List of Rails Development Tips 

    * 将你的程序所用到的密码和API证书号保存在一个自定义的配置文件中。我使用一个YAML并沿用了database.yml类似的格式。 
    * 有需要的时候就使用常量。不要重复诸如你的客服邮件地址这类字符串,而是将它们保存在常量中(可以保存在environment.rb或者你自己的配置文件中),然后在整个程序中使用该常量。 
    * 保持使用UTC时间,这可以使你的程序有更好的一贯性。(不过Rails 2.1的Timezone可提供更好的功能) 
    * 请勿在一个 Active Record? 数据模型中遍历另一个数据模型。那样的话会产生大量的SQL查询操作。正确的实现方法是:1)如果多个数据模型已经相互关联,那么可以使用find(: include) 方法进行勤式数据获取,那样的话在一个SQL查询中就可以获取多个数据模型中的数据。2)如果这些数据模型没有被关联,那么你可以写一个自定义的 find,在其中采用select和join来定义跨表查询。这样的话你可能需要你的数据库模型中为非本表的域定于值读取方法以获得正确类型的值。 
    * 请小心使用二进制域。在默认情况下,数据库查询会返回所有的域,包括任何二进制域中的完整内容。请使用 :select 来定义所需要获取的域,从而减轻系统负荷。 
    * 要生成周期性报表时,请为报表数据创建一个专用数据表,然后将报告数据缓存到该表中。这样做要比每次现实年度或月度报告是重新产生数据要来的快得多。 
    * 创建一个国家列表数据库。默认情况下,Rails使用字符串来选择和罗列国家,这对于数据模式的一致性来说是有害的。而且在生成报告时会产生问题。 
    * 避免编写臃肿的控制器(controller),不要将一堆方法塞入controller,如果一个controller中有超过10个方法,那么请重新考虑你的设计 
    * 保持你的控制器和视图(view)尽量精简,在绝大多数情况下,你的大部分代码应该位于数据模型中,而不是控制器或者视图中。 
    * 不要在session中保存对象。如果需要的话,在session中保存数字或者字符串,然后在处理单个请求的时候根据session中的内容从数据库取回数据。(Rails 2.0 中的新session机制解决了这个问题) 
    * 避免处理信息量超大的请求回复(response)。遇到要处理大信息量的请求时,你可以将改记录标志为有待处理,然后使用一个cron事务或者消息服务来处理这个花费时间的任务。Background RB? 也是一个选择. (我使用这种基数来过滤blog中的SPAM). 
    * 当需要批量发送邮件时,请使用 ar_mailer,而不要在一个Rails的请求回复过程中进行发送。 
    * 使用 exception_notification插件, munin, monit等工具来监管你的应用程序和服务器。 
    * 不要吝啬硬件投入,那样的话你因为劣质的备份或便宜的硬件,而很快不得不花钱请人解决那些问题。 
    * 测试驱动(Test-drive)你的开发 
    * 使用数据库索引来提供查询速度。Rails仅索引主键,所以你需要根据具体情况设定额外的索引。 
    * 测量你的代码性能。使用ruby-prof gem 和插件测量你的代码,可以做些小修改便可使你的应用程序成倍提速。 
    * 将图像相关的代码依赖度减少到最小。如果你的应用程序仅仅需要生成一些缩略图,那么不要将内存浪费在导入巨大的图像库上,相反可以使用mini-magick 或 image_science 等轻量级图像库。 
    * 避免无节制地渲染小的片段(partials) 
    * 使用CSS而避免使用行内标签来定义风格 
    * 不要使用 Active Record? 的 serialize 选项在数据库中保存巨大的对象 
    * 在数据模型中使用 attr_protected :fieldname 以避免关键数据被通过修改过的表单而改写。(attr_accessible 是更安全的方式,这里解释了为什么 
    * 使用Ruby类和继承来重构重复的控制器代码 
    * 使用 Javascrip 技巧将页面行为从页面代码标签中分离出来 
    * 将能够自给自足的类和模组(module)封装成 plugin 或 Ruby Gems?. 
    * 尽可能缓存经常被访问的数据库。 
    * 编写自定义的 Test::Unit assertions 或 rSpec matchers 来帮助调试测试中出现的错误 
    * 使用 Linux 上的logrotate daemon 来 Rotate the Rails 和 Mongrel 的日志文件 
    * 需要可靠的备份需要 
    * 使用 Capistrano 或 Vlad 来自动部署你的网络应用程序 
    * 尽量保持方法精简。当一个方法长过10行时,请考虑重构它 
    * 运行 flog 来找出过于复杂的方法和类 
    * 不必过多使用条件语句。避免使用多层嵌套的if语句,而使用Ruby的case语句和Ruby对象来进行条件处理。 
    * Ruby 提供强力的元编程功能,不过这个功能很容易被滥用 (比如 eval 和 method_missing). 
    * 熟悉了解各种流行的插件。 Instead of re-implementing the wheel, save yourself some time by using well tested, popular plugins. 
    * 在你的login 或 user 控制器中使用 filter_parameter_logging :password, :password_confirmation 来从日志中过滤重要新。负责你的程序日志中将充满用户的密码

分享到:
评论

相关推荐

    ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)

    Ruby on Rails,简称Rails,是由David Heinemeier Hansson创建的一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性。在这个开发环境包中,我们拥有Ruby ...

    rails敏捷开发的购物车系统

    在本文中,我们将深入探讨如何使用Rails敏捷开发技术构建一个购物车系统,特别是在参考《rails敏捷开发第四版》中的示例。Rails 3.2.6是本文的基础框架,它是一个强大的Ruby Web应用程序框架,以其MVC(模型-视图-...

    Ruby On Rails开发实例-源代码

    Ruby on Rails(简称RoR或Rails)是一种基于Ruby语言的开源Web应用框架,它遵循Model-View-Controller(MVC)架构模式,旨在使Web开发更简洁、高效。本实例将帮助你深入理解和实践Rails的开发流程。 首先,让我们从...

    使用Aptana+Rails开发Rails Web应用(中文)

    在开发Web应用时,Ruby on Rails(简称Rails)框架因其高效、简洁的代码风格和强大的社区支持而备受青睐。Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。...

    Ruby on Rails开发 从入门到精通实战教程.rar

    数据库操作: 掌握Rails框架中对数据库的操作方法,包括模型定义、数据迁移、数据查询等数据库操作技巧。 阅读建议: 逐步学习: 按照教程的顺序,逐步学习Ruby on Rails开发的各个知识点,保持持续的学习和实践。 ...

    rails开发技术必备书籍

    学习rails框架开发的必备书籍。。。。。。。。。。。。。

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...

    ruby on rails最佳敏捷开发

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用框架,它遵循敏捷开发原则,致力于简化Web开发过程。Rails的核心理念是“Convention over Configuration”(约定优于配置),这意味着开发者可以减少大量...

    基于ruby on rails开发示例源码

    Ruby on Rails,简称Rails,是一种基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。本示例源码提供了使用Ruby on Rails进行实际项目开发的具体...

    使用Rails开发Facebook平台应用

    ### 使用Rails开发Facebook平台应用 #### 一、引言与背景 随着社交媒体的迅速发展,Facebook作为全球最大的社交网络之一,为企业和个人提供了无限的机会来创建和推广应用程序。Rails(Ruby on Rails)作为一种流行...

    eclipse的ruby on rails开发插件RadRails

    **Ruby on Rails 开发环境构建:Eclipse与RadRails 插件详解** 在现代软件开发领域,Ruby on Rails(简称Rails)作为一个强大的Web应用程序框架,因其简洁、高效的特性深受开发者喜爱。而Eclipse,作为一款功能强大...

    ruby on rails开发

    Ruby on Rails,简称Rails,是一种基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码可读性。本教程将深入探讨Ruby on Rails的环境搭建,帮助你快速入门。 1...

    Ruby on Rails Web开发学习实录随书光盘(源代码).

    通过学习和实践本光盘中的源代码,你可以逐步掌握Ruby on Rails的开发技巧,理解Web应用的生命周期,从而提升你的Web开发能力。记得结合书籍中的理论知识,与源代码相结合,理论联系实际,这样才能更好地吸收和运用...

    Ruby on Rails实例开发

    Ruby on Rails,简称Rails,是基于Ruby编程语言的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性,同时强调“约定优于配置”的原则。在本实例开发中,我们将探讨如何...

    ruby on rails(开发文档)

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,极大地简化了Web应用的开发过程。Rails的哲学是“约定优于配置”,鼓励开发者遵循一套标准的...

    Web开发敏捷之道-应用Rails进行敏捷Web开发 pdf

    《Web开发敏捷之道——应用Rails进行敏捷Web开发》是一本深度探讨如何利用Ruby on Rails框架进行高效、敏捷的Web应用程序开发的专业书籍。该书涵盖了从初学者到高级开发者所需的各种知识,旨在帮助读者掌握敏捷开发...

    dckerize, 使用 Docker 容器的增压 Rails 开发.zip

    dckerize, 使用 Docker 容器的增压 Rails 开发 Dckerize 使用 Docker的增压 Rails 开发描述这个 gem 为你提供了一个很好的起始点,可以使用 Docker 对 Rails 5应用程序进行 containerize 。你会得到用于应用程序和...

Global site tag (gtag.js) - Google Analytics