- 266 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 05:14:26.69 ID:n1+IBCwB.net]
- 簡単に言えば、安全で明確でテストしやすいプログラムが書ける。
IOモナドの関数は中でどんなIOアクションでもできてしまい危険だ。 大事なファイルを上書きしようが、大音量でビープを鳴らそうが。 Polysemyに代表されるエフェクトシステムを使うと、 関数の中で使えるIOアクションの内容を関数シグネチャで制限できる。 ファイル読取アクションを宣言した関数の中では、書込や画像表示など他のIOアクションは一切できず安全だ。 また、ビジネスロジックのコードではどんなアクションをするのか(what)というレシピだけを書き、 そのアクションを実際のIOを使ってどの様に実現するか(how)は別のコードで書くことになる。 whatとhowがしっかり分かれ明確だ。 なので、ビジネスロジックのコードは純粋関数で書け、テストしやすくなる。 howのコードだけをモックに変えることもでき、これもまたテストを容易にする。 と言うようなことを例を交えて分かりやすく説明しているのが >>261 の記事だ。
|

|