[過去ログ] 関数型プログラミング言語Haskell Part33 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
260
(2): 2020/04/25(土)01:48 ID:n1+IBCwB(1/5) AAS
くだらない事をダベってるくらいなら、Polysemyの基礎でも勉強してろ
外部リンク:sir4ur0n.github.io
262: 2020/04/25(土)05:14 ID:n1+IBCwB(2/5) AAS
簡単に言えば、安全で明確でテストしやすいプログラムが書ける。

IOモナドの関数は中でどんなIOアクションでもできてしまい危険だ。
大事なファイルを上書きしようが、大音量でビープを鳴らそうが。
Polysemyに代表されるエフェクトシステムを使うと、
関数の中で使えるIOアクションの内容を関数シグネチャで制限できる。
ファイル読取アクションを宣言した関数の中では、書込や画像表示など他のIOアクションは一切できず安全だ。

また、ビジネスロジックのコードではどんなアクションをするのか(what)というレシピだけを書き、
そのアクションを実際のIOを使ってどの様に実現するか(how)は別のコードで書くことになる。
whatとhowがしっかり分かれ明確だ。

なので、ビジネスロジックのコードは純粋関数で書け、テストしやすくなる。
howのコードだけをモックに変えることもでき、これもまたテストを容易にする。

と言うようなことを例を交えて分かりやすく説明しているのが >>260 の記事だ。
264: 2020/04/25(土)10:58 ID:n1+IBCwB(3/5) AAS
>>263
前半はその通り。

が、すまん、後半は意味が分からない。
リファクタリングをエミュレートするってどういう事?
初めて聞いたフレーズだ。

リファクタリングをする事と、リファクタリングをエミュレートする事の違いを教えてくれ。
267: 2020/04/25(土)13:20 ID:n1+IBCwB(4/5) AAS
>>265
なんか、私と貴方の間にリファクタリングという言葉に齟齬があるような・・・

今までIOモナドを直接使っていたコードをPolysemyを使うようにリファクタリングすることはできるよ。
エフェクトシステムの設計者たちはそれを推奨している。

でもそれは、IOライブラリのコードが弄れないから、仕方ないので、Polysemyで擬似的に弄ったように見せましょう、
という話では全くないよ。
269: 2020/04/25(土)18:29 ID:n1+IBCwB(5/5) AAS
>>268
名前が違うんだし、そりゃ別物だよ。
同じエフェクトシステムというカテゴリの一員ではあるが。

どう違うかは >>260 を読んで判断してくれ。
短い記事だからすぐ読める。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.633s*