Clojure REPLは、言語の学習からデータ探索、ライブ音楽パフォーマンスまで、幅広い目的に使用されます。本章では、Clojure REPLを、より一般的なユースケースである実用的なソフトウェア開発に適用するための指針となる原則をいくつか紹介します。
プログラムは一般的に、さまざまなメディアを介してユーザーインターフェースを提供します
グラフィカル:Webページ、モバイルアプリ、デスクトップアプリ
ネットワークベース:Webサービス/ HTTP API /…
ストレージベース:プログラムはデータベースを最新の状態に保ち、クエリを実行できます
コマンドラインインターフェース(CLI):端末を介したインタラクションから
REPLは、ユーザーとプログラムのインタラクションのためのもう1つの媒体と考える必要があります。上記の媒体と比較して、高度な知識(Clojureでのプログラミング!)が必要ですが、コードのどの部分をユーザーが活用したいかをほとんど予測する必要がないため、非常に表現力豊かで開発コストも低くなります。たとえば、REPLは、*アドホック*なデータエクスポートに非常に適したUIです。
Clojureプロジェクトでは、REPLインタラクション専用に関数と名前空間を定義するのが一般的です。CLI、ダッシュボードなどの代替手段と考えてください。
REPLは大きな速度をもたらすことができますが、動きを kemajuan と間違えないでください。**_常に計画を持ってREPLに取り組む_**必要があります。そうでないと、REPLは集中力よりも注意散漫をもたらします。REPLを使用している間、計画を頭の中に留めておくのが難しい場合は、**_書き留めることを検討してください_**。
REPLは、非常に段階的な変更のみを案内します。これは、「局所的最大値」に陥りやすいです。より戦略的な思考が必要な場合は、一歩下がってください。特に、**_迅速なフィードバックは、ソフトウェア設計と体系的な問題解決の代わりにはなりません。_**
REPLは非常に一時的で排他的な媒体です。REPLセッションから持ち帰るものがある場合は、おそらく欠陥のある人間の記憶以外の場所に存在するはずです(たとえば、コード、テスト、コメントアウトされたコード、ドキュメント、データファイルなど)。
REPLで学んだことがプロジェクトの前提条件である場合は、他の貢献者(数か月後の自分自身を含む)がアクセスできるようにするための追加作業を行う必要があります。