Scala逆引きレシピ(竹添 直樹 島本 多可子)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. Scala逆引きレシピ

Scala逆引きレシピ



形式:
書籍
発売日:
ISBN:
9784798125411
定価:
3,520(本体3,200円+税10%)
仕様:
A5・632ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
シリーズ:
逆引きレシピ
紙の書籍

Scalaでコードを書く際の実践ノウハウが凝縮

本書は、オブジェクト指向言語に関数型言語の特長をバランスよく取り込んだ、実用的なプログラミング言語「Scala(スカラ)」の逆引き本です。Scalaの基本構文、標準ライブラリ、ユニットテスト、ビルドツール、データベース、Webプログラミングなど幅広い内容について、著者の現場経験に基づいた実践的なノウハウ・レシピを提供します。これからScalaに触れてみようという方はもちろんのこと、すでにある程度Scalaに関する理解がある方にとっても、「実際の開発時にどのようなコードを書いたら良いかを知るための手引き」として役立てていただける一冊です。

第1章 準備

1.1 セットアップ
 001 Scala のセットアップ
 002 Eclipse のセットアップ
 003 Scala のAPI リファレンスを参照したい
1.2 コンパイルと実行
 004 Scala プログラムを実行したい
 005 Scala のディレクトリ/ファイル構成を知りたい
 006 Scala プログラムをコンパイルせずに実行したい
 007 クラスパスを指定したい
 008 jar ファイルを実行したい
 009 対話型シェル(REPL)を使いたい

第2章 Scala の基本

2.1 コンソール
 010 コンソールに出力したい
 011 コンソールから入力したい
2.2 パッケージとインポート
 012 パッケージを定義したい
 013 インポート文の機能を知りたい
 014 Predef ってなに?
2.3 変数
 015 varとval の違いを知りたい
 016 lazy ってなに?
2.4 型
 017 Scala の型階層について知りたい
 018 型を省略可能/不可能なケースを知りたい
2.5 暗黙の型変換
 019 暗黙の型変換について知りたい
 020 暗黙の型変換で型を拡張したい
2.6 数値
 021 数値同士の型を変換したい
 022 数値処理を行ないたい
 023 桁あふれや丸め誤差のない計算をしたい
2.7 文字列
 024 複数行の文字列リテラルを記述したい
 025 文字列をフォーマットしたい
 026 文字列を1 行ごとに処理したい
 027 文字列を連結したい
 028 文字列を比較したい
 029 文字列を数値やBoolean に変換したい
 030 文字列が正規表現に一致するか調べたい
 031 文字列を分割したい
 032 正規表現で文字列を検索したい
 033 正規表現で文字列を置換したい
2.8 制御構造
 034 if から値を返したい
 035 for で繰り返し処理を行ないたい
 036 for ループをフィルタリングしたい
 037 for ループから値を返したい
 038 for ループの入れ子を簡単に記述したい
 039 ループ処理などを途中で終了したい
2.9 パターンマッチ
 040 パターンマッチで条件分岐を行ないたい
 041 型でパターンマッチを行ないたい
 042 ケースクラスのパターンマッチを行ないたい
 043 List や配列のパターンマッチを行ないたい
 044 タプルのパターンマッチを行ないたい
 045 正規表現でパターンマッチを行ないたい
 046 XML のパターンマッチを行ないたい
 047 パターンマッチに条件を加えたい
 048 マッチした値を変数として参照したい
 049 関数の引数に対してパターンマッチを行ないたい
2.10 エラー処理
 050 Option 型の使い方を知りたい
 051 例外処理について知りたい
 052 Either で例外をラップしたい

第3章 関数とクロージャ

3.1 関数
 053 関数を定義したい
 054 関数を引数として渡したい
 055 関数を戻り値として返したい
 056 ネストした関数を定義したい
3.2 クロージャ
 057 クロージャってなに?
3.3 部分適用
 058 メソッドを関数に変換したい
 059 一部の引数のみ指定して関数を呼び出したい
 060 部分関数ってなに?
3.4 カリー化
 061 カリー化について知りたい
 062 引数が複数ある関数をカリー化したい
3.5 再帰
 063 ループを再帰で処理したい

第4章 オブジェクト指向プログラミング

4.1 クラスとメンバー
 064 クラスを定義したい
 065 メソッドを定義したい
 066 可変長引数を定義したい
 067 引数名を指定してメソッドを呼び出したい
 068 引数にデフォルト値を設定したい
 069 暗黙の引数について知りたい
 070 引数を遅延評価させたい
 071 フィールドを定義したい
 072 コンストラクタを定義したい
 073 アクセス修飾子について知りたい
