“vagrant up” の逆が “vagrant down” ではない理由

開発環境を自由に作って壊して管理して配布できる Vagrant
大いに注目されてますね。

up の反対が down じゃない

さてこの Vagrant で仮想環境を起動するコマンドは vagrant up なので
終了するときは down だろうと思ったんだけど、違うんですねこれが。

vagrant down としても
「そんなコマンドないよ」という意味でヘルプが出ます。

理由を聞いてみた

先日、Vagrant 作者の @mitchellh さんと話す機会があったので
「vagrant up の反対が vagrand down じゃないのはなぜ?」
と聞いてみたら、その答えは

It was.

でした。
以前はそうだった、とのこと。

ただ、down だと混乱が生じるからやめたそうです。

確かに、仮想マシン (VM) を起動する vagrant up
反対の動作をするコマンドは複数あります。

halt
VM をシャットダウンする
suspend
VM をサスペンドする
destroy
VM を削除する

言葉として up の反対は down だけど、
それだとその動作が halt なのか destroy なのかわからない。
ユーザーを混乱させてしまうので、down コマンドは削除したそうです。

名前の相応しさについて

これは Vagrant だけの話じゃなくて
インターフェイスというものを考えるとき
大変参考になるな、と思いました。

何かと言葉が気になる質なので
つい言葉としての収まりの良さを求めてしまうんだけど、
それによって誤解が生じうるようなら
それはふさわしい選択ではない、ということですね。

これ『リーダブルコード』でも言われてたやつだ。


リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

謎が解けました

「なるほど、だから down が halt になったんですね」
「いや、halt じゃなくて destroy です。ほら、間違うでしょ。」

あ。

  • このエントリーをはてなブックマークに追加