型パラメタによる抽象化コードを書くのに気をつけること
自分用反省メモ。Rustを想定してたりしてる。
・その型パラメタに具体的にどのような型が入るか想定できているか?
・その型パラメタには適切な境界が設定されてるか?境界設定が甘くて、ハンドルできないような型が含まれてしまっていないか?
・その型パラメタが最終的にハンドルされる場所はどこ?その場所ではそのパラメタがとりうる全ての型に対して処理がかける?
・困ったら、とりあえずtraitだけ型パラメタ入りの抽象にして、具体的なStructは具体的な型で埋める
結論: 抽象化したいってのが先に来ちゃうといいコードにはならないね(戒め