Ruby on Rails简介
什么是Rails
Rails是Ruby on Rails的官方简称,非官方简称为RoR。在RubyOnRails的官网对Rails的定义是:Rails is a web application development framework written in the Ruby language. 翻译过来就是,Rails 是一个用Ruby语言写的,web应用开发的框架。
所谓web应用框架,是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。这种框架有助于减轻网页开发时共同性活动的工作负荷,例如许多框架提供数据库访问接口、标准样板及会话管理等,课提升代码的可再用性。
而Rails的存在,是为了相比于其他的语言或框架,你可以用更少的代码去完成相同的事情。而很多资深的Rails框架使用者也表示,使用这种框架开发更有乐趣。
Rails哲学的两种主要指导原则
DRY:Don’t Repeat Yourself (不要重复自己): DRY是软件开发的一个原则,它表示“系统的每一部分,必须有一个单一的,明确的,权威的表示,必须能够表达所应表达的内容,而不含重复的代码。这样使我们的代码由更好的可维护性、扩展性,且有更少的错误。
Convention Over Configuration (约定优于配置): Rails认为web应用程序中的很多操作都有最好的方式去完成,并将其设定为默认值,这使得程序员无需在配置文件中设置很多细节。如果你依照Rails的惯例,将会有令人惊艳的成果,但是对初学者可能会有点困难,例如,当你从一个已经存在的应用程序开始写,将会有很多隐藏的设定在应用程序的代码里。这些设定会让程序更加简洁,但是也会让初学者非常困惑。但是当你熟悉了这个惯例之后,将会有如虎添翼的效果。
什么是Ruby
Rails是一套使用Ruby开发的网站框架,因此要认识Rails,对Ruby有一定的了解也是必须的。
Ruby是个一种面向对象、命令式、函数式、动态的编程语言,在20世纪90年代中期由日本人松本行弘(Matz)设计并开发。Ruby有着简单哲学、高生产力、精巧、自然的语法,它的设计目的是要让程式设计师能够快乐的写程式。
静态语言和动态语言的差别在于,前者的变数型别需要事前宣告,后者则是执行器才动态决定。实务上的表现就是,Ruby可以被动态直译(就像PHP),所以没有编译(如C、Java),这加速了迭代式开发。一个Ruby程序可以动态产生程序,即使正在执行也可以修改。Rails内部就使用这个能力,来让你可以简单享受所谓的“Magic”。
为何选择Ruby
Ruby是一套非常重视使用性(Usability)的编程语言,非常看重代码的可读性及维护性。Matz在设计Ruby的时候,就特别考量一般人容不容易了解,这也是为什么我们常常会听到Ruby的代码自然简洁又漂亮。
Ruby也是目前做Domain-specific language(DSL),特别是Internal DSL最为成功的语言。透过DSL,代码不但可以拥有非常好的可读性,也可以大幅增加生产力。
Rails 优势:
Rails是包装功能,更有效率,许多基础上另一个具有以下特点。
元编程 : 其他框架使用大量的代码生成从零开始。使用元编程技术方案编写程序。 Ruby是的元编程最好的语言之一,Rails使用此功能。Rails的也采用代码生成,元编程繁重,但更依赖。
活动记录 : Rails 介绍活动记录的框架,这将对象保存到数据库。活动记录发现 Rails版本的数据库架构中的列,并自动附加到对象域使用元编程。
约定优于配置: 大多数Web开发框架.NET或Java,迫使写配置代码的页面。如果遵循建议的命名约定时,Rails不需要太多的配置。
脚手架: 经常在发展的早期阶段,以帮助应用程序快速创建临时代码,主要组成部分是如何一起工作。 Rails自动创建很多需要的脚手架。
内置测试: Rails创建简单的自动化测试,也可以扩展。Rails也提供支持所谓的安全带及装置,使更容易编写和运行测试用例的代码。 Ruby可以执行所有耙子实用程序的自动化测试。
三种环境: Rails 提供了三种默认的环境:开发,测试和生产。每个人的行为方式略有不同,更容易使整个软件开发周期。例如,Rails的测试数据库中创建一个新的副本,每个测试运行。
MVC框架简介
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。
是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
- Model(模型):处理数据及业务逻辑,通常负责对数据库进行存取操作。
- View(视图):显示用户界面,处理数据显示,通常依据模型数据来创建。
- Controller(控制器):处理用户请求及应用逻辑,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。