📚
業務でScalaに入門するために参考にした情報
これは何?
Ruby畑での仕事が中心で他の言語/フレームワークを使った経験は皆無だったのですが、転職してScalaを使ったアプリケーション開発に携わることになりました。Scala全く分からん状態から仕事で使っていくために参考にさせて頂いた情報を軽くまとめました。これからScalaへ入門する方への助けとなれば幸いです。
ポイント
Rubyとかの動的型付け言語から来た人は特に以下の理解が重要(かつ骨が折れる..)かなと思います。
- Either,Optionなどの文脈付き型の理解
- for内包式の理解
- Generics/型パラメータの理解
ザッとScalaの全体について理解して、そこからはコードを書きつつ分からないことは適宜調べていくのが良いのかなと思います(理解し切るまで次に進まないスタイルだと、永久に仕事に進めないくらいボリュームある&難しいので...)。
書籍
-
実践Scala入門
- 薄いこともあり、一通りザーってScalaを知るのに良いと思います
-
Scalaスケーラブルプログラミング
- 通称コップ本
- かなり丁寧に書かれているので、不明なことがあった際には見返すのが良いかなと思います
-
Scala関数型デザイン&プログラミング―Scalazコントリビューターによる関数型徹底ガイド
- Scalaの関数型の側面について強化したい場合には一読をおすすめします
技術ブログとか
全般
記号
Scalaは =>
とか <:
とかの記号を多用するのですが、「そもそもこれ何なんだ...(IntelliJで飛べない)。どうやって調べたら良いんだ..」ということが割とあります。
モナド
- Scalaエンジニアのためのモナド入門
- 箱で考えるFunctor、ApplicativeそしてMonad
- 30分でわかるJavaScriptプログラマのためのモナド入門
-
Scala with Cats Book
- catsというライブラリを使ってモナドを学べます
- catsを使う機会は多いと思うので、一通り見ておいて損はなさそう
-
圏論の道案内 ~矢印でえがく数学の世界~ 数学への招待
- 圏論に対するメンタルモデルがなさ過ぎたので軽く読みました
Domain-Driven Design
「DDDといえばScala!」というくらい、DDDとの相性が良いので、たとえ仕事で使わなくても、一通り目を通しておくことで視野が広がるかなと思います。
Discussion