Top Banner
yancya�には� Refinements�が わからぬ yancya�には� Refinements�が わからぬ A�investigative�report�of� refinements�� yancya RubyHiroba�2014 2014/09/21 Powered�by�Rabbit�2.1.3�and�COZMIXNG
14

A investigative report of refinements

May 26, 2015

Download

Documents

yancya Koyanagi

RubyHiroba 2014 で発表した、Refinements についての LT 資料です
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A investigative report of refinements

yancya�には�Refinements�が

わからぬ

yancya�には�Refinements�が

わからぬA�investigative�report�of�

refinements��

yancyaRubyHiroba�20142014/09/21

Powered�by�Rabbit�2.1.3�and�COZMIXNG

Page 2: A investigative report of refinements

自⼰紹介

@yancya

何者でも無い1⼈の Rubyist

Page 3: A investigative report of refinements

オープンクラス

特徴的な�Ruby�の機能

���������������������������������������������������������������������������������������������������������������

Page 4: A investigative report of refinements

オープンクラス

������������������������������������������������������������

��������������������������������������������������������

���������������������������������������������������������������

�����������������������������������������������������������

Page 5: A investigative report of refinements

オープンクラス

こんなモンキーパッチばかりしていると、プログラマがクラスを信じられなくなってしまうぞ

Page 6: A investigative report of refinements

オープンクラス

こんなモンキーパッチばかりしていると、プログラマがクラスを信じられなくなってしまうぞ

yancya�は「気をつける」のが苦⼿だろ

Page 7: A investigative report of refinements

Refinements

スコープを限定してモンキーパッチする仕組みがあるんだぞ

����������������������������������������������������������������������������������������������

�����������������������������������������

Page 8: A investigative report of refinements

Refinements

using�以降の、同⼀ファイル内のコードにのみ、影響するんだ

������������������������������������������

������������������������������������������������������������

���������������������������������������������������������������

Page 9: A investigative report of refinements

⾊々試してみよう

��������������

����������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������

Page 10: A investigative report of refinements

そ、そんなはずは

��������������

������������������������������

����������������������������������������������������������������

Page 11: A investigative report of refinements

何が悪いのか

&:symbol�って、:symbol.to̲proc.call(arg)�と同じだったような

Page 12: A investigative report of refinements

to̲proc,�send

やはり...

��������������

������������������������������������������������������

����������������������������������������������������������������

Page 13: A investigative report of refinements

気をつける

メソッドが、どこのスコープで実⾏されるのか、きちんと気をつけないとダメ

send�などのメタプログラミングメソッドを使うと、スコープがファイル外へすっ⾶んでいってしまうことがあるので

Page 14: A investigative report of refinements

結論

yancya�に�Refinements�は、まだ早すぎる

気をつけなくてもキチンと書けるようになるか、そういう仕組みを作るしかない

もうちょっと勉強してから出直してこよう

Powered�by�Rabbit�2.1.3�and�COZMIXNG