ScalaDay 1

初心者のうちに知っておきたかったScalaのこと

More than 3 years have passed since last update.

自分は今年に業務でScalaを使い始めて本格的にはじめたのですが、入門した時に早めに知っておきたかったScalaのTipsを紹介しようと思います。

これらを早く知っていれば今後の負債を減らせるかもしれませんよ。


コード規約系

Scalaに限らずソースコードは書いた人の癖が非常に出やすいのでif(){}の{}位置など比較的どうでもいいことでチーム開発では揉めてしまいことがあります。


Scalariform


  • コーディング規約を設定ファイルに書き込むとコンパイルするたびにオートフォーマットしてくれます。

  • 導入もsbtのライブラリを追加するだけで非常に簡単なのでおすすめです


依存性

scalaのobjectは便利だけど、テストが大変です…

弊社のアプリケーションはslickのDAOが全部objectで構成されていてビジネスロジックばりばり書いてあったのでモックを差し替えることができずにテストの際に一気に改修しなければならなくなってしまいました…

テストできる設計を事前に行っていれば回避できた問題です。


cakepattern


  • triatの自己参照を活用した静的DIのパターン

  • 導入がとりあえず簡単なので、テストを書く場合は一度は検討すべきなのではと思ってます。

  • ただし、ネストが非常に深くなるので好みは別れると思います。(自分は慣れました…

  • Guiceなどを導入するのも人気ありますね


基本的なプラクティス?

Scalaですべきではないことや極力すべきことが書いてあります。

Scalaは非常に表現力が高い言語である反面最初はどう書くのがいいのかがわからずに困ることが多いと思いますので初心者ほどこういう資料がありがたいのではないかと

ちなみに今でもたまにNoneをgetして落ちるコードを見かけるのですが、Optionをgetしてるコードを見て気持ち悪いと感じる状態には早急になるべきです。。。


その他


  • Javaの植えに乗っかっているので、Java周りの知識は多ければ多いほどいい。ビルドツールやライブラリ含めて。

  • JVMの設定に詳しいと得することが多いと思います。


まとめ

今年からScalaを業務で使い始めてこれをもっと早く知りたかったと思ってる情報を共有させて頂きました。

これから Scala を始める方の参考になれば幸いです

いろいろ試してそれぞれの使い所を学ぶのが良いのではないかと思いました。

反応を見たり、書きたいことがが増えたら随時更新していきたいと思います。