`
tx984471
  • 浏览: 39831 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

摘自别人的ROR技术集锦

    博客分类:
  • ROR
阅读更多
摘自http://rubyonrailscn-org.iteye.com
放在自己博客里用于查询和提醒!
本列表整理自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 来从日志中过滤重要新。负责你的程序日志中将充满用户的密码
分享到:
评论
1 楼 qichunren 2008-05-22  
很好很好.

相关推荐

    RoR性能优化经验谈

    RoR(Ruby on Rails)是一种流行的开源Web开发框架,以其高效和简洁的代码著称。然而,随着网站规模的增长,性能优化成为必不可少的环节。在本文中,我们将探讨一些RoR性能优化的关键方面,主要基于JavaEye网站在...

    ror

    NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696

    神经网络ror resenet模型

    **神经网络Ror ResNet模型详解** 在深度学习领域,ResNet(残差网络)模型是具有里程碑意义的创新,由He et al....通过不断的研究和改进,我们可以期待在未来的AI技术中,这些模型将发挥更大的作用。

    RoR选题方向—源代码

    ASP.NET、C#和J2EE/Java是RoR的主要竞争对手,它们各自有各自的优点和适用场景,了解这些技术可以帮助你比较和选择最适合的开发工具。 在深入研究RoR源代码时,建议先从官方文档和开源项目开始,例如GitHub上的...

    ror中文资料

    **Ruby on Rails(简称RoR)中文资料** Ruby on Rails(RoR)是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程,提高开发效率。RoR强调“约定优于配置”...

    ror实例

    Ruby on Rails(简称RoR或Rails)是一种基于Ruby语言的开源Web应用框架,它遵循Model-View-...为了更好地掌握RoR,建议结合实际项目练习,同时关注社区的最新动态和技术趋势,例如Ruby China和RailsGuides等资源。

    ROR安装必备所有架包

    在Ruby on Rails(ROR)开发环境中,安装和配置正确的依赖包是至关重要的。这个压缩包包含了一系列用于ROR框架的基础组件,但不包括Ruby本身。让我们深入了解一下这些包的作用和重要性。 首先,`actionpack`是Rails...

    初探ROR

    **初探ROR** Ruby on Rails(简称ROR)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在促进开发过程的简洁性和效率。Ruby on Rails的核心理念是“Don't Repeat ...

    RoRBlog 基于RoR的博客系统

    基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。

    Windows 上搭建 ROR环境

    随着Web开发技术的不断发展,Ruby on Rails(简称Rails或ROR)作为一种高效、简洁且优雅的Web开发框架,受到了广大开发者的青睐。然而,在Windows环境下搭建Rails开发环境却让不少初学者感到头疼。本文将详细介绍...

    ROR绿色最新环境(2013/3/10)

    ROR环境 Ruby version 1.9.3 (java) RubyGems version 1.8.24 Rack version 1.4 Rails version 3.2.12 JavaScript Runtime therubyrhino (Rhino) Active Record version 3.2.12 Action Pack version 3.2.12 ...

    机遇ROR 的图书管理系统

    《机遇ROR的图书管理系统》是一份以Ruby on Rails(简称ROR)技术为核心,旨在构建高效、便捷的图书管理解决方案的学习资料。Ruby on Rails,是基于Ruby编程语言的开源Web应用框架,它遵循MVC(Model-View-...

    RoR 培训课程PPT

    - **课程性质**:本课程为为期五天的Ruby on Rails(简称RoR)入门级培训,适合初学者快速掌握RoR的基本概念和技术要点。 - **讲师信息**:由Peter Marklund开发并讲解,Peter是一位经验丰富的Ruby on Rails开发者。...

    ROR 文件的上传与下载

    ### ROR 文件的上传与下载:深入解析与实践 在Ruby on Rails(简称ROR)框架下,处理文件的上传与下载是一项常见的需求,尤其是在构建包含媒体内容的应用程序时。本文将基于给定的文件信息,详细阐述如何在Rails...

    javarebel 用JAVA和ROR一样方便测试

    破解版本的JAR包,放到本地磁盘,ECLIPUS直接用,到JVM设置直接加 -noverify -javaagent:D:\javarebel.jar

    freemis 基于ror框架的mis

    FreeMIS是一个基于Ruby on Rails(RoR)框架构建的管理信息系统(MIS)。RoR是由David Heinemeier Hansson开发的一个开源Web应用程序框架,它遵循“Don't Repeat Yourself”(DRY)原则,强调简洁和生产力。RoR使用...

    ROR环境配置

    在IT行业中,Ruby on Rails(简称ROR)是一款基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用开发过程,提高开发效率。本文将深入探讨如何配置ROR开发环境,以及...

    计算机软件-编程源码-FOXPRO ROR WINDOWS 高级成程序设计技术.zip

    在"FOXPRO ROR WINDOWS 高级成程序设计技术.zip"中,我们可能找到一系列高级编程技术的实践示例,这些技术可能包括但不限于: 1. **面向对象编程**:FOXPRO支持类和对象的概念,允许开发者创建自定义的数据结构和...

    ror留言板程序

    "ror留言板程序"是一个基于Ruby on Rails框架开发的简单应用,它主要用于实现用户在网站上留言和查看他人留言的功能。Ruby on Rails(简称RoR)是用Ruby语言编写的开源Web应用程序框架,遵循MVC(Model-View-...

Global site tag (gtag.js) - Google Analytics