設計やってたら,設計ミスってて,というか設計の筋が悪かったらしく,テストも書きにくいし,修正も難しくて全然通らなかったけど,同僚と会話しつつ設計を見直したら一瞬でテスト通るようになって,示唆的で学びがある一日だった。エラー処理,Goとかの世界観だと2値を返してifで分岐する,ということをよくやるけど,やはり大域脱出の力は偉大で,困ったらthrowすればいいというのは本当によくできている。今はPerlを書いているのでかっこいい例外処理システムはなくて,2値を返すか,Try::Tinyを使ってなんとかしている。2値を返すパターンでやってると,そういう関数が複数あって,成功してる場合だけ処理を続けたいとか,そういう状況になってしまって,Eitherモナドほしいね,みたいな状態になっていく。大域脱出使うと,エラーを入れるレキシカル変数がごっそり減って,とにかく得という印象になった。Goとは違って,Perlは静的型付けではないので,2値でやる恩恵にあまり与れていない。だいたい自分が困ってるときはエラー処理でハマってて,いい感じにフローを作ってあげたいけどうまくいかずに筋悪い難解なことをして,レビューではじかれる,ということがあるので,そのへん勉強したい。実装したけど限定的にしかうまく動かなかった。週間)Web開発者です。Lisp/Perl/Goまわりの話題が多いです。月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。