ravineport blog

日々の学びをつらつらと

Scala

Scalaが僕に教えてくれたこと

Scalaが僕に教えてくれたこと Scalaを約3年くらい業務で書いてみて色々学びがあったのでまとめてみます。 Scala 2系を使います。 ちょっと自己紹介 Scalaを始める前にどんなことを知っていたかを軽く。 初めてプログラミングに触れたのは大学生になってから…

Azure Cosmos DBでAtomic Counterを実現する

Atomic Counter 一意性を保ったカウンタのこと(そのまま)。 あるキーに対してカウントが保存されているDBを考える。このDBに保存されているデータをカウントアップすることを普通に考えるなら、キーでSELECT、そのカウントを+1してデータUPDATEするという…

Akkaを使ってScalaのFutureにタイムアウトメソッドを生やす(あと注意点)

ScalaのFutureにはタイムアウトを設定するメソッドはない。 Await.result で設定時間待つことができるが、失敗した場合は例外がスローされてしまうのでTryなりで扱う必要があるし、なによりブロッキングするのでスレッドを無駄遣いしてしまっている。 そこで…

Gatlingのexec { session => ???}, jsonPathではまったこと

Gatlingとは? https://gatling.io/ 負荷テストのためのツール。Scalaで書くことができる。うれしい。 ここではGatlingを書いていくなかではまったことを書いていく。 1. exec { session => ???} ではリクエストは投げられない execメソッドの基本的な使い方…