Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SIerでScalaを使うために私がしたこと

4,977 views

Published on

Published in: Software
  • Be the first to comment

SIerでScalaを使うために私がしたこと

  1. 1. SIerでScalaを使うために私がしたこと Naoki Takezoe @takezoen NTT-DATA INTELLILINK
  2. 2. なぜScalaなのか?
  3. 3. 静的な型付けによるメリット • 機械でチェックできることは機械に任せる • 人間の能力は機械ではできないことに使うべき
  4. 4. Java + アジャイルでの開発 • 極力タイプセーフに記述することで変更時の修 正漏れを防ぐ • 生産性の低さはEclipseやSeasar2のような ツール・フレームワークでカバーできる
  5. 5. Javaの限界 • 生産性、品質の限界 • これ以上ツールやフレームワークを工夫しても生産 性が劇的に向上することはない • ドメスティックなFWに対する不安 • ただし、JavaEEを含め海外製のものは使い勝手が 微妙 • 標準化されてても実際はメリットがあまりない • 新しいものが出てこない • 技術的な成長という意味での将来性に対する不安
  6. 6. 関数型言語のメリット • ステートレスで安全なプログラミングが可能 • Scalaは関数型言語のメリットを実用的なバラ ンスでオブジェクト指向言語に取り込んでいる
  7. 7. 現在 • Scalaでお仕事ができるようになりました
  8. 8. なにをしたのか?
  9. 9. その1 • テスト用のアプリケーションや社内向けのツー ルなどにScalaを使い始める • 半年くらいの実験期間 • LiftやScalatra、ScalaTest、Specs2、sbtなど を一通り試し、実戦でも使える感触を得た
  10. 10. その2 • 「Scala逆引きレシピ」執筆 • 実際にプロジェクトでScalaを使用する際にメ ンバーに使ってもらうことを想定 • 執筆が自分たちのスキル向上にも役立った • 書籍の執筆中に見つけたバグのフィードバック (ScalaMockやscala-ioなど)
  11. 11. ここまでで大体1年く らい経っています
  12. 12. その3 • 実プロジェクトへ投入 • Play2、ScalaQuery、Specs2を採用 • play2-war-pluginへのフィードバック (Servlet 2.4対応、各種バグ修正等) • 不足している機能やツールをOSSで開発
  13. 13. Scala採用のためには • 業務APでは技術的な必然性はあまりない • 生産性、品質なんでもいいので数字が必要
  14. 14. はじめの一歩 • Javaでは工数的に厳しいプロジェクトに導入 • 実戦で使った数字が取れたことでアピールしや すくなった
  15. 15. その4 • イベントのスポンサー、事例紹介、取材対応な ど外部へのアピール • Scalatraのコミッタになりました • Scalaを使用したOSSプロダクトの開発
  16. 16. Scalaを使ってわかっ たこと
  17. 17. • val • トレイト • 名前付き引数、デ フォルト引数 • タプル • イミュータブルな コレクションライ ブラリ • 遅延評価 • 関数、クロージャ • ケースクラス • パターンマッチ • 暗黙的型変換 (Implicit Class) • 暗黙的パラメータ • 型クラス • 構造的部分型 • 自分型アノテー ション • String Interpolation • マクロ
  18. 18. リスクヘッジ • Javaはようやく普及期に入り、これからも長 い間使われていくだろう • ScalaであればJavaに軸足を残しつつ、新しい トライができる
  19. 19. Scalaできる人がいない?
  20. 20. 大丈夫、Scala逆引きレシピが あります Scala逆引きレシピ • Scalaの基本から各種フレームワークまで実 践的な300のレシピを収録 • 特にこれからScalaを勉強してみようという Javaプログラマの方におすすめ

×