Scala

【Scala】ScalaTest ~ ScalaMock ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/31/002830 で、Java由来の Mockito を触ったが 今回は、ScalaTest + ScalaMock を触ってみる。 目次 【1】ScalaMock 【2】インストール 【3】使用上の注意 1)final / private メソッド・クラ…

【Scala】ScalaTest ~ あれこれ編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/27/001306 https://dk521123.hatenablog.com/entry/2023/03/28/003906 の続き。 今回は、Scalaの単体試験する際に ScalaTest を使用した時のTipsについてまとめる 目次 【1】初期処理・後処理 1…

【Scala】specs2 ~ 基本編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2024/06/08/122708 の続き。 Scala の specs2 について、少しづつ書き溜めていく 目次 【1】単体テストスタイル 【2】受入テストスタイル 1)ポイント 2)isメソッド 【1】単体テストスタイル * org.…

【Scala】specs2 ~ 入門編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2024/06/07/183708 で、紹介した Scala の テスティングフレームワーク「2)specs2」について もう少し深彫ってみる 目次 【1】specs2 1)その他特徴 2)補足:BDD(Behavior-Driven Development; 振舞…

【Scala】Scala ~ テスティングフレームワーク ~

■ はじめに Scala の 単体試験をする可能性が出てきたので テスティングフレームワーク について、 徐々に書き溜めていく 目次 【1】Scala の テスティングフレームワーク 1)ScalaTest 2)specs2 3)ScalaCheck 4)TestNG 5)Setak / Setac 【2】Sca…

【Scala】Scala ~ Resources ~

■ はじめに 業務で、Scala の Resources を動的に切り替える必要があるので Scala の Resources について、色々調べたことをまとめる 目次 【1】Scala の Resources ディレクトリ 1)デフォルトのResources パス 【2】Resources 関連のAPI 【3】Resource…

【Scala】SBT ~ リポジトリ先を変更・追加するには ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/12/26/012343 https://dk521123.hatenablog.com/entry/2024/01/11/233802 で、AWS CodeArtifact を使って、クローズされた Mavenのリポジトリ (と pip(PyPI; The Python Package Index))を考えている…

【Scala】SBT ~ Proxy環境下でSBTを使用する ~

■ はじめに Proxy接続環境下で、SBTを使えないので 徐々にメモる。 目次 【0】Proxy環境下で sbt コマンド実行した場合 【1】その1:環境変数を利用する 【2】その2:実行時に指定する 【0】Proxy環境下で sbt コマンド実行した場合 * 以下の関連記事…

【Scala】Scala ~ break / continue ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/01/24/000000 で述べた通り、Scala には、 break / continue が基本使用しない。 そこでどうするかを纏める 目次 【1】break / continue の代替案 1)break の代替案 2)continue の代替案 【2】…

【Scala】SBT ~ JAR作成/実行 ~

■ はじめに ScalaのモジュールをJARファイル化して JAVAしか入っていない環境で実行するってことをやっていて 意外と手間取ったので、メモ。 目次 【1】前提条件 1)sbt 含む Scala 環境 2)sbtプラグイン「sbt-assembly」 【2】JAR作成 1)作成コマン…

【Scala】Scala ~ 乱数 / ランダム ~

■ はじめに 今回は、Scala で乱数やランダム文字列についてまとめてみる 目次 【1】UUID 例1:java.util.UUID 【2】乱数 例1:scala.util.Random 【1】UUID 例1:java.util.UUID * JavaのUUIDを使う => 結局、これが一番めんどくない => 以下の関連記…

【Scala】Scala ~ 基本編 / 関数 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/03/000000 で、Scala の メソッド について扱ったが 今回は、Scala の 関数 について扱う。 目次 【1】関数 (Function) 【2】用語整理 1)無名関数(匿名関数) 2)バインド 【3】メソッドと…

【Scala】Scala ~ TOML ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/16/012034 https://dk521123.hatenablog.com/entry/2023/04/04/000733 の続き。 今回は、Scala で TOMLファイルの扱いについてまとめる TOML https://dk521123.hatenablog.com/entry/2023/04/25/1…

【Scala】Scala ~ 基本編 / トレイト ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/14/000857 で、Scala の クラスについて扱ったが 今回は、トレイト - Trait について学ぶ cf trait = (人・ものの)特性、特色、特徴 目次 【1】トレイト - Trait 1)Java との違い 2)用語整理…

【Scala】Scala ~ 部分関数 / PartialFunction ~

■ はじめに Scala の 部分関数 (PartialFunction) について、学んでいく 目次 【1】部分関数 / PartialFunction 1)サンプル 【2】部分関数の合体 - orElseメソッド 1)サンプル 2)使用上の注意 【1】部分関数 / PartialFunction * 特定の引数のみ処…

【Scala】Scala ~ コレクションで使えるメソッド ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/13/000345 の続き。 Scala を勉強してて、コレクションの操作がちゃんと分かっていないと 話にならなそうなので、基本事項をまとめる 目次 【00】コレクション変換のコツ 【01】foreach 【0…

