📝REPL駆動開発

📝REPL駆動開発

REPLとは #

REPLとは以下の略.

  • read
  • evaluate
  • print
  • loop

REPLの説明は以下がわかりやすかった. 少し抜粋.

ref: 🔗REPL Driven Programming - tyano’s Techlog

REPLでnamespaceを読み込むということは簡易実行環境ではなく あなたが書いたプログラム内部に潜り込んでコンソールを開いた状態 そのもの. Clojureにインタープリタは存在しない. 関数をバイトコードにして実行するのみ.


Road to Common Lispの中で Lisp as a System という章も,例題がCommon Lispではあるものの実体はRDD.

  1. Lispプロセスを起動。
  2. プロジェクトを読み込む。
  3. コードをエディタで編集。
  4. 動作中のプロセスに、編集したコードだけをコンパイルさせる。
  5. プロセス中の変更したコードと対話。 REPL や HTTP request などを通して行う。
  6. 出力を調査 (コンソール、ブラウザなどで)。3に戻る。

Common Lispを書くことは、生物や呼吸する組織とやりとりすること、もしくは 熱心な助手に物事を教えることのように感じることができます。

ref: 💻A Road to Common Lisp - Steve Losh(2018)

REPL駆動開発とは #

REPL-Oriented Programmingとも. RDDと略されたりもする.

ソースコードを即時にエディタで評価してインライン表示などすることで,素早くフィードバックをえることができる.

正確にはREPLにエディタからソースコードを評価した結果をもらったものを表示だが,操作的にはソースコードと対話するように開発ができる.

TDDは細かくテストを書くことで素早くフィードバックを得ることで先の不安を事前に取り除き前に進むための確信を得ることが目的のひとつだった. 継続的インテグレーション,継続的デリバリーなども. それらのサイクルの単位よりもRDDは圧倒的にフィードバックが早い! もはや最小単位.

Active Recalls #

REPLとは何の略ですか? #

read, evaluate, print, loop

REPL Driven Developmentとはなんですか? #

REPLを使って対話的に開発を行う手法.

エディタにコードを書いて,REPLに送信して評価して即座にアウトプットのフィードバックを得ることにで,次に何をするかを考えることができる.

Rererences #