CoffeeScriptファーストガイド モダンJavaScriptによるアプリケーション開発 電子書籍(飯塚 直)|翔泳社の本
  1. ホーム >
  2. 電子書籍 >
  3. CoffeeScriptファーストガイド モダンJavaScriptによるアプリケーション開発

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


形式:
電子書籍
発売日:
ISBN:
9784798131740
価格:
3,080(本体2,800円+税10%)
カテゴリ:
Webプログラミング
キーワード:
#Web・アプリ開発,#プログラミング,#ネットワーク・サーバ・セキュリティ,#開発手法
電子書籍

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]

付属データはこちら

お問い合わせ

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

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

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

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

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

感想・レビュー

アニー さん

2013-07-05

今のところ使う予定はないかなぁ?とは思いながら読んでみた。最低限の質問に答えられるぐらいにはなったかな。

らき さん

2012-10-28

そもそもあんまりCoffeeScriptやりたいわけじゃないのでアレだけど、本でざっと把握できるようになってるのはやっぱいい。

のぶ さん

2012-07-07

本書を誰にでもお勧めするかどうかは疑問符です。分厚い割に扱われてる話題にまとまりがない印象があるのと、Webのどこかに掲載された記事の再利用が多いので、割高感はあります。でもCoffeeScript(以下CS)自体は面白いアプローチの言語で、JavaScriptの困った点を払拭してくれ、これならプログラム書けそうな気にさせてくれる、お勧め言語の1つです。で本書がCSを主題にした最初の和書なので、ともかく何か始めてみようと思う初学者(でかつWebで勉強するコツを持ってない人)はまずは座右に置いてみましょう。