Monthly Archives: 6月 2016

「シングルページWebアプリケーション」第13回(6/28)

Posted on by 0 comment

参加者 今井(読み手)、沼田、青木(記)
範囲 pp.99-108

3章 シェルの開発

  • 3.6 アプリケーション状態を管理する
    • 3.6.2 履歴制御を管理するための方式を選ぶ
    • 3.6.3 履歴イベントが発生したときにアンカーを変更する
      • ハッシュ「#」とシャープ「♯」の違いが話題にでました。五線譜に書いて分かりやすい方がシャープ「♯」と覚えるとよいそうです。
    • 3.6.4 アンカーを使ってアプリケーション状態を表す
      • 3.6.4.1 アンカー要素を使うようにシェルを変更する
      • 3.6.4.2 uriAnchorがアンカーのエンコードとデコードを行う方法を理解する

「シングルページWebアプリケーション」第12回(6/24)

Posted on by 0 comment

参加者 青木(読み手)、今井、沼田(記)
範囲 pp.92 – 99

3章 シェルの開発

  • 3.5 機能コンテナを管理する
    • 3.5.1 チャットスライダーの拡大や格納を行うメソッドを記述する(例3-11~)
      • コード例
        toggleChatの引数にcallback関数があるが、callback関数がとる引数が明示されておらずわかりづらい。
    • 3.5.2 チャットスライダークリックイベントハンドラを追加する
      • 例3-12
        • 丸数字の2はstateMapのis_chat_retracted : trueの行につけるべき
        • チャットスライダー格納のcallback関数を実行するコードのインデントがずれている
      • p.97 本文の4~5行目
        イベントハンド(脱字)
      • 例3-13の丸数字3のスタイルのインデントがずれている
  • 3.6 アプリケーション状態を管理する
    • 3.6.1 ブラウザユーザが期待する振る舞いを理解する

「シングルページWebアプリケーション」第11回(6/21)

Posted on by 0 comment

参加者 沼田(読み手)、青木、今井(記)

範囲 pp.79-92

3章 シェルの開発

  • 3.3 機能コンテナを作成する
    • 3.3.1 方式を選ぶ
    • 3.3.2 シェルHTMLを記述する
      • p.80 例3-6
        • <html>に不要なインデントがあり、</html>とずれている。
        • ④の説明に「右下に固定する」とあるが、このコードだけでは固定されない。
    • 3.3.3 シェルCSSを記述する
  • 3.4 機能コンテナをレンダリングする
    • 3.4.1 HTMLをJavaScriptに変換する
    • 3.4.2 JavaScriptにHTMLテンプレートを追加する
      • p.87
        ①~③の説明がp.86と重複している。
    • 3.4.3 シェルスタイルシートを記述する
    • 3.4.4 アプリケーションがシェルを使うようにする
  • 3.5 機能コンテナを管理する
    • 3.5.1 チャットスライダーの拡大や格納を行うメソッドを記述する (p.92 例3-11の前まで)

「シングルページWebアプリケーション」第10回(6/14)

Posted on by 0 comment

参加者 今井(読み手)、沼田(記)
範囲 pp.423 – 431

付録A JavaScriptコーディング標準

  • A.8 構文
    • A.8.2 文
      • A.8.2.5 return
      • A.8.2.6 switch
        • caseとbreakが並んでいるのは違和感がある。
      • A.8.2.7 try
      • A.8.2.8 while
      • A.8.2.9 with
    • A.8.3 その他の構文
      • A.8.3.1 カンマ演算子を避ける
      • A.8.3.2 割り当て式を避ける
      • A.8.3.3 必ず===と!==の比較を使う。
        • コード例では演算子が使用されていない。
      • A.8.3.4 プラスとマイナスの混乱を避ける
      • A.8.3.5 evalを使わない
  • A.9 コードを検証する
    • A.9.1 JSLintをインストールする
    • A.9.2 JSLintを設定する
    • A.9.3 JSLintを使う
      • シェルスクリプト
        TMP_FILE名にプロセスの情報がからんでいない。二人以上が同時にjslintを実行したらおかしくなるのでは?
  • A.10 モジュール用のテンプレート

    • 作成者も著作権情報も書かれていない。

    • テンプレートなのだから、コメントくらいは書いておくべきでは?
  • A.11 まとめ

「シングルページWebアプリケーション」第9回(6/10)

Posted on by 0 comment

参加者 沼田(読み手)、今井(記)

範囲 pp.411-422

付録A JavaScriptコーディング標準

  • A.3 変数名
    • A.3.2 命名規則を使う
      • A.3.2.12 関数の命名
      • A.3.2.13 型がわからない変数の命名
    • A.3.3 命名規則を利用する
  • A.4 変数の宣言と割り当て
    • p,415 箇条書き3番目内、悪い例 ミススペル?
      coor_mapcoord_map
  • A.5 関数
    • p.416 コード中の hasOwnProperty()とは?
      そのオブジェクト自身にプロパティがあるか。プロトタイプチェインのプロパティはチェックしない。
  • A.6 名前空間
  • A.7 ファイル名とレイアウト
  • A.8 構文
    • A.8.1 ラベル
      • p.421 コード2行目 脱字
        [ Anglo-Arabian',[ 'Anglo-Arabian',
    • A.8.2 文
      • A.8.2.1 continue
        • p.421 ラベルつきcontinue
          • 多重ループを飛び越してcontinueするときは便利だがあまりない。
          • そもそもcontinue自体をあまり使わない。breakは使うけど。
      • A.8.2.2 do
      • A.8.2.3 for
        • p.422 最初の形式 (initialization; condition; update)
          「反復回数がわからない配列やループで使うようにする」とあるが、複数の配列をまわすときなど、回数がわかっても添え字でまわすほうが便利。
      • A.8.2.4 if

「シングルページWebアプリケーション」第8回(6/7)

Posted on by 0 comment

参加者 今井(読み手)、沼田(記)
範囲 pp.400 – 411

付録A JavaScriptコーディング標準

  • A.2 コードレイアウトとコメント
    • A.2.1 読みやすくなるようにコードをレイアウトする
      • A.2.1.5 ホワイトスペースを使って関数とキーワードを区別する
      • A.2.1.6 一貫性を持って引用符を使う
    • A.2.2 コメントで説明して文書化する
      • A.2.2.1 コードを戦略的に説明する
        • l.1
          …その価値を最大限することを…の方が自然では?
        • 例A-12のひとつめの変数
          htmlを格納する変数の場合、接頭辞にすることのほうが多いかも。変数定義の位置等を揃えられるし。
      • A.2.2.2 APIとTODOを文書化する
  • A.3 変数名
    • A.3.1 命名規則を使ってコメントを減らし改善する
      • p.406 最終行
        例Bで変更した場合と比べてみてほしい。の方が自然では?
    • A.3.2 命名規則を使う
      • A.3.2.1 一般的な文字を使う
        • 通常のyが使用されているように見える。原書ではどのような文字が使用されていたのだろう…?
      • A.3.2.2 変数スコープを伝える
      • A.3.2.3 変数の型が重要であることを認識する
      • A.3.2.4 ブール値の命名
      • A.3.2.5 文字列の命名
      • A.3.2.6 整数の命名
      • A.3.2.7 数値の命名
      • A.3.2.8 正規表現の命名
      • A.3.2.9 配列の命名
        • 表A-6
          1行目のローカルスコープの変数名のハイフンはアンダーバーの間違いだろう(変数名にハイフンは使えない)。
          だとしたら、同じような例が2つ書いてある意味は?
      • A.3.2.10 マップの命名
      • A.3.2.11 オブジェクトの命名