4.2 継承と抽象クラス
 074 クラスを継承したい
 075 sealed ってなに?
 076 抽象クラスを定義したい
 077 フィールドやメソッドをオーバーライドしたい
4.3 トレイト
 078 トレイトってなに?
 079 トレイトをミックスインしたい
 080 トレイトの抽象メソッドを拡張したい
 081 継承元を指定してメソッドを呼び出したい
 082 抽象フィールドが初期化されるタイミングを知りたい
4.4 オブジェクトとケースクラス
 083 シングルトンを定義したい
 084 コンパニオンオブジェクトってなに?
 085 抽出子ってなに?
 086 ケースクラスってなに?
 087 パッケージオブジェクトってなに?
4.5 列挙型
 088 列挙型を定義したい
4.6 ジェネリクス
 089 ジェネリクスを定義したい
 090 型パラメータに変位を指定したい
 091 制限付きの型パラメータを定義したい
 092 型パラメータによって呼び出すメソッドを変更したい
 093 プリミティブ型を指定する型パラメータを効率化したい
 094 型パラメータの情報を取得したい
4.7 型の操作
 095 キャストしたい
 096 Class オブジェクトを取得したい
 097 型に別名を付けたい
 098 自分型アノテーションについて知りたい
 099 ダックタイピングしたい
4.8 アノテーション
 100 アノテーションを付与したい
 101 Scala 標準アノテーションについて知りたい
 102 独自のアノテーションを作成したい

第5章 コレクション

5.1 コレクションの基礎
 103 Scala のコレクションについて知りたい
 104 コレクションを比較したい
 105 コレクション同士を変換したい
5.2 List
 106 List を使いたい
 107 List の長さを調べたい
 108 List の要素を取得したい
 109 List に要素を追加したい
 110 List の要素を削除したい
 111 List を連結したい
 112 List の要素を繰り返し処理したい
 113 List の要素を変換したい
 114 List の要素をソートしたい
 115 List の要素を文字列に変換したい
 116 List の一部を切り出したList を作成したい
 117 List を分割したい
 118 List の要素が条件を満たすか調べたい
 119 ネストしたList をフラットにしたい
 120 List の要素の集計値を求めたい
 121 2 つのList の要素のペアを持つList を作りたい
 122 「::」や「:::」とはなんですか?
5.3 Map
 123 Map を使いたい
 124 Map の要素を繰り返し処理したい
 125 Map に要素を追加したい
 126 Map を連結したい
 127 Map から要素を削除したい
 128 Map の要素を変換したい
 129 Map の要素をソートしたい
5.4 Set
 130 Set を使いたい
 131 Set の論理演算を行ないたい
 132 ソートされたSet を使いたい
5.5 その他のコレクション
 133 配列を使いたい
 134 Vector を使いたい
 135 タプルを使いたい
 136 Stream を使いたい
 137 ミュータブルなコレクションを使いたい
 138 ミュータブルなコレクションを同期化したい
 139 並列コレクションを使いたい

第6章 ファイル操作と入出力

6.1 標準ライブラリによる入出力
 140 ファイルを読み込みたい
 141 より高度な入出力を行ないたい
6.2 Scala IO
 142 Scala IO を使いたい
 143 ファイルやディレクトリを扱いたい
 144 ファイルやディレクトリを作成したい
 145 ファイルやディレクトリを削除したい
 146 ファイルやディレクトリをコピー/移動したい
 147 ディレクトリ内のファイルやディレクトリを取得したい
 148 親ディレクトリを取得したい
 149 ファイルやディレクトリの属性を調べたい
 150 Path とJava のFile オブジェクトを変換したい
 151 ファイルに対して文字列の読み書きを行ないたい
 152 ファイルに対してバイナリの読み書きを行ないたい
 153 Java の入出力API と連携したい

第7章 XML

7.1 操作
 154 Scala のコードにXML を記述したい
 155 XML リテラルに変数や式を含めたい
 156 XML を読み込みたい
 157 XML を保存したい
7.2 検索
 158 XML を検索したい
 159 要素や属性の値を取得したい
 160 要素をコレクションで取得したい
7.3 比較
 161 XML を比較したい

第8章 ツール、ユーティリティ

8.1 ユーティリティ
 162 外部プログラムを実行したい
 163 ログを出力したい
 164 JSON を使いたい
 165 GUI アプリケーションを作りたい
 166 Scala コードを実行時に評価したい
 167 日付処理を行ないたい
 168 HTTP 通信をしたい
 169 パーサコンビネータを使いたい
