ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

PMBOKのお勉強 その41 - 8.3

2011-10-31 22:37:51 | そのほか
今、

プロジェクトマネジメント 知識体系ガイド(PMBOKガイド)第4版
http://www.amazon.co.jp/dp/1933890681

のお勉強をしています。

前回は8.2章だったので、今回は8.3章です




■8.3 品質管理


<<インプット>>

・プロジェクトマネジメント計画書
   4.2より

・品質尺度
   8.1より

・品質チェックリスト
   8.1より

・作業パフォーマンス測定結果
  評価指標には以下のものがあるが、これらに限定されない
   ・技術パフォーマンス計画と実績との比較
   ・スケジュールパフォーマンスの計画と実績との比較
   ・コストパフォーマンスの計画と実績との比較

・承認済み変更要求

・要素成果物
   4.3より

・組織のプロセス資産


<<ツールと技法>>

・特性要因図(石川ダイアグラム、魚の骨ダイアグラム)
  11.2でも利用

・管理図
  8.1参照

・フローチャート化
  8.1参照、11.2でも利用

・ヒストグラム

・パレート図

・ラン・チャート
  傾向分析は、以下に示す事項を監視するときによく用いる
    技術のパフォーマンス
    コストとスケジュールのパフォーマンス

・散布図

・統計的サンプリング
  8.1参照

・検査

・承認済み変更要求のレビュー


<<アウトプット>>

・品質管理測定結果

・確認済み変更

・確認済み要素成果物
  5.4のインプット

・組織のプロセス資産更新版
  以下のものがあるが、これらに限定されない
    記入済みチェックリスト(4.1より)
    文書化された教訓

・変更要求
  4.4を開始

・プロジェクトマネジメント計画書更新版
  更新されるものは、以下のものがあるが、これに限定されない
    ・品質マネジメント計画書
    ・プロセス改善計画書

・プロジェクト文書更新版
  更新されるものは、以下のものがあるが、これに限定されない
    ・品質標準

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「リンゴのロゴが酷似」いや、似てないと思う。アップルのロゴに多義図形は入ってない!

2011-10-31 19:18:45 | Weblog
「リンゴのロゴが酷似」って、こりゃーappleいいすぎじゃあありませんか?
このドイツのカフェのマーク、

多義図形になっているところが、ポイントなんでしょ!

※多義図形:1つの絵が2つに見える。
      ゲシュタルト心理学で習う、老婆と貴婦人など

え、2つに見えない?

こうやって書くと、緑色のスカーフ(エスニックターバンっていうの?)を
頭に巻いた、若い女性だよねえ。

で、こうやって書くと・・・

長い髪の毛をした、日本の平安女性の顔だよねえ・・・

二重に見えるでしょ・・・

こんな遊び心は、appleのロゴにはないよねえ・・・
だから、似てない気がするんだけど・・・

「リンゴのロゴが酷似」=米アップルがカフェに抗議―ドイツ
http://headlines.yahoo.co.jp/hl?a=20111031-00000016-jij-int

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

初めてのRubyを読む その40 8.4

2011-10-31 15:54:11 | Ruby
「初めてのRuby」を読むの続き

8章 オブジェクトとクラス
8.4 特異メソッドと特異クラス

から




■8.4 特異メソッドと特異クラス
・特定のオブジェクトためだけのクラスやメソッド
  →特異クラス、特異メソッド




■8.4.1 特異メソッド
・特異メソッドは、クラスではなくインスタンスに直接所属するメソッド
・def式のメソッドの部分に(オブジェクト).(メソッド名)形式を記述
   →そのオブジェクトだけに属するメソッドを定義

・Singletonパターン
 特異メソッドの用途のひとつは、Singletonパターンの代替
  →集中管理したいという要望から、複数のインスタンスがあると困る
     →GoFのSingletonパターンの利用
     →Rubyの場合、特異メソッドを利用
     →特異メソッドの英訳はsingleton method




■8.4.2 特異クラス
・特異クラスは、ある特定のインスタンスのためだけにあるクラス
・class式においてクラス名を指定する代わりに
   << オブジェクト
 (<<は本当は半角)と記述する
・標準クラスライブラリは、特異クラスがあまり表に出てこないように作成
 されている
・特異メソッドとの関係
 概念上は、特異メソッドはインスタンスに直接属するメソッド
 実装上は、特異メソッドは、特異クラスのインスタンスメソッド




