偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Ruby開發(fā)者應(yīng)該熟悉的10個(gè)工具

開發(fā) 后端 前端
原本是承諾讀者要整理一篇我常用的工具集,后來(lái)想想其實(shí)應(yīng)該要改成來(lái)寫一篇:「十個(gè)Ruby Web Developer應(yīng)該熟悉的工具」。

1. Git

Git 是進(jìn)入Ruby 這個(gè)生態(tài)圈首先最應(yīng)該學(xué)會(huì)的工具。幾乎所有以Ruby 開發(fā)出來(lái)的套件都放在Github 上。也就是不管你要下載或修改協(xié)作都需要透過(guò)Git。

2. RVM

Ruby 有很多種 implementation,比較多人在使用的有

◆ 標(biāo)準(zhǔn)的 MRI Ruby 1.8.7

◆ 標(biāo)準(zhǔn)的 MRI Ruby 1.9.2

◆ REE ( Ruby Enterprise Edition)

◆ JRuby 等等

其實(shí)你用哪一種版本開發(fā)都無(wú)所謂,不過(guò)目前有一些project 只能在 Ruby 1.9.2 上執(zhí)行。切換 Ruby 環(huán)境跑實(shí)驗(yàn) project 在之前的時(shí)代是一件很痛苦的事。

所以有人發(fā)明了RVM,讓開發(fā)者可以無(wú)痛的可以切換各種Ruby 環(huán)境,甚至透過(guò)RVM 制造出獨(dú)立的 Gemset 環(huán)境,無(wú)負(fù)擔(dān)的盡情實(shí)驗(yàn)新工具。

3. Mac

不可否認(rèn)的開發(fā)Ruby 程式,Mac 是第一首選環(huán)境。

最初的原因是撰寫Ruby / Rails 的利器: TextMate http://marcomates.com/ ,是 Mac 上的軟體。而后來(lái)使用 Mac 開發(fā) Ruby 程式的開發(fā)者越來(lái)越多,更加深這種情況, 造成一些實(shí)戰(zhàn) best practices 以及友善的開發(fā)工具,幾乎都以 Mac 為優(yōu)先或唯一平臺(tái)發(fā)佈,如:Pow 與 Homebrew。

4. Homebrew

原先在Mac 上,套件管理幾乎是 Macports 與 Fink 的天下。但這兩者因?yàn)?dependency 處理不佳,加上需要 sudo 執(zhí)行。某些時(shí)候會(huì)造成套件管理上的災(zāi)難。 在 OSX 10.6 之后的時(shí)代,就逐漸被后起之秀 Homebrew 取代。

Homebrew 有兩大極優(yōu)秀之點(diǎn):

by user,不需 sudo 就可以安裝套件。不會(huì)把檔案權(quán)限搞得一團(tuán)臟。

更新迅速以及乾凈。Homebrew 是 git-based 的 fomula sets,透過(guò)預(yù)設(shè)的 fomula 安裝程式。

安裝時(shí)如果發(fā)現(xiàn)有錯(cuò)誤,可以自行修改,并透過(guò) Github 的功能發(fā) pull request 要求管理者 patch。用 Homebrew 建置出來(lái)的 Rails 開發(fā)環(huán)境通常極為乾凈且無(wú)惱人的套件 bug。

( Rails developer 最常會(huì)撞雷的兩大套件:MySQL 與 ImageMagick 在 brew 上裝,幾乎沒(méi)什么問(wèn)題…)[註1]

5. Pow

這是由 37signals 所開發(fā)出來(lái)的網(wǎng)頁(yè)伺服器,可以跑任何 Rack Based 的網(wǎng)頁(yè)程式。特點(diǎn)是,你可以把某個(gè)開發(fā)中的 project,如:wiki,symlink 到自己的家目錄底下的 .pow/ 資料夾。

  1. $ cd ~/.pow  
  2. $ ln -s ~/projects/wiki 

