1. Git
Git是进入Ruby这个生态圈首先最应该学会的工具。几乎所有以Ruby开发出来的套件都放在Github上。也就是不管你要下载或修改协作都需要透过Git。
2. RVM
Ruby有很多种implementation,比较多人在使用的有
◆ 标準的MRI Ruby 1.8.7
◆ 标準的MRI Ruby 1.9.2
◆ REE (Ruby Enterprise Edition)
◆ JRuby等等
其实你用哪一种版本开发都无所谓,不过目前有一些project 只能在 Ruby 1.9.2 上执行。切换 Ruby 环境跑实验 project 在之前的时代是一件很痛苦的事。
所以有人发明了RVM,让开发者可以无痛的可以切换各种Ruby环境,甚至透过RVM制造出独立的Gemset环境,无负担的尽情实验新工具。
3. Mac
不可否认的开发Ruby程式,Mac是第一首选环境。
最初的原因是撰写Ruby / Rails 的利器: TextMate http://marcomates.com/ ,是 Mac 上的软体。而后来使用 Mac 开发 Ruby 程式的开发者越来越多,更加深这种情况, 造成一些实战best practices以及友善的开发工具,几乎都以Mac为优先或唯一平台发佈,如:Pow与Homebrew。
4. Homebrew
原先在Mac上,套件管理几乎是Macports与Fink的天下。但这两者因为dependency处理不佳,加上需要sudo执行。某些时候会造成套件管理上的灾难。 在OSX 10.6之后的时代,就逐渐被后起之秀Homebrew取代。
Homebrew有两大极优秀之点:
by user,不需sudo就可以安装套件。不会把档案权限搞得一团脏。
更新迅速以及乾净。Homebrew是git-based的fomula sets,透过预设的fomula安装程式。
安装时如果发现有错误,可以自行修改,并透过Github的功能发pull request要求管理者patch。用Homebrew建置出来的Rails开发环境通常极为乾净且无恼人的套件bug。
(Rails developer最常会撞雷的两大套件:MySQL与ImageMagick在brew上装,几乎没什么问题…)[註1]
5. Pow
这是由37signals所开发出来的网页伺服器,可以跑任何Rack Based的网页程式。特点是,你可以把某个开发中的project,如:wiki,symlink到自己的家目录底下的.pow/资料夹。
以下是引用片段: $ cd ~/.pow $ ln -s ~/projects/wiki |
再打开浏览器上的http://wiki.dev/,就可以把projects挂起来了。
(原理是拦截对port 80上的request导回Pow)
在从前,如果你要挂上projects,通常得自己改local的apache conf和/etc/hosts加上设定。挂起、移除、重开都非常麻烦。
而Pow的诞生,让常常追许多新玩意的开发者,实验的成本变得极度低廉。
6. Rack
Rack 是一个Ruby套件,也同时是Ruby界的网页程式标准interface。背后的想法与塬理可以参考我以前写的一篇旧文Rack与Rack middleware。
现在只要看以Ruby开发的网站程式,几乎都支援Rack。不会再有以前哪一套框架,推荐独家使用哪一套web server跑的乱象。
而因为有了Pow,挂起Rack-based的网站实验程式成本也很低廉。
同时因为採用Rack架构开发的缘故,开发者可以透过Rack middleware外挂实作一些框架或程式没有的功能。
比如说:
◆ rack-now-www硬是干掉网址的www
◆ rack-rewrite在不支援.htaccess的环境下,直接使用rack硬rewrite routing
也很自然而然的会知道:
◆ 想恶搞,改 config.ru
◆ 想重开,touch tmp/restart.txt
这些潜规则。
7.Bundler
Bundler塬先是Rails3架构师Yehuda Katz开发出来解决Rails中package dependency的工具(在开发Merb这个framework时,Katz就开始尝试实作了)。
package dependency一直是相当麻烦的问题。解不开,就无法将程式boot起来。
塬先大家也只有拿Bundler搭配Rails使用。
而后来Bundler也逐渐变成一般Ruby程式中预设的套件dependency管理程式。
Bundler中的Gemfile设计,不只能让开发者能够轻易的解决套件相依问题,并且可以直接引入「开发中」套件,解决 3rd gem 版本更新过慢,卡住自己开发进度的问题。
以下是引用片段: gem ‘nokogiri’, :git => ‘git://github.com/tenderlove/nokogiri.git’ gem ‘nokogiri’, :git => ‘git://github.com/tenderlove/nokogiri.git’,:branch => ‘stable-2’ gem ‘nokogiri’, :git => ‘git://github.com/tenderlove/nokogiri.git’,:tag => ‘tag-2’ gem ‘nokogiri’, :git => ‘git://github.com/tenderlove/nokogiri.git’,:ref => ‘23456’ |
8. Guard
在开发网页程式时,开发者很常重复这样的动作:写一写 ->run test->refresh web browser->继续修改->run test->refresh browser
这些都是很机械式的行为,非常烦人。
有没有办法只要「档案变更,就自动作事」呢?
Guard就是这样的一套工具。
有趣的是,Guard刚推出时,其实也只单纯是一套监视档案工具变动的工具,你可以透过写Guardfile,去自由监视需要监视的资料夹,再do something。而因为Guard架构算设计的不错,后来许多开发者更基于Guard做出更多其他的rubygems。
guard-livereload就是一个例子。
9. LiveReload
修改网页=>refresh browser是刚刚所提到的烦人事之一。
LiveReload提供了监视档案变动,并通知browser reload的功能。
开发者如果萤幕够大的话,可以同时开着文字编辑器与browser,修改的任何变动马上即时显示在browser上。
值得一提的是,LiveReload在10.7以后是broken的。因此后来有人利用guard实作出了guard-livereload作为替代品。
10. Sass/SCSS/Compass
自从Rails 3.1引入SCSS作为Asset Pipeline当中的选项之后,这套本来没多少开发者知道的CSS framework就开始疯狂走红。
SCSS的塬理是透过写编写「巢状」的style,取代塬本需要写CSS时需要一直复製DOM结构名称的动作。并且支援变数、数学、继承、mixin等功能…
如:
SCSS
以下是引用片段: $border-color: #3bbfce; $link-color: #3bbfcf; .content { border-color: $border-color; a{color: $link-color} } |
可以生成
CSS
以下是引用片段: .content{ border-color: #3bbfce; } .content a{color: #3bbfcf; } |
而Comass是基于SCSS的Framework。提供了更进一步的许多暴力feature。
有些人可能会搞不清楚SASS/SCSS/Compass的关係。如果你有兴趣的话,可以参考我在Upgrade2Rails31这个project中写的两篇文章:Sass/SCSS以及Compass。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
2014年web开发者应该学习的技术盘点
web开发行业发展迅速,每天总有新的技术、框架、语言或技术方法诞生,对大部分人来说都喜欢学习“所有东西”,但这不符合实际!所以,在2014年,作为Web开发者应该学习什么呢?
-
QA技能差距:测试人员需足够的编写测试脚本的能力
如果QA专业人员都需要具备一项技能的话,那就是编写测试脚本的能力。因为测试人员来希望获得自动化测试逻辑结果,这就需要QA测试专家来编写软件能够执行的测试脚本。
-
Ruby 2.1发布 带来新的垃圾收集器
Ruby 2.1正式版已经发布,带来了很多预期的改进,其中包括对垃圾收集器的大幅改动,这一改进将在现在和未来带来一些性能提升。
-
Github项目中使用率最高的Java/Ruby/JS库
提到开源,相信不少人会想到Github,目前它的托管数量已经超过了一百万。上面几乎涵盖了各种类型的项目库,当然,参与贡献的开发者数量也是极多。