想定対象: これから、Elixir/Phoenixを活用していく人に向けて
ElixirはLV系のスクリプト言語と同等レベルで生産量は極めて高い。がコード量がどうしても多くなると、
ManyServicesになると、多々の問題が発生。(Deploy時間がかかる、etc…
→ではMicroService化する?
サービス間でコード共有
Umbrellaプロジェクトを使えば、1repoをアプリケーションレイヤで分割できる
macroはcompile-timeに評価
dependenciesが生まれると、関連モジュールもrecompielされる
問題:1ファイルの修正に伴い、300ファイル近くがrecompileされる。
→生産性が低下
循環とは?dependencyの先に更にdependencyが発生していく形。
循環のコンパイル
循環を取り除く = 無駄なコンパイル依存を削除する = 依存を取り除く
> mix xref graph -format dat
Testのロード/コンパイルtimeが長い
最善:プロジェクトを分割するのが良い
よく使うモノ
Q. Phoenix1.4 のContextの導入は?
Q. 困ったときのコミュニティは?
Q. DIalyzerは使用してる?理由は?
使用してない。理由は、時間がないw、から
コードが読みやすくなるので、できる限り書きたいとは思ってる。