再打開瀏覽器上的 http://wiki.dev/,就可以把 projects 掛起來(lái)了。

(塬理是攔截對(duì) port 80 上的 request 導(dǎo)回 Pow)

在從前,如果你要掛上 projects,通常得自己改 local 的 apache conf 和 /etc/hosts 加上設(shè)定。掛起、移除、重開都非常麻煩。

而 Pow 的誕生,讓常常追許多新玩意的開發(fā)者,實(shí)驗(yàn)的成本變得極度低廉。

6. Rack

Rack 是一個(gè) Ruby 套件,也同時(shí)是 Ruby 界的網(wǎng)頁(yè)程式標(biāo)準(zhǔn)interface。背后的想法與塬理可以參考我以前寫的一篇舊文 Rack 與 Rack middleware。

現(xiàn)在只要看以 Ruby 開發(fā)的網(wǎng)站程式,幾乎都支援 Rack。不會(huì)再有以前哪一套框架,推薦獨(dú)家使用哪一套 web server 跑的亂象。

而因?yàn)橛辛?Pow,掛起 Rack-based 的網(wǎng)站實(shí)驗(yàn)程式成本也很低廉。

同時(shí)因?yàn)閽?cǎi)用 Rack 架構(gòu)開發(fā)的緣故,開發(fā)者可以透過(guò) Rack middleware 外掛實(shí)作一些框架或程式?jīng)]有的功能。

比如說(shuō):

◆ rack-now-www 硬是干掉網(wǎng)址的 www

◆ rack-rewrite 在不支援 .htaccess 的環(huán)境下,直接使用 rack 硬 rewrite routing

也很自然而然的會(huì)知道:

◆ 想惡搞,改 config.ru

◆ 想重開,touch tmp/restart.txt

這些潛規(guī)則。

7.Bundler

Bundler 塬先是 Rails3 架構(gòu)師 Yehuda Katz 開發(fā)出來(lái)解決 Rails 中 package dependency 的工具( 在開發(fā) Merb 這個(gè) framework 時(shí),Katz 就開始嘗試實(shí)作了)。

package dependency 一直是相當(dāng)麻煩的問(wèn)題。解不開,就無(wú)法將程式 boot 起來(lái)。

塬先大家也只有拿 Bundler 搭配 Rails 使用。

而后來(lái) Bundler 也逐漸變成一般 Ruby 程式中預(yù)設(shè)的套件 dependency 管理程式。

Bundler 中的 Gemfile 設(shè)計(jì),不只能讓開發(fā)者能夠輕易的解決套件相依問(wèn)題,并且可以直接引入「開發(fā)中」套件,解決 3rd gem 版本更新過(guò)慢,卡住自己開發(fā)進(jìn)度的問(wèn)題。

  1. gem 'nokogiri':git => 'git://github.com/tenderlove/nokogiri.git' 
  2. gem 'nokogiri':git => 'git://github.com/tenderlove/nokogiri.git',:branch => 'stable-2' 
  3. gem 'nokogiri':git => 'git://github.com/tenderlove/nokogiri.git',:tag => 'tag-2' 
  4. gem 'nokogiri':git => 'git://github.com/tenderlove/nokogiri.git',:ref => '23456' 

8. Guard

在開發(fā)網(wǎng)頁(yè)程式時(shí),開發(fā)者很常重復(fù)這樣的動(dòng)作:寫一寫 -> run test -> refresh web browser -> 繼續(xù)修改 -> run test -> refresh browser

這些都是很機(jī)械式的行為,非常煩人。

有沒(méi)有辦法只要「檔案變更,就自動(dòng)作事」呢?

Guard 就是這樣的一套工具。

有趣的是,Guard 剛推出時(shí),其實(shí)也只單純是一套監(jiān)視檔案工具變動(dòng)的工具,你可以透過(guò)寫 Guardfile,去自由監(jiān)視需要監(jiān)視的資料夾,再 do something。而因?yàn)?Guard 架構(gòu)算設(shè)計(jì)的不錯(cuò),后來(lái)許多開發(fā)者更基于 Guard 做出更多其他的 rubygems。

