開発哲学

目次

趣旨

コマンドラインの有効性は、いわずもがなであり、であるからして、学ぶことを避けることはできない。

はじめは、わからないコマンドだらけである。

なにもしらない状態からコマンドラインを学びはじめるという立場で素早く学ぶためにはという視点で考えてみる。

[問題点]

何も知らない状態で、最初に使うときの問題点

コマンドラインはアルファベットの小文字で始まると仮定するならば、 27分の1の約4%の正解率である。

コマンドラインが2文字ならば、4%の4%だから、0%に近づく つまり、2文字のコマンドラインはまぐれでは使えないのだ。

パラメータがわからない状態での問題点

コマンドは引数を持つ場合がほとんどであるが、 引数のフォーマットがわからないことがほとんどである。

コマンドが使い方例を表示して終了。。。となれば、まだいい方で、単にエラーと表示されるだけのコマンドがあり、説明書をとりださなくてはならなくなるのだ。

少なくとも、ヘルプオプションスイッチは用意しておくべきだろう。

それか、コマンドラインによる引数を廃止し、各オプションスイッチの引数を対話方式で入力させるといった方法が良いのではないだろうか?

状態遷移が必要なものへの対処

説明を簡単にするため、下記の定義をします。

現在の状態をノードAとここでは定義します。

目的の状態をノードBとここでは定義します。

同様に中間の状態などを、ノードCとかと定義します。

では説明をします。

コマンドラインが得意なのは、あるノードから、あるノードへの状態遷移がシンプルな場合である。

しかし、中間のノードCを挟まなくてはならない場合。コマンドラインから状態Bに遷移せよと命令しても、状態Cからでしか遷移できないため、エラーとなります。

状態Aの場合のルートを示すエラーならば良いのですが、 ユーザは状態Cにする方法がわかりません。 それをしらべなくてはならず、いろいろな文献を探し始めなくてはならなくなります。 その時点でコマンドラインの利点が失われてしまうわけです。

[対策]

使えるコマンドラインの一覧を得る方法

ヘルプの目次をしらべたりしなくてはならないのだろうと思う。 アルファベット順で構成されている一覧のメリットは、既に使われているコマンドの意味を調べる時に必要.

ただし、途中で使われている単語が、固有の場合かどうかを調べるときに使う場合、ヘルプが紙で用意されていると検索ができない。

したがって、例文が掲載されている電子化された媒体が調べるのに便利だろう。

[例文にたどり着くまで]

しかしそれは、使った例が判明している場合に便利なのであって、その例文にたどり着くためにはいくつかの道がある

サンプルを片っ端から検証するのは、ほとんど0%しか見つからないだろう。

だいたいのコマンドを分類して評価していないと使えない

逆引きの辞書があれば良いかもしれないが、準備する際にデメリットがある。

人に教えてもらう

知り合いで使いこなしている人がいるならば、コマンドヒストリを見せてもらえないか頼んでみる。 ヒストリには、有効な例文としての価値があるし、業務に必要なコマンドに絞られているという意味で価値があるのだ。 にたような作業をしている人の逆引きならば、個人レベルで簡単に作ることができるかもしれない。

[個人で逆引きを作成する際のデメリット]

逆引きは個人で作成しようとすると、全てのコマンドを相手に辞書をつくる羽目になってしまう、

利用者は目的に会ったコマンドをしりたいだけなのだ。利用することのないコマンドの資料は作りたくはないのである。

個人でつくると、小さくまとめたいが、小さくまとめるためのもとになる知識が必要という矛盾を持っている。

個人でやると、網羅性が乏しくなりがちなので、専門性をもってまとめていくしかないだろう。

[書籍の逆引きのデメリット] では、謎の慈善団体が個人のために逆引きを作ってくれるのを、天に祈るというのはどうだろうか?

本屋に並ぶのを待つというのはどうだろう、商業ベースにのるには、大多数の人間が使うレベルのコマンドだ。

それに本になっている時点で紙ベースであるし、コマンドを増やすには不向きだろう。

何も知らない状態で、最初に使うときの問題点として引数も問題がある

一応似たような問題に対する処理がまとまっているものの

まぐれで出会った、コマンドラインも、引数にとって良い値が不明である。

引数が異なれば、コマンドは違う働きをするのだから、違うコマンドだと考えることができる そうなるると一覧は膨大な数が自体だと考えることができるが、そうなると管理は大変である。

結論

コマンドのフォーマットエラーは、フォーマットを表示するように心がけよう。

コマンドは、状態遷移が必要なモノを対象にする場合は、ヒントを表示するようにしよう。

熟練者のコマンドのヒストリーを読む練習を心がけよう

熟練者は、自分のコマンドのヒストリーを共有化するように心がけよう。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-11-13 (日) 16:49:42 (3627d)