PHPerによるScala入門その1 環境セットアップ

前置き

phperがscalaを使って適当webサーバを立ち上げたときの学習の記録です。副業で使うための学習が主目的なので作るもの自体に意味はありません。 コードは↓に上げていく予定です。 https://github.com/shmurakamu/scala_queue

作るもの

CQRS的にQueueのproviderとconsumerを作ります。providerはAPIサーバとして動かし、kafkaにエンキューします。consumerはkafkaからsubscribeしてdynamodbに適当に値を保存します。

準備

Scala

まずScalaのコードを書く準備をします。 以下の前提です。 - sbtはインストール済み - 基本的なScalaの記法は学習済み

この辺はドワンゴさんのScala研修テキストとか入門書とか、その辺を見れば良さそう。

プロジェクト作成

ということでIntelliJ IDEAでプロジェクト作成開始。 New > Project だったか Project from existing sourceだったかその辺りから作成して、予め設定していたsbtとかJDKの設定をする。

正しいディレクトリ構成がよく分かっていないので、適当に見繕ったプロジェクトを参考にして

src
├── main
│   ├── resources
│   └── scala
│       └── com
│           └── shmrkm
│               └── queue
│                   ├── client
│                   ├── consumer
│                   └── provider
└── test
    └── scala
        └── com
            └── shmrkm
                └── queue
                    └── provider

とりあえずこんな感じで作ってみた。

build.sbtも何を書いたらいいかまだよく見えてきてないので

name := "queue"

scalaVersion := "2.12.6"

version := "1.0"

scalacOptions ++= Seq("-deprecation", "-feature", "-unchecked", "-Xlint")

libraryDependencies ++= Seq(
  "org.scalatest" %% "scalatest" % "3.0.5" % "test",
  "org.mockito" % "mockito-core" % "2.13.0" % "test",
)

ひとまずこんな感じにした。

さてコード書くかーと思って src/main/scala/com/shmrkm/queue/provider 以下に .scalaファイルを作ってみたけどなぜかコードハイライティングがいまいち効いてない。 class とか object とかは色が変わるのだけど、変数とかメソッド名の色が変わらない。ライブラリのコードはちゃんと色が変わるのになぜ・・・?

よく分かってないけど、 src/main/scala を Mark Directory as で Load Path Root に設定したらちゃんとハイライトされた。これ必要なのかな?

とりあえずセットアップはそんな感じで。