SIerでScalaを使うために私がしたこと
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 3,720 views

 

Statistics

Views

Total Views
3,720
Views on SlideShare
1,878
Embed Views
1,842

Actions

Likes
7
Downloads
2
Comments
0

3 Embeds 1,842

http://d.hatena.ne.jp 1840
https://twitter.com 1
http://localhost 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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