Ruby on Rails的核心特性是什么?
Rails 聪明地利用了Ruby语言的最好特性。它扩展了Ruby,但您很难说出Ruby在哪里结束,Rails从哪里开始。您也可以看到Active Record(Rails 的持久引擎)和模型-视图-控制器(MVC)框架之间进行了很好的集成。例如,您可以编写三行代码,创建一个表,然后立即为该模型生成用户界面。
◆约定优于配置
为保持良好的灵活性,Java框架保持了大量普遍的配置文件。Rails不采用这种策略。它为方法、类、表和列采用普通的项目目录结构和简单普通的命名约定,以推断哪些已配置在Java应用程序中。结果是Rails应用程序只需要对应Java应用程序的一小部分配置代码,一般是十分之一或更多。
◆低重复
不要重复自己(Don't Repeat Yourself,DRY)是Rails社区的一个常见术语。Rails框架委员会使用通常看起来像是Ruby语言的扩展的方法来把重复的任务抽象出来。Rails的元编程策略使每行代码都执行更多的任务。
◆即时反馈
使用Rails,对于您所做的大多数工作都会给出即时反馈。编写一行代码并保存后,在加载下一个Web页面时将激活您所做的更改。更新了您的数据库以后,迁移可以向您即时显示更改。
Rails的MVC框架(称为Action Pack)为基于Web的访问进行了定制并且实现了著名的被称为Mode l2的设计策略。Rails版本已经优化了控制器和视图之间的集成(该集成能够使配置文件最小化)并且自动使控制器实例变量可供视图使用。
◆项目目录结构
所有Rails应用程序都具有相同的项目结构,其中的目录用于存储应用程序代码、数据库配置、公共的静态文件,以及用于管理Web服务器和进行基于Web的功能测试的脚本。
◆架构
通过提供用于生成应用程序组件(这些组件都符合普通架构目标,比如页面级和片段级缓存、两层设计、用于测试、开发和生产的环境)的开箱即用脚本,Rails框架简化了架构。
◆工具
Rails工具专门用于Web。日志支持、breakpointer、剖析器(profiler)和测试框架都针对基于Web的应用程序进行了修剪并针对两层操作而被启用。
但是钉子枪永远不会取代锤子,我们却愚蠢地希望能完全取代。锤子总能做一些钉子枪不能做的事情。
>rails sample
>cd sample >ruby script/generate controller samples >start ruby script\server >start ruby script\breakpointer |
class SamplesController < ApplicationController
def index breakpoint @session[:message] = "hi, mom" render_text "Showing index" end
def show
render_text @session[:message] end end |
> puts @session[:message]
-> hi, mom |
class Person < Active Record::Base
belongs_to :department end |
◆使用较少的XML和更多的约定。约定与配置并不是井水不犯河水,因为可以使用约定来指定明确的默认值,使用配置来覆盖约定。像Rails那样使用这种方法,您可以两全其美:具有较少重复的简洁代码而不会失去灵活性。
◆为了在调试过程中浏览Java类,合并更多的脚本语言,包括BeanShell。
◆为任务选用正确的工具。不必仅仅因为需要持久性就借助于Hibernate或仅仅因为需要Web应用程序就借助于Struts。
0
分享
收藏
41篇文章,2W+人气,0粉丝
Ctrl+Enter 发布
发布
取消
推荐专栏更多
MySQL全通晓
共18章 | 张甦
¥51.00 402人订阅
高并发架构之路
共15章 | sery
¥51.00 507人订阅
猜你喜欢
扫一扫,领取大礼包
0
oceanson
转载于:https://blog.51cto.com/yanshengjie/348593
Ruby on Rails的核心特性是什么?相关推荐
- 转Ruby on Rails的核心特性是什么
Ruby on Rails的核心特性是什么?(1) 作者: Bruce Tate 出处:51CTO.com ( 1 ) 砖 ( 0 ) 好 评论 ( 0 ) 条 进入论坛 更新时间:2006-10-1 ...
- Ruby on Rails 和 J2EE:两者能否共存?
Ruby on Rails 和 J2EE:两者能否共存? 两个 Web 应用程序框架的比较 文档选项 <tr valign="top"><td width=&qu ...
- [转载] Ruby、Rails、Agile的启示
转自:http://vipnews.csdn.net/newscontent.aspx?pointid=2008_03_03_170600555 文/杨祥吉 本文作者以使用Ruby和Rails进行创业 ...
- Ruby on Rails 的秘笈是什么?
Ruby on Rails 的秘笈是什么? 我们能从 Rails 框架学到的经验 文档选项 将此页作为电子邮件发送 级别: 初级 Bruce Tate ([email]bruce.tate@j2lif ...
- Status Ruby on Rails in China - Presentation Transcript
Slide 1: 铁道中文应用开发现状综述 2008年8月 制作发布:铁道播客 BD7LX 深圳 http://rorcast.blogger2blogger.com/ 铁道中文应用开发现状综述 20 ...
- Ruby on Rails 之旅(六)——Ruby on Rails 简介 ( 少就是多)
为什么80%的码农都做不了架构师?>>> 转自:http://ihower.tw/blog/archives/1743 繁体字看着头痛,转成简体字给大家看 知名的 Web de ...
- ruby on rails简介
知名的 Web design 在线杂志 A List apart No.257期少见地刊出 Rails 入门介绍,心血来潮来做翻译,断断续续翻润了好几次,觉得文章看起来没什么,翻起来好长啊. 终于再度 ...
- ruby on rails_我成为了Ruby on Rails和React的贡献者,你也可以
ruby on rails I am really grateful to have contributed to a few open source projects, including two ...
- ruby语言开源Web应用框架 Ruby on Rails 简介
目录 Ruby on Rails是什么 历史 Rails 的 MVC 架构 Web 服务器支持 数据库支持 系统要求 集成开发环境 Ruby on Rails是什么 Ruby on Rails(官方简 ...
最新文章
- Android L 新特性
- goldengate 故障及解决方法汇总
- C实现二叉树的先序遍历,中序遍历,后序遍历
- 魔兽发布页站源码-自带采集插件+5条规则
- angular 实现无限极联动下拉
- 岗位理解_如何正确理解策划岗位
- [开源]quakeIII(雷神之锤3)源码
- 如何选择和部署长尾关键词
- 我的一些关于商业计划书的经验
- 获取当前时间精确到毫秒
- 一文详细介绍情绪识别常用的数据集
- 有关安全证书汇总及其科普
- MySQL启动失败,试图访问许可验证文件时出错,请重新安装SQL Server来更正次文件
- CDH大数据平台 ERROR Heartbeating to 192.168.0.200:7182 failed
- WARNING:not built warning
- 通过 languagereactor 浏览器插件学英语
- wps怎么投递简历发到boss直聘_boss直聘怎么投简历
- c\c++ 笔试面试大汇总
- 踩坑之不可见字符\u200B
- 本来WOW可以不用加入防沉迷的,现在看来不可能了