Part1: 準備編

環境を用意する

まず開発を始めるにあたって必要なものが幾つかあるので用意しておきましょう。今回使うことになるのは以下のものです。

  • Java 7 以上
  • Leiningen 2.5.2 以上
  • お好きなエディタ or IDE

これらのセットアップ方法については特に記載をしませんが、使いたいエディタなどがない場合は Cursive を使うことをオススメします。 Cursive の使い方は こちら

またエディタについてはエディタ内部から nREPL へと接続出来る、もしくは nREPL を直接起動出来るものが好ましいです(実際に REPL をエディタまたは IDE から使うことを前提に説明しているところもあるので)。

言葉の整理

使う言葉を少しだけ整理しておきます。

  • ~ を評価する: REPL などの Clojure 環境上で Clojure のフォームを実行すること、としておきましょう。
  • ターミナル: Ubuntu では「端末」と呼ばれたり、 Mac では「ターミナル」と呼ばれ、 Windows では「コマンドプロンプト」などと呼ばれるものです。
  • REPL: 基本的に(直接的であれ間接的であれ) Leiningen で起動した REPL のことを指します。
  • Ring アプリケーション: Ring を用いて開発された Web アプリケーションのことを Ring アプリケーションと呼ぶようにします。

書き方について

ターミナルで実行するコマンドの場合以下のように記述します。

$ command exec arg1 arg2

先頭に $ が付いている場合はターミナルの中でのコマンドです。

また REPL 内での関数実行については以下のように記述します。

user> (println "Hello, world")
;; Hello, world
;;=> nil

user> 部分でネームスペースを示すので、ここが user> でない場合もあります。その場合はネームスペースを切り替えてください。その関数の返り値は ;;=> の後に表示するようにします。ただし、特に関数の返り値に意味がない場合などには省略することもあります。

REPL で実行しないコードは以下のように記述します。

(ns example.core)

(defn foo [] "this is foo")

コード片などでどのファイルか分かりにくい場合はコメントにネームスペースを記述するようにします。

プロジェクトを用意する

それでは早速 TODO アプリを作っていきましょう。アプリケーションの名前は安直ですが todo-clj ということにします(もし気に食わなければところどころで出てくる todo-clj という名前を自分の好きな名前に変更してください…)。

まずはターミナルで適当なディレクトリの下に行き、次のコマンドを実行します。

$ lein new todo-clj

ここまでで Web 開発に取り組んでいく準備が出来ました。

次の Part では Ring について触れていきます。