武田哲也さんのRuby技術者認定試験受験記の続き

武田哲也 @__takeda さんのRuby技術者認定試験の受験記(下記)の続きになります。 http://togetter.com/li/769555
0
武田哲也 @__takeda

やった!!ヨコタさん!松江の!「再受験バウチャー」送られてきた!ありがとう! (しかし別にこれxlsx添付にしなくても… 手作業っぽくていい?) #RubyGold

2015-01-14 21:06:37
武田哲也 @__takeda

#RubyGold 先週のRuby金試験で見たヒアドキュメント、この書き方大丈夫なんか?と思ったら、(EOS|"EOS"|'EOS') どれもOK、かつそれぞれ意味が違うんやったな。クォートなしばっかり使ってたから忘れてた… docs.ruby-lang.org/ja/2.1.0/doc/s…

2015-01-16 22:14:15
武田哲也 @__takeda

#RubyGold に出るかも。おさらい Ruby の Proc オブジェクトと Method オブジェクトの違い (proc, lambda, ブロック, メソッドについて) - vivid memo (id:vividcode) d.hatena.ne.jp/vividcode/2010…

2015-01-19 23:08:12
武田哲也 @__takeda

#RubyGold おさらい docs.ruby-lang.org/ja/2.1.0/doc/s… 「別名を付けられたメソッドは、その時点でのメソッド定義を引き継ぎ、元のメソッドが再定義されても、再定義前の古いメソッドと同じ働きをします」退避するのか。単なるシンボリックリンクとは違うので注意やな

2015-01-20 23:05:39
武田哲也 @__takeda

#RubyGold Ruby公式資格教科書の演習問題20+50問をざっと復習、さすがに全問正解。明日の本番はRuby2.0以降がどんだけ解けるかがカギやなー。

2015-01-20 23:41:42
武田哲也 @__takeda

#RubyGold 合格。82点、なんとも切れ味悪いw けど、勝ちは勝ち。とりあえずこれで私的な懸念が一つ片付いたー!

2015-01-21 18:00:31
武田哲也 @__takeda

#RubyGold 本日どうにかRuby金に合格できましたが、制限時間ぎりぎりまでけっこう悩みました。 というわけで、備忘のために以下メモっておきます(NDAに触れない程度に)。

2015-01-21 23:06:16
武田哲也 @__takeda

#RubyGold library socket (Basic|TCP|UDP)Socket があって UDPServer がないのは覚えてたけど、TCPServer ってあったっけ… →あった docs.ruby-lang.org/ja/2.1.0/libra…

2015-01-21 23:06:35
武田哲也 @__takeda

#RubyGold lazy を take しただけでは出てこなくて force が必要。 でも first なら一発で取り出せるみたい。 docs.ruby-lang.org/ja/2.1.0/class… この辺ちゃんと学んでなかった…。たぶん間違えた。

2015-01-21 23:06:55
武田哲也 @__takeda

#RubyGold おおう、prepend で override したメソッドで super したら、self(prepend 呼び側)のメソッドが呼ばれる。ちゃんと書いてあった・・ docs.ruby-lang.org/ja/2.1.0/metho… (消去法で正解はしたけど、悩んだ)

2015-01-21 23:07:48
武田哲也 @__takeda

#RubyGold class A def m; puts "m"; end end A.new.m # => m 普通こっち A.new::m # => m ★こっちでも呼べる!

2015-01-21 23:08:28

上記は変なリンクが混じっているので正しくは下記の内容。

RubyGold

class A
def m; puts "m"; end
end
A.new.m # => m 普通こっち
A.new::m # => m ★こっちでも呼べる!

武田哲也 @__takeda

#RubyGold (続き)『プログラミング言語Ruby』見たらp.119にたしかに書いてあるけど、馴染みなかったよな…。むしろ「定数は :: でないとアクセスできない」に引きずられて、メソッドもそうやと思ってた。(この違いは何?)

2015-01-21 23:09:27
武田哲也 @__takeda

#RubyGold included インクルードされた後で呼ばれる append_features インクルードされる前に呼ばれる ref.xaio.jp/ruby/classes/m… 前者しか覚えてなかったwのでそっちを答えてしまったけど、もしや後者が正解やったかも。

2015-01-21 23:09:58
武田哲也 @__takeda

#RubyGold 子クラスから super で、親クラスの同名メソッドを「private でも」呼べる。 レシーバ指定じゃないし、子クラス is a 親クラス やから大丈夫とは思ったけど、何か super の特殊な仕様とかあったりして…?と迷った。

2015-01-21 23:11:19
武田哲也 @__takeda

#RubyGold モジュールの特異メソッドは、includeしたクラスのインスタンスからは呼べない。 module M def self.m; p "M.m"; end end class A include M end

2015-01-21 23:12:51
武田哲也 @__takeda

#RubyGold (続き) A.new.m # => NoMethodError これは自信なかった。調べても決め手に欠ける。2008年の記事↓にはそう書いてあったけど… d.hatena.ne.jp/unageanu/20080…

2015-01-21 23:13:23

上記は変なリンクが混じっているので正しくは下記内容。

RubyGold (続き)

A.new.m # => NoMethodError

これは自信なかった。調べても決め手に欠ける。2008年の記事↓にはそう書いてあったけど…
http://d.hatena.ne.jp/unageanu/20080413/1208083475

武田哲也 @__takeda

#RubyGold トップレベルで定義した(=裸の)メソッドは、Objectクラスのprivate「インスタンス」メソッドと等価。 教科書(問題25)にもあったので知ってたが、「あれ…もしやクラスメソッド??」と本番で混乱した。

2015-01-21 23:14:14
武田哲也 @__takeda

#RubyGold トップレベルのself=mainは「Objectクラスのインスタンス」と思っとけば大体合ってる…が、どうも特殊らしい。ハチドリ本p.424「トップレベルのself: mainオブジェクト」にもさらっと書いてある。でも「それ以上にあまり言うべきことはない」とな…

2015-01-21 23:14:49
武田哲也 @__takeda

#RubyGold (番外編) class Rubyist の Matz 氏が出てきたので、なんか受かりそうな気がしてきました。

2015-01-21 23:17:21
武田哲也 @__takeda

#RubyGold 今日の体験記は大体こんなもんです。 言語仕様の試験なんで満点取らんとあかんやろー、と思う。かえって実力のなさを痛感する結果になった。 ま、とりあえずこれで一段落ってことで。 次はシステム監査!!

2015-01-21 23:20:02
武田哲也 @__takeda

#RubySilver 復習。 inject docs.ruby-lang.org/ja/2.1.0/class… 「初期値 init を省略した場合は、 最初に先頭の要素と 2 番目の要素をブロックに渡します」やったな。忘れてた。

2015-01-29 18:39:24
武田哲也 @__takeda

#RubySilver 基礎力確認問題と模試、計70問をさらっと復習。けっこう忘れてて焦った。やっぱり破壊/非破壊を問う問題多いなー。あと解説浅すぎ、この教科書だけで受かるのは厳しいやろな。 さて、本番もこれぐらい簡単やといいんだが。

2015-02-03 01:49:04