8.2 ツール
 170 scaladoc でAPI リファレンスを作成したい
 171 XML をScala クラスにマッピングしたい
 172 コンパイラプラグインを使いたい

第9章 並行プログラミング

9.1 導入
 173 Scala の並行処理について知りたい
9.2 Akka
 174 Akka を使いたい
 175 Akka で並行処理を行ないたい
 176 Akka のアクターから別のアクターを生成したい
 177 Akka で子のアクターの終了をモニタリングしたい
 178 Akka でアクターの耐障害性を高めたい
 179 Akka でアクターの処理結果を取得したい
 180 Akka のFuture にコールバックを定義したい
 181 Akka で送信元のアクターへメッセージを返信したい
 182 Akka のアクターからメッセージを転送したい
 183 Akka でアクターの開始/終了/再起動をフックしたい
 184 Akka でホットスワップしたい
 185 Akka でリモートアクターを使いたい
 186 Akka でアクターへのメッセージ送信をスケジューリングしたい
 187 Akka でログを出力したい
 188 Akka のアクターでトランザクションを使いたい
9.3 スレッド
 189 スレッドで一部の処理を非同期にしたい
 190 スレッドで非同期処理から結果を返したい

第10章 Java との連携

10.1 Scala からJava を扱う
 191 Scala からJava のクラスを呼び出したい
 192 Scala でJava のクラスを継承したい
 193 Scala でJava のインターフェイスを実装したい
 194 Scala とJava のコレクション型を変換したい
10.2 Java からScala を扱う
 195 Java からScala のクラス/オブジェクトを呼び出したい
 196 Scala のクラスをJavaBean として扱いたい
 197 Scala のプロパティにJava から読み取り可能なアノテーションを付けたい
 198 Java でScala が投げる例外を処理したい
 199 java コマンドでScala プログラムを実行したい

第11章 sbt

11.1 sbt の使い方
 200 sbt をセットアップしたい
 201 sbt プロジェクトを作成したい
 202 sbt でコンパイルやテストなどを実行したい
 203 対話型シェルでsbt を使いたい
 204 ライブラリを使いたい
 205 一部のライブラリをクラスパスから除外したい
 206 リポジトリに存在しないライブラリを使いたい
 207 ライブラリをリポジトリにパブリッシュしたい
 208 複数のバージョンのScala 向けにビルドしたい
 209 複数のsbt プロジェクトをまとめて管理したい
11.2 プラグイン/外部ツールとの連携
 210 sbt プラグインを使いたい
 211 java コマンドで実行可能なjar ファイルを作りたい
 212 環境依存の設定ファイルをビルド時に書き換えたい
 213 テストのカバレッジを測定したい
 214 sbt でWeb アプリケーションを開発したい
 215 sbt でソースコードのクロスリファレンスを生成したい
 216 sbt プロジェクトをEclipse で使えるようにしたい

第12章 テスト

12.1 ユニットテストの基本
 217 Scala のテスティングフレームワークについて知りたい
 218 ScalaTest でテストケースを記述したい
 219 ScalaTest で実行結果を検証したい
 220 ScalaTest でテストの事前/事後処理を行ないたい
 221 Specs2 でテストケースを記述したい
 222 Specs2 で実行結果を検証したい
 223 Specs2 でテストごとに必要な値を定義したい
 224 Specs2 でテストの事前/事後処理を行ないたい
 225 指定したテストケースだけを実行したい
 226 テストをスキップしたい
12.2 高度なテスト
 227 モックライブラリを使ってテストを行ないたい
 228 ScalaCheck を使ってテストを行ないたい
 229 テストデータを指定してテストを行ないたい
 230 ScalaMock を使いたい
 231 ScalaMock でクラスやシングルトンのモックを作成したい
 232 テストケースをJUnit で実行したい
 233 テストの並列実行について知りたい

第13章 フレームワーク

13.1 導入
 234 Scala のフレームワークについて知りたい
13.2 Play2
 235 Play2 を使いたい
 236 Play2 で作成したWeb アプリを運用環境で実行したい
 237 Play2 のコントローラを実装したい
 238 Play2 のルーティングについて知りたい
 239 Play2 のコントローラでリクエストパラメータを取得したい
 240 Play2 でフォームを定義したい
 241 Play2 でフォームに対応したビューを作りたい
 242 Play2 のフォームで高度な入力チェックを行ないたい
 243 Play2 のコントローラで共通処理を行ないたい
 244 メッセージを国際化したい
 245 Play2 でファイルアップロード機能を実装したい
 246 Play2 でファイルダウンロード機能を実装したい
 247 Play2 でセッションを使いたい
 248 Play2 でJSON を使いたい
 249 Play2 で外部のWeb API を呼び出したい
 250 Play2 でキャッシュを使いたい
 251 Play2 でHTML テンプレートを使いたい
 252 Play2 でテンプレートを共通化したい
 253 Play2 でデータベースにアクセスしたい
 254 Anorm でSQL を実行したい
 255 Anorm で検索結果をケースクラスにマッピングしたい
 256 Play2 でAnorm 以外のデータベースライブラリを使いたい
 257 Play2 でWebSocket を使いたい
13.3 Scalatra
 258 Scalatra を使いたい
 259 Scalatra でリクエストのマッピングを行ないたい
 260 Scalatra で事前/事後処理を行ないたい
 261 Scalatra でリクエストパラメータを取得したい
 262 Scalatra でリクエストパスの一部をパラメータとして取得したい
 263 Scalatra でサーブレットAPI を使いたい
 264 Scalatra でファイルアップロードを行ないたい
13.4 Scalate
 265 Scalatra でテンプレートエンジンを使いたい
 266 Scalate のテンプレートを共通化したい
 267 Scalate テンプレートの記法を知りたい
 268 Scalate テンプレートでVelocity スタイルの記法を使いたい
13.5 ScalaQuery
 269 ScalaQuery を使いたい
 270 ScalaQuery でSELECT を実行したい
 271 ScalaQuery でINSERT を実行したい
 272 ScalaQuery でUPDATE を実行したい
 273 ScalaQuery でDELETE を実行したい
 274 ScalaQuery で検索結果をエンティティにマッピングしたい
 275 ScalaQuery でソートやグルーピングを行ないたい
 276 ScalaQuery でテーブルをジョインしたい
 277 ScalaQuery でサブクエリを実行したい
 278 ScalaQuery でSQL を直接実行したい
13.6 Casbah/Salat
 279 Casbah を使いたい
 280 Casbah でドキュメントを検索したい
 281 Casbah でドキュメントを登録したい
 282 Casbah でドキュメントを更新したい
 283 Casbah でドキュメントをアトミックに更新したい
 284 Casbah でドキュメントを削除したい
 285 Casbah でソートやグルーピングを行ないたい
 286 Casbah でMapReduce を使いたい
 287 Casbah でGridFS を使いたい
 288 Casbah で高度なクエリを記述したい
 289 Casbah でドキュメントをケースクラスにマッピングしたい
13.7 spray
 290 spray を使いたい
 291 spray でリソースにURI パスを指定したい
 292 spray でリソースにHTTP リクエストを指定したい
 293 spray でリソースからレスポンスを返したい
 294 spray のリソースでクエリパラメータを取得したい
 295 spray のリソースでフォームパラメータを取得したい
 296 spray でリクエストを任意のクラスで取得したい
 297 spray でレスポンスを任意のクラスで返したい
 298 spray でJSON とケースクラスを変換したい
 299 spray でリソースの処理を非同期に行ないたい
 300 spray でリソースに認証/認可を付けたい

付録 Scala 2.10 の新機能

A.1 文字列への変数の埋め込み
A.2 Implicit Class
A.3 値型のクラス
A.4 メソッドやフィールドの動的なディスパッチ
A.5 リフレクションAPI
A.6 Futures とPromises
A.7 言語機能のモジュール化
A.8 マクロ
A.9 その他の変更点

付属データはこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。
この商品の「よくある質問」はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2012年10月29日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 244
コード囲み(上)4行目、コード囲み(下)2行目(計2か所)
Path().children()
Path(".").children()
2012.07.04
1刷 351
下から2行目
Javaからは「throws IOException」が宣言さ
Javaからは「throws Exception」が宣言さ
2012.07.04
1刷 407
コード囲み内のコメント
// ex1メソッドを実行 // ex2メソッドを実行 // ex3メソッドを実行
// e1メソッドを実行 // e2メソッドを実行 // e3メソッドを実行
2012.07.04
1刷 497
下から4行目
def form = Action {
def form = Action { implicit request =>
2012.10.29

感想・レビュー

Tadatoshi Sekiguchi さん

2013-01-17

Scalaの文法から標準ライブラリの使い方まで一通り記載されていて、目次が分かりやすくて引きやすい。周辺ライブラリはsbtのライブラリ指定方法が記載してあり親切。Web時代にもこういう体系だった整理が必要だなと思った一冊。