Weitere ähnliche Inhalte
Ähnlich wie Scalaノススメ (20)
Scalaノススメ
- 2. ⾃自⼰己紹介
¤ 前⽥田康⾏行行 (@maeda_)
¤ 名古屋在住のフリーランス(http://www.illi-ichi.com)
¤ 好きな⾔言語
¤ Scala
¤ Smalltalk
¤ DyNagoya
¤ Dynamic Language + Nagoya
¤ http://dynagoya.info/
- 25. 充実のコレクション
- そこで継承ですよ -
¤ combinationsメソッドの実装は⼀一カ所のみ。他のメソッドも
重複する実装は最⼩小限にとどまっている
¤ コレクションの親クラスで実装されているため、⼦子クラスご
とに個別に実装する必要はない
¤ 特定コレクションについて、適切切なアルゴリズムがある場合
は、オーバーライドして、個別に最適な実装をしている
¤ Traitにより、モジュールの分割や組み合わせが容易易にできる
ため、きめ細やかな階層構造が作れる
- 29. 省省略略について
- やりすぎ注意 -
¤ 省省略略しすぎると、逆に分からなくなる
¤ でも、コンテキストによって「⾔言わずもがな」は省省略略したい
¤ 省省略略するには、
¤ コンテキストが明確であることが⼤大事
¤ そのコンテキストが有効なスコープが分かりやすいことが⼤大事
¤ スコープのコントロールしやすいことが⼤大事
¤ 暗黙のパラメータ/暗黙の型変換はスコープの中から使える
ものを探す。これらの機能は特に強⼒力力なので、よりスコープ
の扱いが重要となる
- 32. さらにimportがすばらしい
¤ オブジェクトをimportできる
¤ コンテキストを外部から注⼊入する例例
¤ モジュールとしてのオブジェクトを使う
¤ お⼿手軽 & 強⼒力力
¤ オブジェクトの⽴立立ち位置がJavaとは異異なる
¤ さらに、ScalaにはTraitがあって・・・
¤ Traitのすばらしさはこちら参照
「Javascript as an Embedded DSL – ScalaにおけるExpression
Problem の解法 -」
http://www.slideshare.net/maedaunderscore/scala-javascript-
as-an-embedded-dsl-scalaexpression-problem
- 33. Scalaについてまとめ
¤ 関数型 + (クラスベースの)オブジェクト指向の世界
¤ 複雑。。。
¤ 頑張るのはライブラリ実装者
¤ 使う側は簡単(なことが多い)
¤ 話してないけど、ScalaのTraitはすごい
- 36. ライブラリも充実
¤ 標準ライブラリ
¤ 豊富なコレクション
¤ XML
¤ Actor
¤ Parser Combinator
¤ ツール
¤ sbt
¤ 各種IDEのプラグイン
¤ オープンソースライブラリ
¤ Dispatch
¤ Scalaz
¤ shapeless
¤ Webフレームワーク
¤ Lift
¤ Play!
¤ Unfiltered
¤ Scalatra
¤ spray
¤ blueeyes
¤ finagle
¤ 分散フレームワーク
¤ akka
¤ Scalaのライブラリがなくても、Javaのライブラリも使える
- 38. 初⼼心者がScalaを学ぶ上での問題
- Scalaの開発が活発すぎる -
¤ もちろん、いいことだし、これからもそうあってほしい
¤ 下記の点は注意
¤ ⾔言語仕様も発展途上(すでに実⽤用レベルだけど、進化は続く)
¤ 標準ライブラリも新しいものがどんどん出てくる
¤ その他のライブラリ・フレームワークもどんどん変わる
¤ 標準のビルドツールsbtもどんどん変わる
¤ マイナーバージョン変わったら、ビルドできなくなったとか当た
り前(最近、落落ち着いてきた気がする)
¤ プラグインが最新バージョンに追従してないとか当たり前
¤ ドキュメントはない
¤ ドキュメントがあっても、チュートリアル/ファーストステップ
程度度
¤ ドキュメントはあっという間に陳腐化
¤ ソースコードを読め
¤ テストコードを読め