LoginSignup
14
2

More than 3 years have passed since last update.

この記事は、fukuoka.ex Elixir/Phoenix Advent Calendar 2019 の 14日目です。 昨日は @adamu さんの「EElixirを使ってLineのチャットボットを作ろう」でした。

Elixirに出会う

現職ではC#を使って開発しています。.netframework1.1の頃に開発されたシステムは流石にメンテナンス性が落ち、DDDの導入を進めていました。
社内ではなかなか理解が得られず導入を諦めていた頃、Elixirを知りました。

Elixirはカンタンな関数型言語

Elixirを知ったきっかけというのは「Excelから関数型言語マスター1回目:データ行の”並べ替え”と”絞り込み”」 です。

それまでは関数型言語は難しいというイメージがありました。(実際、F#は途中で諦めました)もし、記事通り簡単に習得できるなら、DDDの導入をもう一度トライできるかもしれないと思いました。(うちの会社の場合は、DDDより言語を変える方がハードルは高いですが^^;)

DDDの導入の失敗の1つに、ValueObjectのメリットを上手く伝えられなかったことがあります。ValueObjectを作るのは、C#の場合それなりに工数がかかります。関数型であれば最初から副作用が発生しないので、ValueObjectを作らなくて済みます。

その他にもSliverlight+WCFという非同期プログラミングで苦労したり、メモリリークを見つけられず、Empty.exeに頼るという力技で解決?したりしていました。

Elixirであれば並行プログラミングやプロセスの特徴から、このような苦労はせずに済みそうだと感じ興味を惹かれました。その上、習得も容易であるならElixirを習得しない理由はありません。

「プログラミングElixir」読んでみた

まずはお勧めされている「プログラミングElixir」を読み流してみました。後半になるにつれ理解が追いつかず、特に興味のあった並列プログラミング(14章以降)は完全に置いていかれました。

今後の予定

読み流すだけでは理解が覚束ないので、年末年始は手を動かすために、もくもく会で購入した「Phoenix入門」を写経しようと思います。

ゆくゆくはOSSで公開されるEsunaに貢献できるぐらいにはElixirを習得したいです。

14
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
2