BIZREACHさんのPlay2 + Slickハンズオンに従ってScalaを始めてみました。もっかい環境構築するときのための自分向けメモとなんで始めたかという雑談です。

前提


  • Windows10
  • IntelliJ

でやります。

sbtインストール


こっからインストーラーダウンロードしてインストール。

プロジェクト作成


下記のコマンドでプロジェクト作成

1
sbt new playframework/play-scala-seed.g8

下記が表示されたらプロジェクト名入力。誤ってもbuild.sbt内のnameを書きかえればよろし。

1
name [play-scala-seed]:

sbt updateを高速化する


「sbt runが一向におわらないでござる…」とTwitterでつぶやいたらこちらのgistの通りやれば多少速くなるよっ!と教えて頂きました。ありがとうございました!

それぞれのplugins.sbtに下記の一行を追加します。

1
addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-M15")

sbt run


プロジェクトのディレクトリでsbt runをしてlocalhost:9000にアクセスして「Welcome to Play!」と表示されればOK。

JDKインストール


JDKをインストールする。インストールされていなければこっからとってくる

パスを通す


下記のような感じでJAVA_HOME環境変数設定する。

IntelliJ


インストールは割愛。

Scala用のプラグイン入れる

立ち上がった画面で下記の順番に進んでScala用のプラグインをインストールする。

「Configure」->「Install JetBrains plugins」でScalaで検索する。

SDKを指定

「File」->「Project Structure」の「Project SDK」の「New」でインストールしたJDKのパスを指定。

以上。環境構築はここまで。

以下、ただの余談です。

なんで始めたん??


LycheeっていうPHP製のフォトギャラリーつかって 自分が飲んだ酒を記録する フォトギャラリーを構築しようと思ってたんですよ。というか、Docker composeを使ってほぼやり終えてました。(ちなみに、このDocker compose使ったものはパーミッション周りが緩い以外はほぼ完成してます)

私自身なかなか作りたいものが思い浮かばなく、何か作りたいけど、思い浮かばない…その結果なかなか実際に何か作るところまでいかない…というのに日々悩んでました。前述のプロダクトは最近は開発が活発とはいえるような状況ではないし、使うかどうか迷っていました。それならせっかくの機会だし、自分で作ってみてはどうか?と。

私は前職はクラサバの保守でした。今の会社でPHPでWebサービスを作っているとはいえ、既存の改修がメインですし、やったとしてもせいぜいサブシステムの実装レベルです。自分で一から作れば「UI~サーバーサイド~テーブル設計、その他、セキュリティ等の一通りの勉強になるのではないか?」という思いのもと、やってみることにしました。

で、せっかくだし、言語もやったことのないものでやってみようかなと。では、なぜScalaなのか…ですが…

会社ではPHPメインですが、正直に書くと静的型付けでないのが個人的に厳しいというのが一つ目。前述のTwitterでアドバイスして頂いた方を私はすごく尊敬しているのですが、その方がScalaを使用しているということが二つ目。あとは、GitBucketを前職でも使用させて頂いていて、そういった点でも、もともと興味がありました。

静的型付け言語という点でGoとも迷ったのですが、前述の理由(要するに憧れともともとの興味)でScalaにしました。あと、名前と響きがなんかカッコよくないですか?前職の時に当時お世話になった営業さんが「xxって製品。名前が○○みたいでカッコええって思った。最初はそんなもんでいいんじゃない?」って仰ってましたし、なんかそんな理由でもいいんじゃないかと思います。もちろん、実務で使う上だともっと合理的な理由で選択しないといけないですし、私もできるだけ個人的な思い入れを除いて選ぶようにしていますが、今回は完全に個人的なものだし、やりたいものでやったれと。

ここ半年でもRubyに手を出してみたり(これは一応業務で使ったから…業務都合で中断してるけど)C言語もやりかけでなげっぱで、なかなか集中して一つのものに取り組めないフラフラ人間な私なんですが、今回は作りたいものも明確なので、頑張ってアプリが出来上がるまで持っていきます。