■8.4.3 クラスメソッドとメタクラス
・クラスメソッドとは、実はClassオブジェクトの特異メソッド
・メタクラス
 特異メソッドと特異クラスは実質上、同じものを表現する文法
 なので特異クラスを用いてクラスメソッドを定義する流儀もある
 一般に「Classオブジェクトの特異クラス」がメタクラス

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

大日本、凸版は、電子書籍販売のチャンスだね!このチャンスを生かせるか?

2011-10-31 08:41:06 | Twitter
 Amazonは、勘違いしている。
 本が電子化されたら、要らなくなるのは、出版社じゃなくて、本屋だ。
 CDが、売れなくて、たしかに芸能プロダクションも困っているけど、それ以上に困るのは、
 CD屋さん(レコード店)だ。同じ理屈。

 Amazonが法外な値段を要求している今こそ、印刷やさんである、凸版、大日本はチャンスだ!なんたって、印刷やさんは、データを抑えているので、印刷している本と、電子書籍の同時販売ができる。

 そこで、凸版、大日本が、出版社に仕掛け、

  ・印刷会社が電子書籍マーケットを立ち上げ、
  ・そこで電子書籍を販売、
  ・価格や売上の分配は、出版社と相談して決める、
  ・フォーマットは、PDFでも、それ以外でもなんでもやります
  ・紙媒体を含め、総合プロデュース
  ・書名をいれれば、Google検索で引っかかるようにすれば、
   Amazonじゃなくrてもいいよねえ・・・

 となってくれば・・・一気にひるがっていくんじゃないかなあ?

 Amazonが求める、全書籍というのは、こりゃーやらざるを得ないというのも
 出版社は納得するだろう。

 もし、やらなければ、じすいされるのがオチ、
 だったら、自分たちで販売して、
 すこしでもおかねを儲けたほうがいい。

 このとき、印刷会社と組んでいれば、出版社は、印刷会社に本を送りつけて(^^;)
 印刷会社は、あとスキャナーで読んで、電子販売までを、やるということになる。

 印刷会社は、電子書籍マーケットを立ち上げるけど、同時に紙の本でも買えるようにしておく。印刷会社本の販売をするのが面倒なら、楽天Booksとかと提携して、紙の本はそちらが販売するようにすればOK

 そうすると、印刷会社に購買情報が集まるので、そうしたら、それをマイニングして、その結果を出版会社に知らせるようにすれば・・・



   Amazonという巨大な紙の本を売っている会社は、いらなくなる・・・??



Amazon「全書籍を電子化しろ。売上の半分以上を渡せ。紙書籍より安く売れ」 出版社大激怒
http://blog.livedoor.jp/dqnplus/archives/1673159.html



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

10月30日(日)のつぶやき

2011-10-31 03:03:55 | Twitter
21:24 from gooBlog production
ジョブスさんの葬式は、曹洞宗だったって、大橋照子さんが言ってた http://t.co/Uz78Y4oa
by xmldtp on Twitter

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ジョブスさんの葬式は、曹洞宗だったって、大橋照子さんが言ってた

2011-10-30 21:19:51 | トピックス
 さっき、私の書いたポエムで大橋照子さんが、リスナー(よこずなベイスターズさん)の手紙を読んでいただけど、それによると、スティーブジョブスさんの葬式は、曹洞宗だったそうな。
 長岡さんが、なぜジョブスさんが曹洞宗で葬式をあげたか、説明してくれた。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PMBOKのお勉強 その40 - 8.2

2011-10-28 18:12:40 | そのほか
今、

プロジェクトマネジメント 知識体系ガイド(PMBOKガイド)第4版
http://www.amazon.co.jp/dp/1933890681

のお勉強をしています。

前回は8.1章だったので、今回は8.2章です





■8.2 品質保障


<<インプット>>

・プロジェクトマネジメント計画書
  4.2より。以下の情報が含まれる
   品質マネジメント計画書
   プロセス改善計画書

・品質尺度
  8.1より

・作業パフォーマンス情報
  以下のものがあるが、これに限定されない
    技術パフォーマンスの測定結果
    プロジェクト要素成果物の状況
    スケジュールの進捗状況
    発生したコスト

・品質管理測定結果


<<ツールと技法>>

・品質計画と品質管理のツールと技法
  8.1、8.3

