This account is not set to public on notestock.
This account is not set to public on notestock.
This account is not set to public on notestock.
クラスに final つけると速くなるの、実行時にクラスの動的追加・削除ができるから、 final ついてないけど継承されてないクラスを最適化しちゃうと破綻するし、もしやるなら再 JIT フラグ管理がだるそう(クラスメンバー呼び出しすべてに関わるので)
Algebraic Effects 風のハンドラーで書くのはひとつあるんだけど、既存言語でやると、正常系なのにまったく型検査ができない状態になるので、結構びみょいんだよなぁ
DI がつらいって言うために、そもそもプログラムのテストってどうやるんだに至って、やっとテストに対して前向きな気持ちになってきた
@juners もともとプログラムの見通しから考えたら密結合なほうが書きやすい読みやすいなのです。が、複雑なシステムは単純な関数の組み合わせではなく、例えば、入力が現在時刻だったり、入出力先が DB であったりと、副作用で入出力を表すときがあります。このときテストを行うための適切な環境構築が困難なので、発生させる副作用を強引にテスト環境に変える必要があります。そのやり方の一つとして既存のOOPプログラミング言語向きだとされてるのが DI です。だから、本来ならコンポーネント同士は深く結びついていて欲しいけど、副作用は分離したくて、その仕組みとして DI を導入するためにもっと分離する必要があって……という悲しみを抱えているように感じています