スクリプト言語の場合、開発時にコンソールを利用する最も効果的な方法は何ですか? 「コンパイルして実行」のみの言語よりもコンソールで生産性を高める方法はありますか?
明確化の追加: 私は、Ruby、Python、Boo などの方針に沿ってより多くのことを考えています。本格的なアプリに使用される言語ですが、コンソールでコードの小さなスニペットを実行する方法もあります。
私はRubyの方針に沿ってもっと考えています...
Ruby にとって、irb
インタラクティブなプロンプトは単純なことを「練習」するための優れたツールです。irb の効果的な使用方法について説明します。
オートメーション。.irbrc
irb の起動時に自動的に実行されるファイルが許可されます。つまり、お気に入りのライブラリをロードしたり、必要なことを完全な Ruby で自動的に実行したりできます。私が何を意味するかを確認するには、dotfiles.orgでそれらのいくつかをチェックしてください。
オートコンプリート。これにより、コードの記述も容易になります。改行を削除する文字列メソッドを思い出せませんか? "".ch<tab>
チョップとチョップを生成します。 注: irb のオートコンプリートを自分で有効にする必要があります
分割統治。irb は小さなことをとても簡単にします。文字列を操作する関数を作成している場合、プロンプトでコードをインタラクティブにテストできるため、時間を大幅に節約できます。たとえば、irb を開いて、サンプル文字列で関数の実行を開始するだけで、ライブラリ/プログラム用に動作するテスト済みのコードを準備できます。
学習、実験、ハッキング。このようなものを C/C++ でテストするには、たとえ Java であっても非常に長い時間がかかります。それらを一度にすべてテストしようとすると、セグメンテーション違反が発生し、最初からやり直す必要があります。
ここでは、関数がどのようにString#[]
機能するかを学んでいます。
joe[~]$ irb
>> "12341:asdf"[/\d+/]
# => "12341"
>> "12341:asdf"[/\d*/]
# => "12341"
>> "12341:asdf"[0..5]
# => "12341:"
>> "12341:asdf"[0...5]
# => "12341"
>> "12341:asdf"[0, ':']
TypeError: can't convert String into Integer
from (irb):5:in `[]'
from (irb):5
>> "12341:asdf"[0, 5]
# => "12341"
テストとベンチマーク。今では、それらは素晴らしく、簡単に実行できます。 これは、迅速なベンチマークtime
のために Unix 機能をエミュレートするというアイデアです。それをファイルに追加するだけ.irbrc
で、常にそこにあります!
デバッグ- 私自身はあまり使用していませんが、このようなコードをデバッグする機能は常にあります。または、コードをいくつか取り出して irb で実行し、実際に何をしているかを確認します。
私はいくつかのことを見逃していると確信していますが、お気に入りのポイントを見つけました。シェルには本当に制限がないので、考えられることだけに制限されます。ほとんどの場合、いくつかのシェルを実行しています。Bash、Javascript、Ruby の irb などがあります。私はそれらを多くのことに使用しています!
使用している OS はわかりませんでしたが、Linux ではタブ付きウィンドウ マネージャー ( wmii ) を 1 年ほど使用しており、アプリケーション (コンソールなど) の使用方法が根本的に変わりました。
仮想デスクトップに 4 つ以上のコンソールやその他のアプリを使用することがよくありますが、wmii を使用すると、ウィンドウのサイズを変更してすべてを整列させる必要がありません。それらを垂直の列に並べ替えたり、垂直に積み重ねたり、垂直方向または水平方向のスペースを均等に共有したり、画面間で移動したりできます。
デスクトップで 2 つのコンソールを開いたとします。あなたはこれを手に入れるでしょう(cronkeyのアートワークをお詫びします):
----------------
| |
| 1 |
| |
----------------
----------------
| |
| 2 |
| |
----------------
今、私はそれらを並べて欲しい。ウィンドウ 2 で SHIFT-ALT-L を入力して右に移動し、2 つの列を作成します。
------- -------
| || |
| || |
| 1 || 2 |
| || |
| || |
------- -------
これで、別のコンソールを開いて取得できるようになりました
------- -------
| || 2 |
| || |
| | -------
| 1 | -------
| || 3 |
| || |
------- -------
次に、コンソール 3 を一時的にフルハイトで表示したいので、ALT キーを押して次のように取得します。
------- -------
| | -------
| || |
| 1 || 3 |
| || |
| || |
------- -------
コンソール 2 と 3 は積み重ねられています。
Windowsタグを付けることもできます。たとえば、コンソール 2 で ALT-SHIFT-twww+dev と言うと、そのコンソールは「www」と「dev」の仮想デスクトップに表示されます。(デスクトップがまだ存在しない場合は、作成されます。) さらに良いことに、コンソールは、それらのデスクトップごとに異なる視覚的構成 (たとえば、スタックおよびフルスクリーン) にすることができます。
とにかく、ここではタブ付きのウィンドウ マネージャーの正義を行うことはできません。それがあなたの環境に当てはまるかどうかはわかりませんが、この方法を試す機会があれば、おそらく後戻りはしないでしょう。
コンソール次第だと思います。Windows での CMD コンソールの有用性は、Powershell コンソールと比較して劣ります。
Control-Shift-C キーの組み合わせにショートカットを追加して、Visual Studio 2008 コンソールを起動しました。これだけでも、dll の登録やその他のコマンドを実行する必要があるときに、数え切れないほどの時間を節約できました。これを別のコマンド ツールで活用すると、生産性が大幅に向上する可能性があると思います。
冗談ですか?
私の Linux 環境では、コンソールは生命線です。私は bash スクリプトに堪能なので、コンソールは Python や Lisp の REPL に座っているようなものです。文字通り何でもできます。
私は実際に自分のチームが使用するツールを bash で作成していますが、コンソールはその開発を行うのに最適な場所です。私が実際に必要としているのは、物事を理解するためのバッキング ストアとしてのエディターだけです。