・品質監査

・プロセス分析


<<アウトプット>>

・組織のプロセス資産更新版

・変更要求

・プロジェクトマネジメント計画書更新版
  更新されるものは、以下のものがあるが、
  これに限定されない
    ・品質マネジメント計画書
    ・スケジュール・マネジメント計画書
    ・コスト・マネジメント計画書


・プロジェクト文書更新版
  更新されるものは、以下のものがあるが、
  これに限定されない
    ・品質監査報告書
    ・トレーニング計画書
    ・プロセス文書

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

初めてのRubyを読む その39 8.3

2011-10-28 14:02:18 | Ruby
「初めてのRuby」を読むの続き

8章 オブジェクトとクラス
8.3 アクセス権限

から




■8.3 アクセス権限
・メソッドにはアクセス権限を設定できる
・3種類の権限設定が用意されている

  public
   どこからでも呼び出すことが出来る

  protected
   そのクラス又はサブクラスのインスタンスメソッドから
   しか、呼び出すことが出来ない

  private
   レシーバ省略形式でしか、呼び出すことができない
   したがって、selfに対してしか呼びさせない

 →JavaやC#と用語が似ているが、protectedやprivateが意味する
  ところは異なるので注意!


・おのおののアクセス権限設定には、メソッドが対応している
  ・デフォルトでは、class式の中で定義されたメソッドは
   public

  ・デフォルトでは、トップレベルで定義されたメソッドは
   private

  ・引数をつけずにメソッドpublicを呼び出すと、それ以降に定義
   されるメソッドはpublic
     →protected,privateでも同じ

  ・メソッドpublicにインスタンスメソッド名を文字列または
   シンボルで渡すと、そのメソッドはpublic
     →protected,privateでも同じ

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PMBOKのお勉強 その39 - 8.1

2011-10-27 18:53:02 | そのほか
今、

プロジェクトマネジメント 知識体系ガイド(PMBOKガイド)第4版
http://www.amazon.co.jp/dp/1933890681

のお勉強をしています。

前回は7.3章でした。

今日から8章 プロジェクト品質マネジメント

今日は8.1章です




■8.1 品質計画


<<インプット>>

・スコープ・ベースライン
   スコープ記述書
   WBS
   WBS辞書

・ステークホルダー登録簿

・コスト・パフォーマンス・ベースライン
  7.2より

・スケジュールベースライン
  6.5より

・リスク登録簿
  11.2より

・組織体の環境要因

・組織のプロセス資産



<<ツールと技法>>

・費用便益分析

・品質コスト(COQ)

・管理図

・ベンチマーク

・実験計画法(DOE)

・統計的サンプリング

・フローチャート化

・特定の品質管理手法
   ・シックスシグマ
   ・リーンシックスシグマ
   ・CMMI
 などをはじめとする、数多くの手法が存在する


・その他の品質計画ツール
  以下のようなものがあるが、これらに限定されない
    ブレーンストーミング
    親和図
    フォース・フィールド
    ノミナル・グループ手法
    マトリックス・ダイアグラム
    優先順位マトリックス




<<アウトプット>>

・品質マネジメント計画書
   プロジェクトマネジメント計画書(4.2)
   の構成要素または補助計画書

・品質尺度

・品質チェックリスト

・プロセス改善計画書
   プロセス境界
   プロセス・コンフィギュレーション
   プロセス尺度
   パフォーマンス改善目標

・プロジェクト文書更新版
  以下のものがあるが、これに限定されない
   ステークホルダー登録簿
   責任分担マトリックス(9.1より)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

初めてのRubyを読む その38 8.2

2011-10-27 14:53:00 | Ruby
「初めてのRuby」を読むの続き

8章 オブジェクトとクラス
8.2 定数と変数

から




■8.2 定数と変数

・インスタンス変数、クラス変数、定数は、
 クラスと関係が深い




■8.2.1 インスタンス変数

・ここのオブジェクトは固有のインスタンス変数を持つことが出来る。
・インスタンス変数はそのオブジェクトの内部状態を表す変数
・先頭が@で始まる名前の変数はインスタンス変数
・オブジェクトAとオブジェクトBでインスタンス変数名が同じであっても
 別の変数
・インスタンス変数は所属しているオブジェクトのメソッドからしか
 アクセスできない
  →実は抜け道がある




