自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

1. Git

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

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

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

3. Mac

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

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

4. Homebrew

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

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

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

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

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

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

5. Pow

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

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

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

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

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

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

6. Rack

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

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

而因為有了 Pow,掛起 Rack-based 的網(wǎng)站實驗程式成本也很低廉。

同時因為採用 Rack 架構(gòu)開發(fā)的緣故,開發(fā)者可以透過 Rack middleware 外掛實作一些框架或程式?jīng)]有的功能。

比如說:

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

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

也很自然而然的會知道:

◆ 想惡搞,改 config.ru

◆ 想重開,touch tmp/restart.txt

這些潛規(guī)則。

7.Bundler

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

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

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

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

Bundler 中的 Gemfile 設(shè)計,不只能讓開發(fā)者能夠輕易的解決套件相依問題,并且可以直接引入「開發(fā)中」套件,解決 3rd gem 版本更新過慢,卡住自己開發(fā)進(jì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)頁程式時,開發(fā)者很常重復(fù)這樣的動作:寫一寫 -> run test -> refresh web browser -> 繼續(xù)修改 -> run test -> refresh browser

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

有沒有辦法只要「檔案變更,就自動作事」呢?

Guard 就是這樣的一套工具。

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

guard-livereload 就是一個例子。

9. LiveReload

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

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

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

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

10. Sass / SCSS / Compass

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

SCSS 的塬理是透過寫編寫「巢狀」的 style,取代塬本需要寫 CSS 時需要一直復(fù)製 DOM 結(jié)構(gòu)名稱的動作。并且支援變數(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。

有些人可能會搞不清楚 SASS / SCSS / Compass 的關(guān)係。如果你有興趣的話,可以參考我在 Upgrade2Rails31 這個 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. 每個程序員都應(yīng)該學(xué)習(xí)使用Python或Ruby
  4. Ruby趨于人性化 比Python更易閱讀?
  5. 關(guān)于Ruby/RoR我的體驗和看法
責(zé)任編輯:陳貽新 來源: 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è)計原則開發(fā)者

2011-12-30 15:55:00

Ruby

2021-04-08 10:40:24

前端工具代碼

2019-07-11 15:24:30

開發(fā)者技能工具

2019-06-27 10:15:46

架構(gòu)代碼項目

2013-10-23 09:24:12

開發(fā)者功能

2018-10-16 11:03:19

API開發(fā)者AR

2011-02-21 09:37:53

Web開發(fā) Firef

2011-03-24 09:25:54

程序員編程

2015-09-22 13:25:46

Web開發(fā)者HTML5工具

2023-11-30 15:30:19

Python編程語言

2017-05-16 15:03:16

Java開發(fā)者工具和框架

2013-07-29 11:11:33

C++C++11

2013-11-26 09:43:36

開發(fā)日志博客
點贊
收藏

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