TL;DR

  • バックエンドを Clojure、Web のフロントエンドを ClojureScript、アプリを ClojureDart で構築した。
  • 共通処理を共有でき、言語との摩擦が少なく、AI との相性も良い。一方、採用の母集団は広くない。

内容

良かったところ

re-frame では副作用を Effects として返せる。処理から Effects を返すまでの範囲をテストできる。共通の処理は .cljc ファイルに書けるので、フロントエンドとバックエンドで同じバリデーションのルールを使える。マクロも書きやすい。

AI との相性も良い。理由として、テスト、Malli、トークン効率、REPL が挙げられた。UI や外部 I/O を動かさずに検証できる範囲が広く、Malli ではスキーマをデータで定義して実行時に検証できる。少ないトークンで文脈を渡しやすい。

Clojure には縛るものがなく、言語との摩擦が少ないので自由に書ける。一方で、必要な制約を必要な場所に足すこともできる。

採用とチーム

採用の母集団は広くない。ただ、仕事で Clojure を書けることが転職の理由になる。発表者自身もその一人だった。

キーワード

関連