■8.2.2 クラス変数
・クラス変数は、クラスと子孫クラス、それら全てのクラスのインスタンス間
 で共有される変数
・継承階層の全体で共有したいグローバルな状態を表現するのに使う
  →きわめてスコープの広い変数で、グローバル変数に近い




■8.2.3 定数
・定数は、クラスに属する変更不能な変数
・トップレベルに定数を記述すると、Objectクラスの定数
  →アクセスするには
     ::定数名
     Object::定数名






  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

iPhone4S、来月にも韓国で発売の見通し

2011-10-27 11:34:45 | ケータイ

サムスン電子が国内で「iPhone4S」に対する販売禁止仮処分申請を提起する可能性も注目

ですよね!

韓国は、日米とは、ちがうからなあ・・・
iPhoneは、韓国が起源!
とか言い出しても、
「またはじまった・・・」
と思うだけで、だれも、驚かない(^^;)

ここのニュース

iPhone4S、来月にも韓国で発売の見通し
http://headlines.yahoo.co.jp/hl?a=20111027-00000006-cnippou-kr

(上記太字は、このニュースからの引用)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

初めてのRubyを読む その37 8.1

2011-10-27 00:13:08 | Ruby
「初めてのRuby」を読むの続き

今日から
8章 オブジェクトとクラス
8.1 クラス定義

から





■8 オブジェクトとクラス
・RubyはクラスベースのOOを主にサポート
  →基本的にはC++やJava,C#に似ている
・Rubyに特徴的な機能
  オブジェクトとしてのクラス
  メタクラス
  多重継承の利点を取り込むためのモジュール機能
  得意メソッド
・プロトタイプベースのOOもある程度は可能
・ArrayとHashを用いれば、最低限のデータ構造は構築できる
  →大きなプログラムを構築する才には、独自のクラスを
   定義する必要性




■8.1 クラス定義
・ユーザーが独自のクラスを定義するにはclass式を使う
・クラス定義の中には任意の式を書くことができる
  →圧倒的に多く行われるのは、インスタンスメソッドの定義

・クラス名は、必ず大文字デ始まる識別しでなければならない
  →クラス名が定数名でもあるから




■8.1.1 継承
・<(本当は小文字)に続けて他のクラスを指定すると、そのクラスを
 継承する

・class式において、親クラスを省略した場合はObjectクラスを継承する
  →複数のクラスを継承すること(多重継承)はできない

・一般に変更不能なクラスのサブクラスが変更可能なことは、よくない




■8.1.2 インスタンスメソッドの定義
・class式内部にdef式をかくと、そのメソッドはインスタンスメソッドになる。

・トップレベル関数もインスタンスメソッドの一種
  →Objectクラスに属している

・トップレベルに定義したメソッドは、レシーバーが何であれ呼び出せる
  →Rubyプログラムの任意の箇所でレシーバー省略形式により呼び出す
   ことができる




■8.1.3 クラスメソッドの定義
・特定のインスタンスでなく、クラス全体に属するメソッドが必要になるとき
  →C++やJava,C#にstaticメソッド
 クラス名をつけてメソッドを定義すると、そのメソッドはクラスメソッドになる

・このメソッドはクラスび直接属していて、インスタンスを介することなく
 呼び出せる




■8.1.4 インスタンス化
・クラスをインスタンス化するには、クラスメソッドnewを呼ぶ
 →newに渡した引数は、そのままinitializeに渡される
 →初期化されたインスタンスがnewメソッドから返ってくる

・Initialize
 このメソッドは、インスタンスを構築した直後に自動的に呼ばれる
 →インスタンスの初期化処理をおこなう
 →必要なリソースを確保したりする
   →コンストラクタのようなものです。




■8.1.5 属性
・オブジェクトの属性とは、オブジェクトに属していて、取得、設定が可能な値
 →実は、属性は単なるメソッド
 →見た目としては変数の一種

・属性の設定
 属性への値の設定を変数への代入と同じ要領で行う
 自己代入演算も、変数に対して行うのと同様に属性に対してもおこなうことができる

・属性の設定で行ったメソッドをどこで定義
  →Class#attr_accessor:属性メソッドを定義するメソッド
     →プログラムを作成すいるプログラム
      強力なメタプログラミング機能の一部

・予約語をメソッド名として問題なく使える
  →あまりおすすめできない