guard-livereload 就是一個(gè)例子。

9. LiveReload

修改網(wǎng)頁(yè) => refresh browser 是剛剛所提到的煩人事之一。

LiveReload 提供了監(jiān)視檔案變動(dòng),并通知 browser reload 的功能。

開發(fā)者如果螢?zāi)粔虼蟮脑?,可以同時(shí)開著文字編輯器與 browser,修改的任何變動(dòng)馬上即時(shí)顯示在 browser 上。

值得一提的是,LiveReload 在 10.7 以后是 broken 的。因此后來(lái)有人利用 guard 實(shí)作出了 guard-livereload 作為替代品。

10. Sass / SCSS / Compass

自從 Rails 3.1 引入 SCSS 作為Asset Pipeline 當(dāng)中的選項(xiàng)之后,這套本來(lái)沒(méi)多少開發(fā)者知道的 CSS framework 就開始瘋狂走紅。

SCSS 的塬理是透過(guò)寫編寫「巢狀」的 style,取代塬本需要寫 CSS 時(shí)需要一直復(fù)製 DOM 結(jié)構(gòu)名稱的動(dòng)作。并且支援變數(shù)、數(shù)學(xué)、繼承、mixin 等功能…

如:

SCSS

  1. $border-color: #3bbfce;  
  2.   $link-color: #3bbfcf;  
  3.   .content  
  4.      { border-color: $border-color;  
  5.        a{color: $link-color}  
  6.   } 

可以生成

CSS

  1. .content{ border-color#3bbfce; }  
  2. .content a{color#3bbfcf; } 

而 Comass 是基于 SCSS 的 Framework。提供了更進(jìn)一步的許多暴力 feature。

有些人可能會(huì)搞不清楚 SASS / SCSS / Compass 的關(guān)係。如果你有興趣的話,可以參考我在 Upgrade2Rails31 這個(gè) project 中寫的兩篇文章:Sass/SCSS 以及 Compass。

原文:http://blog.xdite.net/posts/2011/10/09/10-ruby-developer-must-have-tools/

【編輯推薦】

  1. JRuby和Java 7 我們可以期待什么
  2. Perl、PHP、Python、Java和Ruby的比較
  3. 每個(gè)程序員都應(yīng)該學(xué)習(xí)使用Python或Ruby
  4. Ruby趨于人性化 比Python更易閱讀?
  5. 關(guān)于Ruby/RoR我的體驗(yàn)和看法
責(zé)任編輯:陳貽新 來(lái)源: http://blog.xdite.net
相關(guān)推薦

2016-12-26 11:00:57

Java開發(fā)者工具

2011-07-15 10:02:01

JavaScript

2017-04-12 09:42:29

Java開發(fā)工具

2012-11-13 10:34:03

PythonWeb

2012-10-11 10:43:26

開發(fā)SQL

2019-11-20 12:09:01

JavaScriptGitHub工具

2015-08-11 11:01:22

設(shè)計(jì)原則開發(fā)者

2021-04-08 10:40:24

前端工具代碼

2011-02-21 09:37:53

Web開發(fā) Firef

2011-03-24 09:25:54

程序員編程

2011-12-30 15:55:00

Ruby

2019-07-11 15:24:30

開發(fā)者技能工具

2013-10-23 09:24:12

開發(fā)者功能

2018-10-16 11:03:19

API開發(fā)者AR

2019-06-27 10:15:46

架構(gòu)代碼項(xiàng)目

2015-09-22 13:25:46

Web開發(fā)者HTML5工具

2023-11-30 15:30:19

Python編程語(yǔ)言

2013-11-26 09:43:36

開發(fā)日志博客

2015-03-10 09:23:21

前端開發(fā)Sublime插件Sublime

2013-07-29 11:11:33

C++C++11
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)