[Elixir]Ash Frameworkに入門しようとしたら準備がちょっと大変だったので、devcontainerを整備して簡単に始められるようにした

このエントリはElixir Advent Calendar 2024 シリーズ3の15日目のエントリとなります。

Ash Framework とは?

Ash Frameworkは、Elixir製のWeb Frameworkです。

Zach Daniel氏(@ZachSDaniel1)が開発しており、ResourceとActionという概念を包含したDomainが特徴で、コーディング量が少なめながらも実用的なアプリケーションの開発ができるように作られているようです。

試したかったものの、手元ですぐに確認できる環境がない・・・!

実はAsh Frameworkについてはdaimon.exというイベントにて知りました。是非試したい!…と思ったのですが、ここしばらくはElixirと遠い生活を送っていたので、手元にElixirな環境もなく、なかなか試す機会を作れずにいました。

しかし、せめてこのエントリを書くためには多少触っておきたい。どうすれば…

よろしい、ならばdevcontainerだ。

そこで、今回はdevcontainer環境の準備をして、Get Startedの冒頭だけでもできるところまで持っていくぞ!ということにしました。

作ったのが https://github.com/ytnobody/ash-devcontainer となります。

実際にAsh Frameworkを試した様子をREADME.mdに記載してありますので、同じ手順でGet Startedの冒頭を試すことができます。

使い方

VSCodeをお使いの場合、Dockerがインストールされていることが条件ですが、devcontainerというVSCode拡張がありますので、これを使って起動できます。

devcontainer起動直後、すぐに iex および mix igniter.new を利用することができます。

あるいはgithub codespaceを使うのもいいでしょう(私はこちら側でした)。

Ash Frameworkの感想

まだそこまでしっかり触れていないのですが、Domain配下にResourcesとActionsがまとまっているのは一貫性を感じます。

Elixirという言語特性上、副作用について切り分けるというところをどこまでやるかは使い手に委ねられそうな気はしましたが、そもそもコード記述量がやたら少なくて済みそうな雰囲気は感じており、小さめのアプリケーションをAshで作って動かし始めてみるのがまずは良さそうかなと思いました。

さいごに

どうにかAsh Framework入門をちょっとだけすることができました。少しでもAsh Frameworkを触ってみようっていう人に届けば幸いです。