■8.1.6 クラス定義の追加
・定義済みのクラスに対して、いつでも定義を追加することができる
  →既存のクラスに対して、再びclass定義式を記述すれば、クラス定義を変更できる
    →定義追加の際には、親クラス指定を省くのが普通

・定義の上書き
 既存のメソッド定義を上書きすることもできる

・上書きの禁止
 どうしても定義の変更を禁止したい場合、Class#freezeメソッドを使う
  →初期状態はfreezeしていない:危険な操作であっても一律に禁止せず
   プログラマの良識に任せるのがRubyの文化




■8.1.7 スーパークラスの呼び出し
・super式は、メソッドの中から親クラスの同名のメソッドを呼び出す
  →元の挙動を利用しつつ、親クラスの挙動を上書きする際に重宝する
・superとだけ記述すると、現在のメソッドの引数をそのまま引き渡して
 親クラスの実装を呼び出す
  →引数を1つも渡さずに親クラスの実装を呼び出したい場合は、super()とかく

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PMBOKのお勉強 その38 - 7.3

2011-10-26 14:48:05 | そのほか
今、

プロジェクトマネジメント 知識体系ガイド(PMBOKガイド)第4版
http://www.amazon.co.jp/dp/1933890681

のお勉強をしています。

前回は7.2章だったので、今回は7.3章です




■7.3 コスト・コントロール

<<インプット>>

・プロジェクトマネジメント計画書
  4.2より。次のような情報が含まれている。
   ・コスト・パフォーマンス・ベースライン
   ・コスト・マネジメント計画書

・プロジェクト資金要求事項
  7.2より

・作業パフォーマンス情報

・組織のプロセス資産



<<ツールと技法>>

・アーンドバリュー・マネージメント
  以下の3つの基本的な側面を表現し、監視する
    ブランドバリュー
    アーンドバリュー
    実コスト
  実コストとベースラインとの差異
    スケジュール差異
    コスト差異
  これらは効率指数に変換できる
    スケジュール効率指数
    コスト効率指数

・予測
  EAC(完成時総コスト見積もり)の一般的な3つの方法
    予算レートを用いたETCに基づくEACの予測
    現在のCPIを用いたETCに基づくEACの予測
    SPIおよびCPIを考慮したETCに基づくEACの予測

・残作業効率指数(TCPI)

・パフォーマンス・レビュー
   次のような情報が得られる
     差異分析
     傾向分析
     アーンドバリューパフォーマンス

・差異分析

・プロジェクトマネジメントソフトウエア


<<アウトプット>>

・作業パフォーマンス測定結果

・予算の予測

・組織のプロセス資産更新版
  以下のものがあるが、これらに限定されない
    差異の原因
    選択した是正処置とその選択理由
    プロジェクトのコストコントロールから得られるその他の教訓

・変更要求

・プロジェクトマネジメント計画書更新版
  更新されるものには、以下のものがあるが、これらに限定されない
    コスト・パフォーマンス・ベースライン
    コスト・マネジメント計画書

・プロジェクト文書更新版
  以下のものがあるが、これらに限定されない
    コスト見積もり
    見積もりの根拠



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

KDDI版IPhoneの○で速度落ちは、「渋滞情報」をOFFにすれば、直るの?

2011-10-26 10:08:34 | ケータイ
昨日の話につながりあるのかな?

KDDI(au)版iPhoneで、○が表示されると、通信速度が落ちるという問題があるらしい。

さまざまな噂が飛び交うKDDI版iPhoneの「○」問題
http://apple.slashdot.jp/story/11/10/24/0831234/

(以下太字は上記サイトより引用)

それについては、コメントに

EV-DO通信が不安定な場合は、1x通信(遅い時のSBM回線よりは少し速いけど、やっぱ遅い)になってしまう。
繋がらないよりは遅い方式でも繋がった方がマシ。
でもiOS上のアプリは行儀が悪いのか、iOSの仕様が悪いのか、無駄にコネクションを張り続けるものが密かにいる。
1xでつながった時にコネクションを維持し続けるので、EV-DOが可能になっても切り替えられない。


ってことで、

通信状態悪化+お行儀の悪いアプリのせい!

ってことらしい。

通信状態を改善しろ!というのは難しい?ので、お行儀悪いアプリ探し!っていうことになるけど、
さまざまな、憶測が・・・

設定 → 一般 → ネットワーク → 音声通話ローミングをオフ → 再起動

