Do you want to pick up from where you left of?
Take me there

レッスン: 上級

私たちの知識を次のレベルへ上げるため、このレッスンでは、ElixirとBEAMの高度なトピックをカバーします。

OTPの並行性

並行性(コンカレンシー)に関するElixirの抽象化を見てきましたが、さらなる制御が必要になることもあります。そうした時のために、Elixirに組み込まれているOTPの振る舞いに目を向けます。

このレッスンではGenServerという重要な要素に焦点を当てます

OTPスーパバイザ

スーパバイザは、他のプロセスを監視するという一つの目的に特化したプロセスです。 子プロセスが失敗した際に自動的に再起動させることによって、耐障害性の高いアプリケーションを作ることを可能にします。

OTPディストリビューション

Elixirアプリは、単体のホストや複数のホストにまたがって分散された(distributed)一連の異なるノードで実行することができます。 Elixirは、このレッスンで概説するいくつかの異なるメカニズムを通して、それらのノード間で通信をすることが可能です。

メタプログラミング

メタプログラミングとはコード自体にコードを記述させる機能です。Elixirでは、メタプログラミング機能によりニーズに合わせて言語を拡張し、動的にコードを変更することができます。Elixirが内部でどのように表現されるかを見ることから始めましょう。次にそれを修正する方法を学び、そして最終的に拡張するためにこの知識を使用してみましょう。

注意事項: メタプログラミングはトリッキーで、どうしても必要な場合にのみ使用してください。過度の使用は、ほぼ確実に、理解及びデバッグすることが困難な複雑なコードにつながります

アンブレラプロジェクト

プロジェクトが大きく、本当に大きくなることが時々あります。Mixビルドツールはプロジェクトの成長に合わせて、コードを複数のアプリケーションに分割してElixirプロジェクトをより管理しやすくする方法を提供します。

仕様と型

このレッスンでは @spec@type の文法について学びます。最初の @spec はツールによって解析できるドキュメントを書くための文法をより完全にするものです。二番目の @type はコードをより読みやすく理解しやすいものにする手助けをしてくれます。

ビヘイビア

前の章では仕様と型について学びました。この章では、その仕様を実装するようにモジュールに要求する方法を学びます。Elixirでは、この機能はビヘイビア(振る舞い)と呼ばれます。

プロトコル

このレッスンではプロトコルがどんなものなのか、そしてElixirでどのように使うのかを見ていきます。