TL;DR

  • Todo、Doing、Done の 3 列からなる Kanban アプリケーションを作りながら、Clojure による Web アプリケーション開発の基本を学ぶ本である。
  • バックエンドからフロントエンド、開発環境までを、ソフトウェアを 1 つずつ積み上げる形で構築する。

対象読者

Clojure で Web アプリケーションを作る流れを一通り学びたい人向けの本である。Kanban アプリは、列が 1 つの Todo アプリを複数列に発展させたものと捉えられる。Todo アプリと同じく CRUD 操作という Web アプリケーションの基本を含んでいる。タスクを作成し、列の間で移動させ、最後に削除するまでの基本機能を実装する。ドラッグ&ドロップやリアルタイム同期のような高度な機能は扱わない。

技術構成は次のとおりである。

  • バックエンド: http-kit で Web サーバを起動し、reitit でルーティングを定義し、lacinia で GraphQL API を提供する。データベースは PostgreSQL で、next.jdbc と honeysql でアクセスする。malli でスキーマを検証し、component でシステムを管理する。
  • フロントエンド: ClojureScript と Reagent で構築する。Reagent は React のラッパーである。GraphQL クライアントには Apollo Client を使う。
  • 開発環境: Nix で JVM や Clojure のバージョンを固定する。Docker Compose で PostgreSQL を起動し、sqldef で宣言的にスキーマを管理する。

関連