Skip to content
jacoyutorius edited this page Jun 9, 2011 · 30 revisions

AGENDA

  1. AGENDAの共有(by司会)

  2. 先回決めたTryの再確認

    • モデレータを誰かにふる :解決
    • ちゃんとハンズオン
    • ホワイトボードを使いまくる:使いましょう
    • 手元PCを気軽にプロジェクタに映す:
    • ハンズオン用のPJを作っておく
    • Rounting道場を動かしてくる
    • Ruby入門書を読んで勉強してくる
  3. 初参加者の自己紹介

    • @toshi0328t さん
    • @Cot_K (コティ)さん -- @sea_mountain さんのご学友
    • @indigo_1030 さん -- @Tysonさんのご友人
    • @nek_s さん

-既存参加者についてはポジションペーパー読んどいてください。

  1. メタプログラミングRuby勉強会
    • 節単位でまとめ
    • Wikiの疑問点の説明(書いた人)、それに関する議論(全員)
    • 自由に質問/コメントしてよい
    • モデレータが調整する
  • p107 yieldの読みは「イールド」、イにアクセントでOK? (mackato)

⇒【発音記号】ji'ːld  イにアクセントです。(tyson)

⇒イエールド!!だとテンションウP!なのに・・・。

  • P112 『ブロックの引数を〜修正されている』の意味がよく分かりません。   Ruby1.9では「x # => 1」となるようだが、yieldの引数「2」はどうなってしまうのかよく分からない。(tyson)

⇒不自然なので1.9で治ったのでは?

  • P112 同じ箇所ですが、『〜先のコードのxは1つだけとなり、』の意味がわかりませんでした。(yuto)

⇒本来ここで2つのxが存在するはずが、1つだけになってしまう、という意味かな(suchi)

  • P113 blocks/scopes.rb のコードを実行すると、my_method内でlocal_variablesが「v3」と一緒にnilを吐くのですが、私だけでしょうか?(yuto)

http://codetype.org/YADUMrVRDL | http://codetype.org/XuqDmZHqyx メソッド内のpとversion (cherenkov)  メソッドの戻り値がnilでそれが出ている。1.9の場合はpの出力結果が返ってくる。

  • p.121 一番下の partial_mock_spec.rb がなにをやっているのかわかりませんでした(suchi)
  • 同上・・・「テスト対象に同様のインスタンス変数がある場合、どうすればいいだろう?」 の答えがpartial_mock_spec.rbの中に あるのでしょうか? インスタンス内に同じクラスのインスタンスを保管したインスタンス変数を設定していることが何を意味するのか理解できませんです。(ywaka)

⇒objectがメソッドだと説明文と合っているような気がする。 オブジェクトが入れ替わらないことを検証したいのではないか?(下2行はあまり関係ない)。  どなたかわかったらwikiに書いてください。

  • p.130 UnboundMethodオブジェクト「この風変わりな機能を実際に使う理由」はどういうときなんでしょうか。難しい(suchi)(ywaka)

⇒特異メソッドを使い回すとき?と思いましたが、特異メソッドを定義したらbindできませんでした。。。  TypeError: singleton method bound for a different object (tarya)

  • P135 下から三行目 プログラムは@eventsをイテレートする。の部分ですが、  @eventsの中の要素をループして処理するという意味であってるでしょうか?あとイテレートという呼び方はよく使いますか?(makita)

⇒それで間違いない。Rubyの本ではイテレートと使われている。  私は「の要素をループする」という言葉の方を良く使いますが、イテレートという言葉も別に違和感ありません。他のところでも聞いたことあるような。(tarya)

  • p.137 「クリーンルームのインスタンスメソッドなら、すべてのeventsとsetupsから見えるのだ。」 :結構考え込んでしまったのですが、event, setupというカーネルメソッドに渡すブロックの中で使えるメソッドを専用のクリーンルームクラスで実装できる、という意味であっていますでしょうか? (tarya)

⇒ブロックを評価するためだけにあるオブジェクトを一般的に「クリーンルーム」と呼ぶ。  そのクリーンルームに、event , setupなどよく使うメソッドを定義すると便利だよね、ということか?  それをクリーンルームと呼ぶべきなのかは不明。。。

  • クラスの中にメソッドの外側に書いたコードっていつ実行されるんですか?ロード時? ⇒ロード時に実行される。

  • インスタンス変数はオブジェクトそれぞれに持っている。  1章で説明されているとおり、クラス内で宣言されると、@hogeはそのクラスのインスタンス変数になる  メソッドの外で宣言したインスタンス変数は、クラスのインスタンス変数になる。  @@を付けるとクラス変数になる。C++で言うところのstatic変数。  C#はクラスの外で変数定義するとクラス変数になるが、初期化はRubyではNG。

  • 生みの親はイテレータと読んでいる、今はブロックと呼ばれることが多い

-クイズ

  • p.110  beginは予期される例外がある場合に使う。  ensureはC#でいうところのfinally。逆にfinallyの有効範囲を決める、という意味で使える。

  • p.115  begin,endureはスコープゲートではない。  begin,ensure何にある変数を参照したくない場合はスコープをまたぐ必要がある。

  • p.135  @が付いているので外側のスコープのインスタンス変数なので、どこからでもアクセス可能。  env = Object.newはクリーンルーム。

  1. 発表「浜松Rails3道場」
  • 3ヶ条  習うより慣れろ!  理論より実用  未知を恐れない

  • 環境  Ruby 1.9.2  Rails 3.0.7

  • RailsWizardが便利!!  コマンドを選択してURLを生成。

  • Routingとは・・・? HTTP リクエストとコントローラのアクションを結ぶ仕組み。

  • いけてるテンプレート  「Skeleton」  HTML, CSS, javascript でできている。  Html2Haml で変換。  ⇒変換したものはgithubへ。

  • リソース用のコントローラを生成  update ,destoroyが同じメソッドだが?  同じurlにアクセスするとrailsは暗黙的にputなのかdeleteなのか渡してる。  同じパスにアクセスしてお、もともとhTTPに持ってるメソッドなので振る舞いが分かれる。

  • 作成されるヘルパーの名前は規則で決まっている。  member にアクセスするのであれば基本はpage_path(id)

  • Resource Rountingを理解してしまえば、開発者間で共通認識として使える。 config/route.rbを定義することになる。

  • テストはRSpec。今やデファクト。 テンプレートでRSpecで指定+gemでRSpecをインストールしているとRSpecのテストコードも作成される

  • sassとはスタイルシートをもっと簡単にかけるようにするもの。 CSS に変換される必要がある。

  • Powってなにがうれしいの?URLをlocalhostにする以外には?  rails serverする必要ない。  Powはアクセスがあったら勝手に立ち上がる、アクセスがしばらくなかったら勝手に落ちる。  サブドメイン、foo.rails3.dojo,を付けてもアクセスできる。

  • Pow再起動のコマンドは?  touch tmp/restart.txt  tmpディレクトリの下にrestart.txtを付けると再起動する。

  • Powの設定の仕方  homeディレクトリの直下に名前付きのシンボリックリンクを作成

  • HAMLはerbの代わりになる?  なると思う。  今のところRubyのみ。  ブロックで囲むのではなく、インデントで判断する。

  • 『次回』  多分、Active Record

  1. KPT(最後の15分)
    • 全員でKPTを書く
    • それに関して意見交換
    • 全体での次回のTry項目を決める

『K』  * dojo面白かった

 * クイズの答えを一行一行説明した

 * dojoで色々な便利ツールを知った   『P』  * みんなの理解度がわからない

 * ネットワークが繋がらない(モデレータや発表者は各自で対策が必要)

 * 予習不足

『T』  * 過去の未解決質問を検討する時間があってもいいかもしれない

 * コードを事前に用意してほしい

 * 議事録を二人以上で書いてみる

 * 一回は発言する

  1. 次回の予告と担当割り振り
    • 告知(ATNDとか) :@チェレンコフ
    • モデレータ : @tachibana
    • 議事禄er :@taryaさん , @sasakiさん

メタプログラミングRuby勉強会

第3章 水曜日: ブロック

LT

Clone this wiki locally