【Scala】Scala ~ 基本編 / カリー化 ~

■ はじめに Scalaの本をみて、やっと「カリー化」の意味が分かったのでメモ。 (ただ、まだ、実際のメリットがいまいち分からない) 目次 【1】カリー化(currying) 補足 【2】サンプル 例1:Hello world 【3】メリット・デメリット 【1】カリー化(cu…

【Scala】SBT ~ 設定の切替 ~

■ はじめに sbt で 開発用(Local)と本番用(AWS)で切り替えたい場合に 色々と調べていたんだけど、やっとそれっぽい切り替えが可能になったので メモしておく。 なお、参考にしたのは、以下のサイトを組み合わせている https://stackoverflow.com/questio…

【Scala】Scala ~ 環境構築編 / IntelliJ IDEA ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/06/10/034839 で、WSL内に、IntelliJ の環境を作ったが、 Windows Update により環境がぶっ壊れたので VisualBox内の Linux 内に作ることにする (基本、Windows上でも同じ) 目次 【1】注意点 【2…

【Scala】SBT ~ 引数設定の仕方 ~

■ はじめに 小ネタ。 https://dk521123.hatenablog.com/entry/2023/08/01/004207 でやった「sbt run による引数設定の仕方」を分冊。 (見つけづらかったので) 目次 【1】sbt run 1)引数を設定するための構文 2)コマンド例 【2】build.sbt に独自の引…

【Scala】SDKMAN ~ 入門編 ~

■ はじめに 小ネタ。 https://dk521123.hatenablog.com/entry/2023/08/24/002539 でやった「sbt run による引数設定の仕方」を分冊。 目次 【1】SDKMAN 【2】インストール 1)Linux z)トラブルシュート 【3】各種インストール 1)Java 2)sbt 【4】…

【Scala】ScalaTest ~ with Coverage ~

■ はじめに 将来的に必要になるであろう Scalaのカバレッジツール (code coverage)について 未来の自分のために調べてみた 目次 【0】Scalaのカバレッジツール 1)メモ:採用候補 【1】sbt-jacoco 【2】sbt-scoverage 【3】Cobertura 【4】その他のJ…

【Scala】Scala ~ 基本編 / Either型 ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/09/000000 で、Scala の Option型をやったが、 今回は、Either型 について扱う。 目次 【1】Either型 1)Left/Rightの使い分け 【2】サンプル 例1:With getOrElse 例2:With foreach 例3:…

【Scala】Scala ~ Logging / SLF4J ~

■ はじめに Apache Flink でのロギングを調べていたので そこら辺の周辺の知識を纏めておく 目次 【1】SLF4J 補足:Facade (ファサード) 【2】Hello world 1)sbt 2)サンプル 【3】SLF4J + Log4j 2 1)sbt 2)設定ファイル 3)サンプル 4)出力例 …

【Scala】Scala ~ 環境構築編 / IntelliJ IDEA in WSL ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/03/10/193805 で、Windwos で、Scala 開発環境を構築したが Windows/WSL + IntelliJ IDEA + Scala の開発環境を構築しようって 話になったので構築してみる 目次 【1】IntelliJ IDEA 1)IntelliJ I…

【Scala】Scala ~ 基本編 / パターンマッチング ~

■ はじめに Scala の パターンマッチング が強力って話が業務中にでてきたので 調べて、まとめる 目次 【0】パターンマッチング 【1】定数でのマッチング 【2】関数として定義 【3】データ型でのマッチング 【4】ケースクラスでのマッチング 【0】パタ…

【Scala】Scala ~ 非同期 / Future ~

■ はじめに GW休み明けに、Scalaで、非同期のコードを書きそうなので予習。 目次 【1】Scala での非同期 1)Future 2)scala-async 【2】サンプル 例1:実験コード 例2:実験コード(非同期部分のメソッド化) 【1】Scala での非同期 1)Future << ★…

【Scala】Scala ~ Apache Kafka / Consumer ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/04/27/235703 の続き。 前回は、Apache Kafkaへの送信部分(Producer)を実装したので 今回は、Apache Kafkaへの受信部分(Consumer)を Scala で実装してみる 目次 【1】サンプル 補足: build.sbt…

【Scala】Scala ~ Apache Kafka / Producer ~

■ はじめに https://dk521123.hatenablog.com/entry/2023/04/23/235534 https://dk521123.hatenablog.com/entry/2023/04/24/153846 https://dk521123.hatenablog.com/entry/2023/04/26/103421 で、Apache Kafkaについて、取り上げた。 今回は、Apache Kafka…

【Spark】Spark ~ FutureAction ~

■ はじめに Spark の FutureAction について、業務上でてきたので、 調べてみた。あんまり情報がないので、随時更新していく、、、 目次 【1】FutureAction に関する記述 【2】サンプル 【1】FutureAction に関する記述 http://mogile.web.fc2.com/spark/…