新手问题 新手应该注意的一些 ruby rails 概念

rails_on_ll · February 29, 2016 · Last by kirahu replied at March 02, 2016 · 2738 hits

抄自http://henter.me/post/ruby-rvm-gem-rake-bundle-rails.html 刚刚在网上查找了这些知识,觉得写得满好,就拿过来给群里的同学分享下。

最近在看一个 Rails 项目,渐渐的接触到 Ruby 语言,其中有些概念之前比较混乱,模棱两可,相信也有人跟我一样,刚开始学 ruby 时对这些概念不太清晰,现在整理一下。

Ruby

这个就不用多说了

RVM

用于帮你安装 Ruby 环境,帮你管理多个 Ruby 环境,帮你管理你开发的每个 Ruby 应用使用机器上哪个 Ruby 环境。Ruby 环境不仅仅是 Ruby 本身,还包括依赖的第三方 Ruby 插件。都由 RVM 管理。

Rails

这个也不用多说,著名开发框架。详细看 http://zh.wikipedia.org/wiki/Ruby_on_Rails

RubyGems

RubyGems 是一个方便而强大的 Ruby 程序包管理器(package manager),类似 RedHat 的 RPM.它将一个 Ruby 应用程序打包到一个 gem 里,作为一个安装单元。无需安装,最新的 Ruby 版本已经包含 RubyGems 了。

Gem

Gem 是封装起来的 Ruby 应用程序或代码库。

注:在终端使用的 gem 命令,是指通过 RubyGems 管理 Gem 包。

Gemfile

定义你的应用依赖哪些第三方包,bundle 根据该配置去寻找这些包。

Rake

Rake 是一门构建语言,和 make 类似。Rake 是用 Ruby 写的,它支持自己的 DSL 用来处理和维护 Ruby 程序。Rails 用 rake 扩展来完成多种不容任务,如数据库初始化、更新等。

Rake is a build language, similar in purpose to make and ant. Like make and ant it's a Domain Specific Language, unlike those two it's an internal DSL programmed in the Ruby language.

PS:个人感觉有点类似 Symfony2 中的 app/console

详细 http://rake.rubyforge.org/

Rakefile

Rakefile 是由 Ruby 编写,Rake 的命令执行就是由 Rakefile 文件定义。

In a gem’s context, the Rakefile is extremely useful. It can hold various tasks to help building, testing and debugging your gem, among all other things that you might find useful.

详细:http://rake.rubyforge.org/files/doc/rakefile_rdoc.html

Bundle

相当于多个 RubyGems 批处理运行。在配置文件 gemfilel 里说明你的应用依赖哪些第三方包,他自动帮你下载安装多个包,并且会下载这些包依赖的包。

Bundler maintains a consistent environment for ruby applications. It tracks an application's code and the rubygems it needs to run, so that an application will always have the exact gems (and versions) that it needs to run.

新手的话,更应该深入了解一下 MVC 和 assets pipeline 吧。

整理的还行,不过并没有什么用 - -

二楼 + 1

楼主西安的啊,支持

#4 楼 @kikyous 西安算是第二故乡了,在西安上了七年学

我觉得挺好的,新人一开始就知道这些概念对刚开始学习还是有比较大的作用的。虽然这些对于老鸟来说是基本到不能在基本的东西了。但是对于刚入这个领域的人来说,首先知道常用东西的概念是很有必要的。虽然在学习过程中这些都会慢慢接触到。但是一开始有一个大概的印象我觉得对学习过程来说还是能有不少帮助的。至少能减少些挫折感(比如觉得有很多概念)。

举个最简单的例子,比如大家炒股,对于新入股市的人来说,“套牢”、“大盘”、“蓝筹股”这些概念肯定不熟悉,但是这些又是很多股市分析中常用到的名词,如果你在学习炒股前期就大概知道这些名词的意思,我相信你在学习炒股和看相关分析的时候,肯定更为容易一些。

所以对于这些基本概念的汇集我觉得并不是完全没有什么用的。所以我觉得大家对“有用”标准不要那么太高了,毕竟面向的对象不同。 @kirahu @easonlovewan @pengedy 你们说是么?

而且我觉得,如果大家觉得这个并不是真正重要的,那或许应该告诉他哪些才是更重要的,至少也给别人一个方向,这样至少比回复“这个并没有什么用”有用多了。

#7 楼 @redemption 对,完全赞同。 我是根据自己学习时候的体验讲的,确实感觉需要在理解 MVC 和 assets pipeline 上花费更多时间和精力。我并没有说以上这些没有用啊... >_<

#8 楼 @pengedy 我顺手就@ 了,抱歉了 😄

我的意思是知道这些概念,还是没有进 ruby 开发的门。楼主可以说下自己的入门心得吗?

You need to Sign in before reply, if you don't have an account, please Sign up first.