アルパカログ

開発しているNotion Blogやプログラミングの話題が中心のブログ

Elixir

Elixir Phoenixでエンドポイント毎の認可を実装する方法

ElixirのWebアプリケーションフレームワークであるPhoenixにおいて、プラグ機能を使ってエンドポイント毎の認可を実装する方法を説明します。

Elixir DateTime型での日時の大小比較に比較演算子(不等号)を使ってはいけない

いくつかの広く普及しているプログラミング言語において、日時型同士の比較に比較演算子 (==や>など) を使うことはよくあります。しかし、Elixirでは日時型の比較に比較演算子を使うと思いもよらない結果になります。

Elixir リストをマップに変換する方法(List to Map)

プログラミングにおいて、連想配列のリストをなんらかのプロパティをキーにした連想配列に変換したいということはよくあります。このエントリでは、Elixirでマップのリストをマップに変換する方法を紹介します。

Elixir DoS脆弱性になり得るAtom枯渇と対策(Atom Exhaustion)

Erlang/Elixirにおいて、Atomを使うことはよくあります。このエントリでは、DoS脆弱性になり得るAtom枯渇(Atom Exhaustion)とその対策について説明します。

Elixir エラーハンドリング構文try~catchとtry~rescueの違い

エラーハンドリング構文と言えばJavaScriptでは try~catch, Rubyでは begin~rescue, Pythonでは try~except があります。そう、多くの言語でエラーハンドリング構文は1つです。しかしElixirには2種類のエラーハンドリング構文があります(!?)。いったいどんな違いがあるのか説明します。

Elixir Ectoで複数IDを指定してレコードを取得する方法

EctoはElixirのORMで、ElixirにおけるActiveRecordのような存在です。EctoとActiveRecordの書き方はよく似ていますが、言語が違うので当然、違いもあります。このエントリでは、Ectoで複数IDを渡してレコードを取得するメモしておきます。

Elixir キーの存在で異なるMapの更新方法

ElixirにおけるMapの更新方法は、対象のキーがある場合とない場合とで違います。このエントリでは、キーの存在で異なるMapの更新方法を紹介します。