## Bundler
* <a name="dev-test-gems"></a>
只在開發環境或測試環境下使用的 gem 應進行適當的分組。
<sup>[[link](#dev-test-gems)]</sup>
* <a name="only-good-gems"></a>
在項目中只使用廣為人知的 gem。如果你考慮引入某些鮮為人所知的 gem,應該先仔細檢查一下其源代碼。
<sup>[[link](#only-good-gems)]</sup>
* <a name="os-specific-gemfile-locks"></a>
關于多個開發者使用不同操作系統的項目,與操作系統有關的 gem 默認情況下會產生經常變動的 `Gemfile.lock`。 在 Gemfile 文件里,所有與 OS X 相關的 gem 放在 `darwin` 群組,而所有與 Linux 有關的 gem 應放在 `linux` 群組:
<sup>[[link](#os-specific-gemfile-locks)]</sup>
```Ruby
# Gemfile
group :darwin do
gem 'rb-fsevent'
gem 'growl'
end
group :linux do
gem 'rb-inotify'
end
```
要在正確的環境下加載合適的 gem,需添加以下代碼至 `config/application.rb` :
```Ruby
platform = RUBY_PLATFORM.match(/(linux|darwin)/)[0].to_sym
Bundler.require(platform)
```
* <a name="gemfile-lock"></a>
不要把 `Gemfile.lock` 文件從版本控制里移除。這可不是一個隨機產生的文件——它的目的是確保你所有的團隊成員執行 `bundle install` 時,獲得相同版本的 gem 。
<sup>[[link](#gemfile-lock)]</sup>