maeshimaの日記

メモ書きです

スタートダッシュ型仕事術

一年前にブクマしたけど、もうあと何回か読みたいのでメモ。
Life is beautiful: スタートダッシュ型仕事術:実践編

  • 書いたプログラムを捨てることを恐れないこと
  • この段階で仕様書を書くことは時間の無駄と認識すること
  • 細かなことを無視して、一番難しい部分を最初に作ること
  • できるだけ早く、一気に「見極めが出来るところ」まで持って行くこと
  • コードは多少汚くても良いが、モジュール間のインターフェイスだけはキチンと設計すること

この五つは肝に銘じておきたい!

最近の application controller のテスト方法

application controller のテスト用に controller メソッドがある。このメソッドのブロック中にメソッドを定義すると、それは appliction controller のテスト用のサブクラスのモックアクションとなる。

メタプログラミングRuby 第5章

eval

  • instance_evalやclass_evalも、evalと同じように文字列を引数にすることが出来る。
  • evalとセーフレベルと汚染の考えはワンセット。

Binding

TOBLEVEL_BINDING
トップレベルのスコープが束縛されている

eval で実行時の束縛を指定できる。どっかで使えそうな気がする…

サンドボックス

proc {
  $SAFE = @safe_level
}.call

ってやると、Procの中だけセーフレベルが変わる...ってマジで?と思ったので試した。

proc {$SAFE= 1}.call #=> 1 
$SAFE #=> 0 

マジだった。調べると、$SAFE はスレッドローカル変数といって、スレッド毎のスコープらしい。でも procってスレッドじゃないし・・・と思ったらちゃんとマニュアルに書いてあった

Procはその時点でのセーフレベルを記憶する そのProcオブジェクトがcallされると、 記憶していたセーフレベルで実行される。

http://www.ruby-lang.org/ja/man/html/_A5BBA5ADA5E5A5EAA5C6A5A3A5E2A5C7A5EB.html

フックメソッド

included はよく使うけど、他はどれくらいの数あるんだろう?そしてどのように使うべきだろう?

ペイロード

「最大積載量」という意味の英単語で、ITの世界では通信パケットのうちヘッダ部分(行き先等の付加情報)を除いた、本来転送したいデータ本体のことを指す。
ペイロードとは【payload】 - 意味/解説/説明/定義 : IT用語辞典