Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

エラー検知したいけど全部処理は通したいみたいなやつ

オチはないです

話題

感想

まれによく見るやつだ(つらい)

CatsのValidatedを使ってみる

  • パワフルな型が無い言語
    • 筋肉でやる(フラグを立てつつ見ていく)
  • パワフルな型がある言語
    • 筋肉の代わりを型にやってもらうことができる

CatsにValidatedがある:

走らせるとこういう感じになる:

10 を変換中...
1abcde0 を変換中...
42 を変換中...
Invalid(NonEmptyList(1abcde0 を整数として認識できませんでした))

でもこれだと処理自体は行ってしまうので,以下のような要件は達成できなそう

  • 一気通貫して動いてほしいけど,どこかでもエラーの場合は各過程はログを吐くだけでスキップしてほしい

CatsのValidatedは直前の処理が成功しているか失敗しているかを知ることができず,全ての処理が平等に順に実行される.

どうする

flatMapしていくときに,必ず通る事前処理と,Left / Invalidになっているときはスキップするような本体処理があればいいのに・・・

ここで力尽きた

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?