ローミングがわるいの?

設定 → 位置情報サービス →システムサービス →渋滞情報

渋滞情報が、トラフィックを渋滞させているの(^^;)?

あ~・・・なんだ・・・
この方法だと、きりないような気が・・・


もう、アプリのもぐらたたき?はやめて、
もう一方の通信状態を改善するために、
KDDIは、アンテナ変えるようにAppleに提案したら?
そうすれば、ソフトバンクにも、世界的にもメリットでしょう・・
日本のアンテナ技術をAppleに知らしめる!!!


・・・って、受信感度が上がると、送信出力も上がることになるから、
まずいのかしら・・・?
あれ、送信出力って、送信機から出る出力だっけ?
アンテナからの出力だっけ?
電波法で規制されているのって・・?

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

初めてのRubyを読む その36 7.3

2011-10-25 16:56:04 | Ruby
「初めてのRuby」を読むの続き

7章 メソッド
7.3 ブロック付きメソッド

から




■7.3 ブロック付きメソッド

・メソッド呼び出しにはブロックを付加できる
  →引数とともにメソッドに引き渡される

・ブロック付きメソッド呼び出しの主な用途は3つ
  →ループの抽象化:2章
   ブロックへの機能追加。典型的にはリソース管理:5章
   コールバック関数・イベントハンドラ:Arrays.sort

・ブロックの数
  ・複数のブロックが必要になる場合はほとんどないことが
   歴史的に知られている
    →どうしても必要な場合は、Proc.newやlambdaを使う




■7.3.1 クロージャーとしてのブロック

・ブロックがクロージャーとして振舞っている
  →ブロック内に現れる自由変数はブロックの外部環境に従う
  →ブロックの外と中で変数が共有され、ブロック内で変数を
   書き換えると、外部にも影響する





■7.3.2 ブロック引数とブロックローカル変数
・メソッドに渡したブロックはメソッドから呼び返されるときに
 引数を受け取ることが出来る
・ブロックは独自のローカル変数をもちことが出来る
・Ruby1.9で文法が整理された
  →工法互換性が損なわれている

・Ruby1.9の場合
  ブロック付き呼び出しは、新しい変数スコープを用意する
  ブロック引数は、外部のローカル変数とは独立
    →同名の変数があっても、互いに影響しない
  ブロック変数に続けて、任意のブロックローカル変数を宣言することが出来る
   →これらの変数は、外部の同名のローカル変数とは独立したものになる
   →ブロック内の初出のローカル変数は、宣言しなくてもブロックローカル

・Ruby1.8
  ブロック引数はローカル変数と独立していない
   →同名のローカル変数があると、上書きする
   →ブロックローカルの宣言構文はない
   →初出のローカル変数がブロックローカルになるのは同じ

・以下の2点に気をつければ、1.8と1,9の混乱はされられる
  外部のローカル変数と同名のブロック引数を用いない
  外部で既出のローカル変数はブロック内外で共有(クロージャー)





■7.3.3 ブロック付きメソッドの定義
・特別な方法はなく、def式を用いて定義
・yield式は、メソッド内から呼び出し側のブロックをコールバックする構文
 →後に0個以上の式を取ることが出来る
 →それらの式の値をブロック呼び出し時に、ブロック引数として渡す
・イテレーター内のyield
 yieldを利用する点を除いては、ブロックつきメソッドは普通のメソッドと
 変わらない
   メソッド本体では任意の処理を行える
   どんな形でyieldを実行しても良い

・Enumeration
 Ruby1.9では、ブロックを付けずにイテレータを呼び出すと、Enumerable::Enumerator
 オブジェクトが返る
 ユーザー定義のイテレーターはそうはいかない
   →自前で明示的に実装する

・yield式は、ブロックの評価値を返す
  →ブロックをつけていない場合は例外発生




■7.3.4 Proc
・受け取ったブロックを変数に代入したり、他のメソッド呼び出しの引数にしたい
  →呼び出し側のブロックをオブジェクトとして取得したい
  →仮引数リストの最後に&で修飾された引数を置く
     →この引く数に呼び出し側のブロックをあらわすProcオブジェクトが
      格納される
・ブロックをProc化してためておいて後で使うのもよくある
・Procをコードブロックの代わりに引き渡す
  →&で修飾して、引数リストの最後におく

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする