CoffeeScriptファーストガイド モダンJavaScriptによるアプリケーション開発

翔泳社(出版社) , 飯塚直(著)

商品番号
125990
販売状態
発売中
納品形態
宅配便にてお届け
発売日
2012年05月25日
ISBN
9784798125992
判型
B5変
ページ数
352
キーワード
CoffeeScript  JavaScript

販売価格:¥3,024(税込)

送料無料 在庫あり

本体価格の10%をポイント還元(会員限定)

電子書籍を見る
  • このエントリーをはてなブックマークに追加
ほしい物リストに追加

JavaScriptをシンプルに記述できる注目の言語

CoffeeScriptとは、最近のWeb/スマートデバイス開発に欠かせないJavaScriptに対して、より少ないコード記述で同等の機能を実現できる簡易言語です。コンパイルすることによってネイティブなJavaScriptに変換されるため、実行速度、既存資産との連携など、JavaScriptと遜色なく利用できます。元来JavaScriptの記述は冗長になりがちなため、CoffeeScriptが開発効率向上を求める開発者たちの間で注目されています。

本書では、環境構築からはじめ、基礎的・応用的な文法やプログラミングテクニック、ライブラリの活用やテスト・デバッグ、さらにはnode.jsやブラウザ向け開発のベストプラクティスまで、CoffeeScriptを用いた開発のノウハウを豊富なソースコードとともに解説します。

第1章CoffeeScriptの概要

1-1 CoffeeScriptとは/ CoffeeScriptが登場する前/ CoffeeScriptの登場と広まり
 CoffeeScriptとJavaScriptの違い
 どんなときCoffeeScriptを使えばいいか
1-2 CoffeeScriptの開発環境/ Node.jsのインストール
 CoffeeScriptのインストール
1-3 プログラムの実行/ coffeeコマンドでプログラムを実行する
 スクリプトをファイルに書いて実行する
 JavaScriptにコンパイルする
 エディタ向けプラグイン/ Node.jsのAPIドキュメント
 [Note]コマンドプロンプトの操作

第2章基礎的な文法

2-1 文法の基本/ CoffeeScriptの基本形
2-2 関数/引数を取る関数
 デフォルト引数/名前付き関数と無名関数
 無名関数に続けて引数を指定する
2-3 文字列/変数展開/複数行に分けて書く
 ヒアドキュメント
2-4 コメント/コメントをコンパイル後にも残す
2-5 配列
2-6 オブジェクト
 予約語の自動クォート
2-7 変数のスコープ
2-8 条件分岐/ if/else
 unless / while
 until / loop
 switch
 条件分岐のある関数の戻り値
2-9 ループ・繰返し/配列に対するループ
 要素をスキップする
 オブジェクトに対する繰返し
 条件分岐を式として使う
 ループの応用
2-10 演算子/比較は常に厳密
 連鎖比較
2-11 例外処理
 [Note]本書のソースコード
 [Note]セミコロンの使いどころ

第3章応用的な文法

3-1 レンジ/レンジの基礎知識
 配列を部分的に切り出す/配列を部分的に入れ替える
 末端までのレンジ
3-2 関数にthisを束縛する/ thisの値はどのように決まるのか
 thisを束縛して関数を作る
3-3 存在演算子/変数や関数が存在するか調べる
 条件付き代入
 2つの値のいずれかを選択する
3-4 引数の扱い/引数を配列で受け取る可変長引数
 配列の展開
3-5 クロージャ/クロージャの基礎知識
 CoffeeScriptでクロージャを実現する
 プライベート変数を作る
3-6 分割代入/分割代入の基礎知識
 分割代入の応用
3-7 CoffeeScriptの便利なテクニック/複数行にわたる正規表現/ JavaScriptの埋込み
 不要な戻り値を抑制する
3-8 グローバル変数を作る/ JavaScriptにおけるグローバル変数
 方法1 グローバルオブジェクトに追加する
 方法2 コンパイル時に-bオプションを付ける
3-9 CakeとCakefileでビルド環境を作る/ CakeとCakefile /タスクを作る
 オプションを指定する
 ほかのタスクを呼び出す

第4章クラスを作る

4-1 クラスとは何か/クラスの基礎知識/ JavaScriptにおけるクラス
 CoffeeScriptにおけるクラス
4-2 クラスの定義/クラスとインスタンスの作成
 プロパティの参照のされ方
 メソッドの作成
 コンストラクタ
4-3 クラスの継承/継承により新しいクラスを作成する
 親クラスのメソッドを呼び出す
 引数をインスタンスのプロパティとしてセットする
4-4 プロパティ作成のテクニック/静的なプロパティ/ライベートなプロパティを作る
 [Note]prototypeアクセスの利点と欠点

第5章ライブラリを使って開発を楽にする

5-1 Underscore.jsの準備/ Underscore.jsの読込み/ライセンス
5-2 コレクション用の関数/ each
 filter / all / any
 pluck / max
 min / sortBy / shuffle
5-3 配列用の関数/ flatten / without / uniq
 range
5-4 関数用の関数/ memoize
5-5 オブジェクト用の関数/ keys / values / clone
 extend
5-6 文字列用の関数/ escape / template
5-7 非同期処理のフロー制御/ Node.jsでの読込み/ブラウザでの読込み
 使い方
 JavaScriptライブラリとの協調

第6章テストとデバッグ、開発のヒント

6-1 テストの基礎知識/ソフトウェアにおけるテスト/  テストはどのようなプログラムに必要か
 テスト駆動開発とビヘイビア駆動開発
6-2 テスト環境の準備/ブラウザでの準備
 Node.jsでの準備
 テスト用にMakefileを作る/ Mochaのレポーター
6-3 テストを書く/基本的なMochaのテストの書き方
 MochaのBDD/TDDインタフェース/記述したテストの確認
 BDD/TDDインタフェースの比較
 よいテストを書くには
6-4 デバッガの使用/ Node.js環境で使えるデバッガ
 ブラウザ環境で使えるデバッガ
6-5 ドキュメントの生成/ドキュメントを書く
 ドキュメントを生成する
 よいドキュメントを書くには/ Markdownでスタイルを付ける
6-6 ベンチマーク
 ブラウザでの準備
 Node.jsでの準備/ Benchmark.jsの使い方
 最速の方法を探す
 Web上でベンチマークテストを行う
6-7 よくあるエラーやミス/ ReferenceError / TypeError
 RangeError: Maximum call stack size exceeded
 深すぎる再帰呼出しによるエラーへの対処
 ブラウザのハングアップ
 [Note]node-inspectorをバックグラウンドで実行する

第7章Node.js向け開発のベストプラクティス

7-1 イベント駆動型のプログラムをきれいに作る
 EventEmitter
 EventEmitter2
 0MQ
 AMQP
7-2 Node.jsのモジュールシステム/ Node.jsとブラウザの両方に対応したライブラリを作る
 exportsとmodule.exportsの違い
7-3 URLからコンテンツを取得する
7-4 コマンドラインプログラムの開発
 入力プロンプトを表示する
194 7-5 ヘッドレスブラウザ/ PhantomJSのインストール
 CasperJSのインストール
 CasperJSの使い方
 CasperJSの主なAPI
7-6 Webアプリケーションの開発/インストール
 ファイル構造
 クエリストリングを受け取る
 POSTデータを受け取る/静的ファイル/そのほかのメソッド
 テンプレートエンジンEco
 レスポンスを圧縮する/静的ファイルをブラウザにキャッシュさせる
 独自のエラーページを用意する
7-7 データベースへのアクセス/ O/Rマッピング/ Sequelizeのインストール
 SQLiteに直接アクセスする
 MySQLにアクセスする
 Redisにアクセスする
7-8 ログ出力/ winstonのインストール/ winstonの使い方
 出力オプション
 レベル一覧
7-9 マルチプロセス化/子プロセスを起動してメッセージをやりとりする
 複数の子プロセスを同じポートで待機させる
7-10 エラー処理
7-11 デーモン化/ foreverのインストール/ foreverの使い方
7-12 開発から本番運用に至るまで/バージョン管理/バグトラッカー/負荷テスト
 負荷の原因を調査する
 デプロイツール/モニタリング
 keepalived
7-13 プロファイラ
7-14 npmパッケージの開発
 package.jsonで記述可能なパラメータ
7-15 ライブラリの探し方
 [Note](参考)「Too many open files」エラーが出たら
 [Note]O/Rマッパー
 [Note]スケールアウトとスケールアップ
 [Note]Semantic Versioning

第8章ウザ向け開発のベストプラクティス

8-1 JSONを扱う
 json2.jsの使い方/ JSONを見やすく表示する
8-2 jQuery /スマートフォン向けのjQuery代替ライブラリ
8-3 HTML5を土台を利用して作る/ HTML5 Boilerplateの使い方/ Google Chrome Frame
8-4 UIのライブラリ/ Twitter Bootstrap
 jQuery UI
8-5 HTML5やCSS3のサポート状況を判別する/ Modernizrの使い方
 条件によって読み込むスクリプトを変える/サポートされていないAPIを補完する
8-6 Ajaxコンテンツのルーティング/ Sammy.jsの使い方
 AjaxコンテンツをGoogleの検索結果に出す
 ブラウザの履歴を操作する
8-7 DOMの準備完了を待つ
 JavaScriptとCSSの最適な読込み順序
 スクリプトローダーで高速に読み込む
8-8 パフォーマンス向上のためのテクニック/リクエスト数を減らす/  JavaScriptやCSSを外部ファイル化する/ CSSスプライト
 パーツのロードを遅らせる/画像のサイズを削減する
8-9 検索エンジンのコントロール/ robots.txtの記述方法
 サイトの貢献者情報を提供する
 最適化チェックツール
8-10 外部JavaScriptの文字コード
8-11 複数のファイルに分ける
8-12 JavaScriptを最適化する
 UglifyJSのインストール/ JavaScriptファイルを最適化する
8-13 JavaScriptファイルの結合
8-14 ライブラリをCDNからロードする
8-15 ブラウザでのテストを自動化する/ Selenium
 Watir
8-16 プロファイラを使う/ボトルネックを見つける
 メモリリークを見つける
8-17 古いInternet Explorerでの検証
8-18 クライアント側のエラーログを収集する
8-19 ユーザーの行動解析ツールの設置/プライバシーポリシーの明記
8-20 複雑なテンプレートの使用
8-21 WebSocketをクロスブラウザで使う/ Socket.IOのインストール(サーバ側)/  Socket.IOの使い方(サーバ側)
 Socket.IOの使い方(クライアント側)
 APIサーバの実装例
 再接続パラメータの設定
 本番環境での推奨設定
8-22 KnockoutでUIの表示を動的に変更する/ Knockoutの使い方
 ライブラリの読込み/モデルからビューへの反映
 ビューからモデルへの反映
 computed observableの作成
 ボタンクリックでアクションを実行する
 値の変更通知を受ける
8-23 CoffeeScriptをブラウザで直接実行する/ text/coffeescriptの使い方
8-24 CSSのトレンド
 CompassでSass開発をさらに便利にする
 [Note]

書籍のサンプルなどのダウンロードは、翔泳社サイトへ移動いたしました。
ダウンロード

各種問い合わせは以下のリンクからご連絡ください

関連商品

Effective JavaScript【PDF版】

販売価格:3,456円(税込)

2017.05.16発売