什么是Ruby on Rails? Ruby on Rails(官方简称为Rails,RoR非官方简称)是使用Ruby这套开放原始码(采用MIT授权)、物件导向程式语言所开发的Web开发框架,主要用于开发数据库网站应用程式。Rails是一套专业的开发...
什么是Ruby on Rails?
Ruby on Rails(官方简称为Rails,RoR非官方简称)是使用Ruby这套开放原始码(采用MIT授权)、物件导向程式语言所开发的Web开发框架,主要用于开发数据库网站应用程式。Rails是一套专业的开发框架,采用了MVC(Model-View-Control)模式、内建支援单元测试和整合测试、支援Ajax和RESTful接口、ORM机制,以及支援各种最新的业界标准像是HTML5、JQuery等等功能。它的发明人是David Heinemeier Hanson(DHH),DHH是2004年将Rails从37signals商业产品中独立出来成为开源专案。
它的设计目标是只要开发者熟悉它的惯例,它就可以让网站开发变的非常容易。而相对于其他程式语言和框架,Rails可以让你用更少的程式码达成更多的功能,它甚至让网站开发变得更有趣。
Rails的哲学包括以下指导原则:
- 不要重复自己(DRY: Don’t Repeat Yourself) – 撰写出重复的程式码是件坏事
- 惯例胜于设定(Convention Over Configuration) – Rails会默认各种好的设定跟惯例,而不是要求你设定每一个细节到设定档中。
- REST是网站应用程式的最佳模式 – 使用Resources和标准的HTTP verbs(动词)来组织你的应用程式是最快的方式(我们会在路径一章详细介绍这个强大的设计)
为何选择Rails?
这是一个开发框架的时代,熟悉开发框架的人,可以很快的完成任务以及熟悉网站程式的架构。而各种程式语言要入门上手,其实都不会太困难。我认为重点会在于你不能够熟悉做事情的框架。
所以,撇开程式语言的偏好,Ruby on Rails是目前网站开发框架中做前端(提供动态HTML给浏览器)应用服务器最为成功和技术先进的。它的概念也深深影响了非常多其他程式语言的后进网站开发框架,例如ASP.NET MVC、CakePHP、Grails、TurboGears、Pylons、web2py、catalyst等等(模仿是最大的恭维)。我们可以用非常有效率的程式码开发出网站应用程式。另外,可能会让你感到意外的是,它也是目前动态语言中,生态圈最为丰富的网站开发框架,相关的书籍、研讨会、顾问公司、第三方服务、外挂套件等等十分丰富。因为使用Rails的人数众多,所以在开发上各个方向都有人提供了最佳实务,像是如何写出好的程式码、网站安全性、网站性能、扩充性、全文搜寻、异步处理等等,这是一个非常活跃的社群。
当然,最重要的一个理由,就是采用Rails后生产力暴增:写新的应用程式、增加新功能变成容易地多。让你可以用更少程式码做更多的事情,而且程式也更容易维护。当然,学习新工具总是需要时间投资的,一开始可能没办法立刻见效。但是如果你有长期的开发工作,而且网站有一定的复杂性,那么一个短期学习Ruby on Rails的投资,长期来说将会是非常值得的。
Rails 不是什么
- 如上所述,Rails是一个打造网站应用程式的开发框架,如果你只需要静态的HTML,那是绝不需要用到Rails的。
- Rails不是CMS(Content Management System)内容管理系统。CMS是一套写好的架站系统,可以让你不需要写程式就可以架站。市面上流行成熟的CMS系统多为PHP写成,例如Drupal、WordPress等。当然也有用Ruby写的,例如Radiant。如果这些架站系统刚好符合你的需求,那就不一定需要Rails。
- Rails是一套网站开发框架帮助你建立网站应用程式,它不是程式语言。
什么是Ruby?
Rails是一套使用Ruby开发的网站框架。如果您对Ruby一无所知就一头栽进Rails,恐怕不是个好主意。
Ruby是一套开放原码、物件导向的动态直译式(interpreted)程式语言,它有着简单哲学、高生产力、精巧、自然的语法。他的创造者是来自日本的松本行弘(又名Matz),设计的灵感来自于Lisp、Perl和Smalltalk,设计的目的是要让程式设计师能够快乐地写程式。
让我们看一个非常简单的范例:
irb(main):001:0> str="aaaaa"
=> "aaaaa"
irb(main):002:0> 5.times {p str}
"aaaaa"
"aaaaa"
"aaaaa"
"aaaaa"
"aaaaa"
=> 5
这的范例就简单告诉我们有关Ruby的三件事情了:
- 动态分型(typing),不需要宣告型态
- 每样东西都是物件,包括数字
- 使用Code Block形式的匿名函式(anonymous function)随处可见
本文标题为:Ruby on Rails 简介
基础教程推荐
- R语言-如何将科学计数法表示的数字转化为文本 2022-11-23
- asm基础——汇编指令之in/out指令 2023-07-06
- R包ggtreeExtra绘制进化树 2022-12-14
- R语言基于Keras的MLP神经网络及环境搭建 2022-12-10
- Go web部署报错panic: listen tcp xxxxxxx:8090: bind: cannot assign requested address 2023-09-05
- swift版webview加载网页进度条效果 2023-07-05
- swift 字符串String的使用方法 2023-07-05
- ruby-on-rails-使用Nginx的Rails的多阶段环境 2023-09-21
- R语言数可视化Split violin plot小提琴图绘制方法 2022-12-10
- UEFI开发基础HII代码示例 2023-07-07