Enviar búsqueda
Cargar
Rubyをちょっと理解しよう
•
0 recomendaciones
•
1,287 vistas
Shun Hikita
Seguir
社内勉強会 UniStudy #1 の発表資料です。 Rubyについてちょっと話ました。
Leer menos
Leer más
Ingeniería
Denunciar
Compartir
Denunciar
Compartir
1 de 24
Descargar ahora
Descargar para leer sin conexión
Recomendados
Walking front end
Walking front end
Hirata Tomoko
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったこと
Hirata Tomoko
Rails5クイックスタート
Rails5クイックスタート
Hirata Tomoko
無名関数のすすめ
無名関数のすすめ
Shoichi Kakizaki
Railsの現場に入る前のお話(勉強法)
Railsの現場に入る前のお話(勉強法)
Fumiya Sakai
No More Noprototype Function
No More Noprototype Function
simotin13 Miyazaki
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
Fumiya Sakai
WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築
Hirata Tomoko
Recomendados
Walking front end
Walking front end
Hirata Tomoko
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったこと
Hirata Tomoko
Rails5クイックスタート
Rails5クイックスタート
Hirata Tomoko
無名関数のすすめ
無名関数のすすめ
Shoichi Kakizaki
Railsの現場に入る前のお話(勉強法)
Railsの現場に入る前のお話(勉強法)
Fumiya Sakai
No More Noprototype Function
No More Noprototype Function
simotin13 Miyazaki
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
Fumiya Sakai
WindowsユーザのためのRails環境構築
WindowsユーザのためのRails環境構築
Hirata Tomoko
Rails+Markdownでなにかつくる
Rails+Markdownでなにかつくる
Hirata Tomoko
MobiRubyでiOSアプリをつくろう
MobiRubyでiOSアプリをつくろう
Junya Murabe
片手間JS on Rails
片手間JS on Rails
Ryunosuke SATO
Electronからはじめるnodejs
Electronからはじめるnodejs
Hirata Tomoko
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
Hirata Tomoko
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Shinichi Okada
Parse.comを使ってみた感想とまとめ
Parse.comを使ってみた感想とまとめ
Fumiya Sakai
VimとRubyのアツい関係
VimとRubyのアツい関係
Misao X
C#のやさしさを語る時間
C#のやさしさを語る時間
kamukiriri
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
Takuya Mukohira
Container view活用術とポイントになる部分
Container view活用術とポイントになる部分
Fumiya Sakai
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
Hirata Tomoko
コードに基づくモデルによる IntelliCode
コードに基づくモデルによる IntelliCode
m ishizaki
で、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS Matsuri
Yoshitaka Kawashima
GopherJS + Nashorn
GopherJS + Nashorn
Takuya Ueda
Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
宏治 高尾
Vue.js ハンズオン資料
Vue.js ハンズオン資料
よしだ あつし
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
Muyuu Fujita
TypeScript 入門してみる
TypeScript 入門してみる
Ken Fukuyama
TypeScript + Express
TypeScript + Express
kamiyam .
ニコニコ超エンジニアミーティング Rubyの歩き方
ニコニコ超エンジニアミーティング Rubyの歩き方
tatsuo sakurai
桐島、Rubyやめるってよ
桐島、Rubyやめるってよ
Narihiro Nakamura
Más contenido relacionado
La actualidad más candente
Rails+Markdownでなにかつくる
Rails+Markdownでなにかつくる
Hirata Tomoko
MobiRubyでiOSアプリをつくろう
MobiRubyでiOSアプリをつくろう
Junya Murabe
片手間JS on Rails
片手間JS on Rails
Ryunosuke SATO
Electronからはじめるnodejs
Electronからはじめるnodejs
Hirata Tomoko
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
Hirata Tomoko
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Shinichi Okada
Parse.comを使ってみた感想とまとめ
Parse.comを使ってみた感想とまとめ
Fumiya Sakai
VimとRubyのアツい関係
VimとRubyのアツい関係
Misao X
C#のやさしさを語る時間
C#のやさしさを語る時間
kamukiriri
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
Takuya Mukohira
Container view活用術とポイントになる部分
Container view活用術とポイントになる部分
Fumiya Sakai
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
Hirata Tomoko
コードに基づくモデルによる IntelliCode
コードに基づくモデルによる IntelliCode
m ishizaki
で、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS Matsuri
Yoshitaka Kawashima
GopherJS + Nashorn
GopherJS + Nashorn
Takuya Ueda
Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
宏治 高尾
Vue.js ハンズオン資料
Vue.js ハンズオン資料
よしだ あつし
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
Muyuu Fujita
TypeScript 入門してみる
TypeScript 入門してみる
Ken Fukuyama
TypeScript + Express
TypeScript + Express
kamiyam .
La actualidad más candente
(20)
Rails+Markdownでなにかつくる
Rails+Markdownでなにかつくる
MobiRubyでiOSアプリをつくろう
MobiRubyでiOSアプリをつくろう
片手間JS on Rails
片手間JS on Rails
Electronからはじめるnodejs
Electronからはじめるnodejs
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Parse.comを使ってみた感想とまとめ
Parse.comを使ってみた感想とまとめ
VimとRubyのアツい関係
VimとRubyのアツい関係
C#のやさしさを語る時間
C#のやさしさを語る時間
Sinatra軽量Web開発 - LOUPE Study #1
Sinatra軽量Web開発 - LOUPE Study #1
Container view活用術とポイントになる部分
Container view活用術とポイントになる部分
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
コードに基づくモデルによる IntelliCode
コードに基づくモデルによる IntelliCode
で、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS Matsuri
GopherJS + Nashorn
GopherJS + Nashorn
Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Kids,Ruby,Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
Vue.js ハンズオン資料
Vue.js ハンズオン資料
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
TypeScript 入門してみる
TypeScript 入門してみる
TypeScript + Express
TypeScript + Express
Destacado
ニコニコ超エンジニアミーティング Rubyの歩き方
ニコニコ超エンジニアミーティング Rubyの歩き方
tatsuo sakurai
桐島、Rubyやめるってよ
桐島、Rubyやめるってよ
Narihiro Nakamura
Rubyの仕事で食べていくために僕らは!
Rubyの仕事で食べていくために僕らは!
Ouka Yuka
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Yusuke Kon
Start!! Ruby
Start!! Ruby
mitim
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
mametter
Destacado
(6)
ニコニコ超エンジニアミーティング Rubyの歩き方
ニコニコ超エンジニアミーティング Rubyの歩き方
桐島、Rubyやめるってよ
桐島、Rubyやめるってよ
Rubyの仕事で食べていくために僕らは!
Rubyの仕事で食べていくために僕らは!
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
Start!! Ruby
Start!! Ruby
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
Similar a Rubyをちょっと理解しよう
RubyとRのおいしい関係
RubyとRのおいしい関係
sady_nitro
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
Kohei Taniguchi
小学生3年生から使えるRubyのビジュアルプログラミングエディタ「スモウルビー」と、それを活用した任意団体「Rubyプログラミング少年団」[第7回フクオカ...
小学生3年生から使えるRubyのビジュアルプログラミングエディタ「スモウルビー」と、それを活用した任意団体「Rubyプログラミング少年団」[第7回フクオカ...
宏治 高尾
Rubyの話を少し
Rubyの話を少し
Fumitake Taniguchi
Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録
Fumiya Sakai
PHPer のための Ruby 教室
PHPer のための Ruby 教室
higaki
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
Swiftによる関数型プログラミング超入門
Swiftによる関数型プログラミング超入門
Hisakuni Fujimoto
20130615 組込みの仕事場でRubyを使う
20130615 組込みの仕事場でRubyを使う
Ryo Nagai
Tokyurubykaigi05
Tokyurubykaigi05
yamanekko
ET2014資料: mruby プログラム言語Rubyによる組込みソト開発
ET2014資料: mruby プログラム言語Rubyによる組込みソト開発
Kazuaki Tanaka
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境
Ryo Higashigawa
高専カンファレンス in 岐阜 基調講演2 @gabu
高専カンファレンス in 岐阜 基調講演2 @gabu
Shoya Tsukada
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
Takuya Mukohira
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
Kanako Kobayashi
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
Yasushi Ishikawa
古き良きRailsプロジェクトに wepbackとvue.jsを導入した話
古き良きRailsプロジェクトに wepbackとvue.jsを導入した話
Yuya Taki
mruby for embedded systems
mruby for embedded systems
masayoshi takahashi
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01
Yutaka Tachibana
Similar a Rubyをちょっと理解しよう
(20)
RubyとRのおいしい関係
RubyとRのおいしい関係
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
小学生3年生から使えるRubyのビジュアルプログラミングエディタ「スモウルビー」と、それを活用した任意団体「Rubyプログラミング少年団」[第7回フクオカ...
小学生3年生から使えるRubyのビジュアルプログラミングエディタ「スモウルビー」と、それを活用した任意団体「Rubyプログラミング少年団」[第7回フクオカ...
Rubyの話を少し
Rubyの話を少し
Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録
PHPer のための Ruby 教室
PHPer のための Ruby 教室
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Swiftによる関数型プログラミング超入門
Swiftによる関数型プログラミング超入門
20130615 組込みの仕事場でRubyを使う
20130615 組込みの仕事場でRubyを使う
Tokyurubykaigi05
Tokyurubykaigi05
ET2014資料: mruby プログラム言語Rubyによる組込みソト開発
ET2014資料: mruby プログラム言語Rubyによる組込みソト開発
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境
高専カンファレンス in 岐阜 基調講演2 @gabu
高専カンファレンス in 岐阜 基調講演2 @gabu
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyプログラミング教育に対する取り組みと事例紹介
Rubyプログラミング教育に対する取り組みと事例紹介
古き良きRailsプロジェクトに wepbackとvue.jsを導入した話
古き良きRailsプロジェクトに wepbackとvue.jsを導入した話
mruby for embedded systems
mruby for embedded systems
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01
Rubyをちょっと理解しよう
1.
Rubyをちょっと理解しよう UniStudy#1 @ シェアハウスコクリエ Unicast
Inc. Web Engineer 疋田 駿
2.
発表するひと http://qiita.com/shunhikita https://twitter.com/shunhikita 株式会社ユニキャスト セールスエンジニア ▷ 2015年入社の田舎暮らし新卒文系Webエンジニア(23 歳・経営学部卒) ▷ Ruby,
Ruby on Rails, PHP, AngularJS, C#, Android ▷ Microservicesなサービス作り希望
3.
話すこと ▷ オープンクラスとモンキーパッチ ▷ メソッドを呼び出すと何が起きる? ▷
Rubyにおけるselfキーワード ※私もRuby勉強中です。
4.
オープンクラス - リファクタリングをする場面 - def
to_alphanumeric(s) s.gsub(/[^ws]/, ‘’) end 全ての句読点や特殊文字を削除してアルファベットとス ペースを残すようなもの なんかオブエジェクト指向っぽくないですね。 sのオブジェクトがgsubメソッド持ってなかったら … NoMethodError !!
5.
“ 外部メソッドに文字列オブジェクトを渡して 変換してもらうんじゃなくて、文字列自身に 変換してもらったほうがいいんじゃない?
6.
“ でも、文字列って標準のStringクラスだし AlphanumericStringみたいなクラスを作るの? オープンクラスを使おう!
7.
オープンクラス - リファクタリングをする場面 - class
String def to_alphanumeric gsub(/[^ws]/, ‘’) end end Stringクラスをオープン してメソッドを追加。 Rubyでは1度定義したクラスをオープンして 好きなメソッドを追加できる。 “***UniStydy#1 ***”.to_alphanumeric # => UniStudy1
8.
実際にやってみる クラスCを定義して x メソッドを定義する クラスCをオープンして y メソッドを定義する オブジェクトを作成してxを呼 ぶ。
9.
yメソッドも呼んでみる ちなみに... Rubyではインスタンス変数 は値が代入されたときに初め て出現します。 オブジェクトのクラスと インスタンス変数につながり はない
10.
クラスとオブジェクトの関係 ▷ オブジェクトにはインスタンス変数とクラスへの参照が あるだけ ▷ クラスとインスタンス変数に繋がりはない ▷
メソッドはオブジェクトが持っているのではなくクラスが持ってい る。 obj @v = 1 MyClass my_method() クラス メソッドインスタンス変数 オブジェクト クラス
11.
オープンクラスの問題点 ▷ 既存のメソッドを上書きできること ▷ 他のプログラムに影響を与えてしまう場合がある =>
このようなコードをモンキーパッチと呼ぶ しっかりと管理でき、意図してモンキーパッチを 使うのであればよいが、それ以外は使わない方が 無難。 Refinementsという解決策 => 今日はやりません
12.
メソッドを呼び出すと何が起こる? 1. メソッドを探す 2. メソッドを実行する。 このプロセスは全てのオブジェクト指向で起きている。
13.
メソッド探索 メソッドがレシーバのクラスに入り、 メソッドを見つけるまで継承チェーンを遡ること。
14.
obj MySubClass MyClass my_method() Object Kernel BasicObject my_method() 発見! 継承チェーンにはモ ジュールも含まれま す
15.
includeとprepend include ・・・インクルードしたクラスの上に挿入される prepend・・・インクルードしたクラスの下に挿入される
16.
メソッドの実行 このメソッドを実行するにはRubyは2つの ことを知らなければならない
17.
1 @x が属しているオブジェクトはな に? 2 my_other_methodが呼び出され ているオブジェクトはなに? => どちらもレシーバに属している。 Rubyはメソッドが呼び出された時にレシーバの参照を 覚えておく必要がある。
=> selfキーワード
18.
selfキーワード Rubyのコードには常にselfの役割を担う、カレントオブジェクトという オブジェクトの参照を持っている。 ▷ メソッドを呼び出すと、レシーバがselfになる ▷ レシーバを明示せずにメソッドを呼び出すと、selfに対するメ ソッド呼び出しになる ▷
インスタンス変数は常にselfのインスタンス変数とみなされる Rubyの達人になりたければ常にselfを意識してプログラミングせよ。 とのことです。
19.
my_methodを呼び出した時 点でselfはobjの参照を持つ ▷ @xはselfの参照objのインスタンス変数を使用する ▷ my_other_methodも同様にobjのメソッドを呼び出すと理解 できる じゃあ見てみよう
20.
クラス、モジュール定義とself ▷ クラスやモジュール定義の内側(メソッドの外側)ではselfはク ラスやモジュールそのものになる。 class MyClass self
# => MyClass end
21.
Rubyはすべてのインスタンス変数はselfに属するものと思ってい る。 selfはMyClass そのもの selfはレシーバ になる クラスインスタンス変数と インスタンス変数は別物! 間違えるな!
22.
つまり、 クラスインスタンス変数@xはMyClassというClassクラスの オブジェクトのインスタンス変数である。 一応補足 : クラスを紐解くと... ▷
MyClassというクラスはClassクラスのオブジェクト ▷ MyClassという名前はただの定数
23.
MyClass = Class.new
do def my_method; “my_method”; end end class MyClass def my_method; “my_method”; end end こう書き換えることも出来る
24.
そんなとこで今日はおしまいです。 次回予告 Rubyのメタプログラミングに入門しよう
Descargar ahora