Avatar
Avatar
omochimetaru
ライブラリとアプリというより、ある関数の機能の関心が、その動作に含まれるローレベルの動作に含まれるかどうか、ってことだと思うんですよね
理想的には、すべてのレイヤーでそのレイヤーのセマンティクスで抽象化されたエラー型が定義され、そのエラー型で throw されるべきだと考えています。それであれば上層が下層の実装に依存することはなくなります。 でも、その型付けにはコストがかかり、多くの場合、アプリでは一回か多くても数回程度しか利用しないことが多いので、型付けのコストが価値を上回らないと考えています。ライブラリの場合は無限回利用され得るのでコストに見合う価値があります。