not good but great

プログラミング、アート、映画・本の感想について書きます。

よく聞くBundle,Gem,Rackの意味を調べた

基本用語をおさらい

BundleとかGemとかいろいろ出てきてわからないので、調べてみました。

・参考
Bundlerを使ったGemパッケージの管理 - Ruby on Rails入門
第23回 Rackとは何か(1)Rackの生まれた背景:Ruby Freaks Lounge|gihyo.jp … 技術評論社

Gem

Rubyで使われるライブラリはGemというパッケージで管理されています。

Bundler

Gemでライブラリをインストールしたのは良いものの、複数人で開発するときは、全員が同じバージョン、ライブラリを入れておく必要があります。個々で「gem install」するのも良いですが、そこは一括管理したいもの。そこで使われるのがBundlerです。BundlerはGemパッケージの種類やバージョンを管理し、複数のPCで必要なGemパッケージをインストールする仕組みを提供してくれます。

Rack

まずPythonのためのWebサーバとWebアプリケーション/フレームワーク間の標準インターフェースを定める「仕様」であるWSGIについて説明します。PythonのWebアプリケーションフレームワークはかつて(今も?)乱立されていました。個々のフレームワークは独自のWebサーバを使っていたために、途中で他のフレームワークに変更することが難しい状態でした。そこで標準インタフェースとして生まれたのが、WSIGです。WSGIに対応しているフレームワークとWebサーバを使えば、組み合わせを自由にしてアプリケーションの開発を行うことが出来ます。

RackはRubyで言うところのWSGIに当たります。

様々なアプリケーションサーバフレームワークが開発されても,双方がRackを使用してインターフェース部分を実装していさえすれば,既存のWebアプリケーションをサーバ側の構成を変えることなく新しいフレームワークでリプレイスしたり,あるフレームワークで実装されたアプリケーションを様々な環境に移したり,といったことが容易になります。