SlideShare une entreprise Scribd logo
1  sur  31
フリーランスプログラマ 高木 誠
Tokyu.rb azabu.gem
.rb とか書いてあるのに何でphpやってるの?
 実はその正体はRubyの世界から来た刺客
 CyberXにRubyとRailsの素晴らしさを伝えにきた。
そんな装備(言語,フレームワーク)で大丈夫か?
画像は権利上の都合で削除されました。
大丈夫だ、問題ない
画像は権利上の都合で削除されました。
大丈夫じゃない、問題ある!
 日々のイベント運用でヘトヘト
 イベントのコードなどが呼び出し元のロジックなどに
そんな装備(言語,フレームワーク)で大丈夫か?
画像は権利上の都合で削除されました。
一番いいのをくれ
画像は権利上の都合で削除されました。
Ruby on Rails
Ruby の特徴
 すべてがオブジェクト
 柔軟な構文
 ブロック
 mixin
すべてがオブジェクト?
配列もハッシュもオブジェクト
[PHP]
$value = array(1,12,123);
foreach ($values as $value) {
echo $value;
}
[ruby]
values = [1,12,123]
values.each do |value|
p value
End
values.each {|value| p value }
h = {‘2’ => 2,’3’ => 3,’4’ => 4}
h.each {|k,v| p “%s %04d” % [k,v]}
数値もオブジェクト
[PHP]
for ($cnt = 0 ;$cnt < 100;$cnt++) {
echo $cnt;
}
[ruby]
100.times do |cnt|
p cnt
end
ActiveRecordの戻り値もオブジェクト
[ruby on rails]
@user.name = ‘<hogehoge>’
@user.save
view でモデルクラスを扱えるので view 上で
<?= user.name_escape ?> と表記できる。
[cakephp]
$this->user[‘User’][‘name’] = ‘<hogehoge>’;
$this->User->save($this->user);
$this->set(‘name’ => $this->User->$name_escape($this->user));
すべてオブジェクトのメソッドでいける
[PHP]
$a = explode("," , "ThinkPad,Macbook,vaio");
$s = implode("|" , $a);
foreach ($a as $value) {
}
[ruby]
a = "ThinkPad,Macbook,vaio".split(/,/)
s = a.join('|')
(ibm,apple,sony) = "ThinkPad,Macbook,vaio".split(/,/)
"ThinkPad,Macbook,vaio".split(/,/).each {|value|
}
変数の空などの判断もオブジェクト
[PHP]
if (empty($s)) {}
if (s == NULL) {}
[ruby]
if s.empty?
end
if s.nil?
end
柔軟な構文?
いろいろ省略できる
括弧を省略できる
def print(value)
p value
end
print(“hogehoge”)
print “hogehoge”
戻り値を省略できる
def get_user(id)
User.find(id)
end
戻り値を複数返せる
def get_values
return 1,2,3
end
a,b,c = get_values
条件式が後ろにあってもいける
[PHP]
if ($hoge) {
foo($hoge);
}
if ($max) {
for ($cnt = 0 ; $cnt < $max;$cnt++ ) {
print $cnt;
}
}
[ruby]
foo(hoge) if hoge
max.times do |cnt|
p cnt
end if max
ブロック?
メソッドに処理の一部分を引き渡せる
[PHP]
$value = array(1,12,123);
$puts_array = array();
foreach ($value in $values) {
array_push($puts_array,"!!" . $value . "!!")
}
[ruby]
values = [1,12,123]
a = []
values.each {|value|
a << "!!%s!!" % [value]
}
puts_array = values.inject([]) {|value,a| a << "!!%s!!" % [value];a}
つまり?
 呼び出し元で一部分のみ実装する処理がつくれる
 似たような処理だけどちょっと違うような処理の実装に向
いている
Mix-in
module SampleModule
def square(n)
n * n
end
end
class SampleClass
include SampleModule
# 略
end
o = SampleClass.new
p o.square(3) #=> 9
Railsの特徴
 設定より規約(cakeと似ている)
 rubyをいろいろ拡張している
 プラグインが充実
 rubyだから簡潔、柔軟な処理が可能
rubyをいろいろ拡張している
# Railsの日付拡張機能
Time.now + 1.day
Time.now + 1.month
Time.now.beginning_of_month
Time.now.end_of_month
Time.now.end_of_week
Date.today.end_of_week
複数のデータベースに接続
legary:
adapter: mysql
database: 192.168.0.33
username: user
password: pass
host: legary_host
new:
adapter: mysql
database: 192.168.0.44
username: user
password: pass
host: new_host
class LegacyClient < ActiveRecord::Base
establish_connection "legary"
end
class Client < ActiveRecord::Base
establish_connection "new"
End
ActsAsReadonlyable
 スレーブとマスターの自動切り替え
 テーブル別に設定可
Single Table Inheritance
 テーブルは同一だが別クラスとして定義できる
 データの格納先は一つのテーブルだが複数の実装
 アイテムやイベントの実装に最適
class RecoveryItem <
Item
def use(inventry)
…
end
end
class OffensiveItem <
Item
def use(inventry)
…
end
end
ActiveScaffold(マスタメンテ)
 Ajax
 細かい権限制御
 自動生成
 カスタマイズ可
 モデルを通した動作
これらを踏まえて
 イベントが頻繁に追加されるソーシャルゲームに最適
 ソースが頻繁に変更されるソーシャルゲームに最適
 再利用しやすい
ご静聴ありがとうございました。

Contenu connexe

En vedette

「Python 機械学習プログラミング」 の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」 の挫折しない読み方Hiroki Yamamoto
 
そんな装備で大丈夫か?
そんな装備で大丈夫か?そんな装備で大丈夫か?
そんな装備で大丈夫か?2celeb
 
Grafana datasource plugin
Grafana datasource pluginGrafana datasource plugin
Grafana datasource pluginMitsuhiro Tanda
 
社内でアジャイルと出会った新卒2年目がインフラ部隊でタスク可視化をやってみた話
社内でアジャイルと出会った新卒2年目がインフラ部隊でタスク可視化をやってみた話社内でアジャイルと出会った新卒2年目がインフラ部隊でタスク可視化をやってみた話
社内でアジャイルと出会った新卒2年目がインフラ部隊でタスク可視化をやってみた話Masayuki Ueda
 
ソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれからソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれからYasuharu Nishi
 
From AMP to PWA
From AMP to PWAFrom AMP to PWA
From AMP to PWAIdo Green
 
あたらしい伺かを動かしてみたはなし
あたらしい伺かを動かしてみたはなしあたらしい伺かを動かしてみたはなし
あたらしい伺かを動かしてみたはなしkiki utagawa
 
InternetWeek2016 企業を取り巻くDigital Identityの今とこれから - Identity Is The New Perimet...
InternetWeek2016 企業を取り巻くDigital Identityの今とこれから - Identity Is The New Perimet...InternetWeek2016 企業を取り巻くDigital Identityの今とこれから - Identity Is The New Perimet...
InternetWeek2016 企業を取り巻くDigital Identityの今とこれから - Identity Is The New Perimet...Tatsuya (達也) Katsuhara (勝原)
 
TensorFlowで機械学習ことはじめ(summer edition)
TensorFlowで機械学習ことはじめ(summer edition)TensorFlowで機械学習ことはじめ(summer edition)
TensorFlowで機械学習ことはじめ(summer edition)徹 上野山
 
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介gree_tech
 
Androidアプリを開発するためのツール
Androidアプリを開発するためのツールAndroidアプリを開発するためのツール
Androidアプリを開発するためのツールosamu miyake
 
最近のTDDネタをカジュアルに
最近のTDDネタをカジュアルに最近のTDDネタをカジュアルに
最近のTDDネタをカジュアルにRyuma Tsukano
 
Agile data presentation 3 - cambridge
Agile data   presentation 3 - cambridgeAgile data   presentation 3 - cambridge
Agile data presentation 3 - cambridgeRomans Malinovskis
 
Catalogo Hybrids mostra personale di Alessandro Di Vicino Gaudio
Catalogo Hybrids mostra personale di Alessandro Di Vicino GaudioCatalogo Hybrids mostra personale di Alessandro Di Vicino Gaudio
Catalogo Hybrids mostra personale di Alessandro Di Vicino Gaudioandrea schubert
 
Briefing Paper: China - Business, Tax and Cultural considerations for Higher ...
Briefing Paper: China - Business, Tax and Cultural considerations for Higher ...Briefing Paper: China - Business, Tax and Cultural considerations for Higher ...
Briefing Paper: China - Business, Tax and Cultural considerations for Higher ...Graham Brearley
 
Analytics for Finance Professionals in Excel
Analytics for Finance Professionals in ExcelAnalytics for Finance Professionals in Excel
Analytics for Finance Professionals in ExcelErnest Mwithiga
 
イマドキのフロントエンド開発
イマドキのフロントエンド開発イマドキのフロントエンド開発
イマドキのフロントエンド開発Fumio SAGAWA
 
Sindrome aerotoxico ¿realidado ficción?- Congreso SEMA - Girona, Noviembre 2016
Sindrome aerotoxico ¿realidado ficción?- Congreso SEMA - Girona,  Noviembre 2016Sindrome aerotoxico ¿realidado ficción?- Congreso SEMA - Girona,  Noviembre 2016
Sindrome aerotoxico ¿realidado ficción?- Congreso SEMA - Girona, Noviembre 2016Jordi Roig
 

En vedette (20)

「Python 機械学習プログラミング」 の挫折しない読み方
「Python 機械学習プログラミング」の挫折しない読み方「Python 機械学習プログラミング」の挫折しない読み方
「Python 機械学習プログラミング」 の挫折しない読み方
 
そんな装備で大丈夫か?
そんな装備で大丈夫か?そんな装備で大丈夫か?
そんな装備で大丈夫か?
 
Int64
Int64Int64
Int64
 
Grafana datasource plugin
Grafana datasource pluginGrafana datasource plugin
Grafana datasource plugin
 
社内でアジャイルと出会った新卒2年目がインフラ部隊でタスク可視化をやってみた話
社内でアジャイルと出会った新卒2年目がインフラ部隊でタスク可視化をやってみた話社内でアジャイルと出会った新卒2年目がインフラ部隊でタスク可視化をやってみた話
社内でアジャイルと出会った新卒2年目がインフラ部隊でタスク可視化をやってみた話
 
ソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれからソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれから
 
From AMP to PWA
From AMP to PWAFrom AMP to PWA
From AMP to PWA
 
あたらしい伺かを動かしてみたはなし
あたらしい伺かを動かしてみたはなしあたらしい伺かを動かしてみたはなし
あたらしい伺かを動かしてみたはなし
 
InternetWeek2016 企業を取り巻くDigital Identityの今とこれから - Identity Is The New Perimet...
InternetWeek2016 企業を取り巻くDigital Identityの今とこれから - Identity Is The New Perimet...InternetWeek2016 企業を取り巻くDigital Identityの今とこれから - Identity Is The New Perimet...
InternetWeek2016 企業を取り巻くDigital Identityの今とこれから - Identity Is The New Perimet...
 
TensorFlowで機械学習ことはじめ(summer edition)
TensorFlowで機械学習ことはじめ(summer edition)TensorFlowで機械学習ことはじめ(summer edition)
TensorFlowで機械学習ことはじめ(summer edition)
 
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
 
Androidアプリを開発するためのツール
Androidアプリを開発するためのツールAndroidアプリを開発するためのツール
Androidアプリを開発するためのツール
 
最近のTDDネタをカジュアルに
最近のTDDネタをカジュアルに最近のTDDネタをカジュアルに
最近のTDDネタをカジュアルに
 
Agile data presentation 3 - cambridge
Agile data   presentation 3 - cambridgeAgile data   presentation 3 - cambridge
Agile data presentation 3 - cambridge
 
Catalogo Hybrids mostra personale di Alessandro Di Vicino Gaudio
Catalogo Hybrids mostra personale di Alessandro Di Vicino GaudioCatalogo Hybrids mostra personale di Alessandro Di Vicino Gaudio
Catalogo Hybrids mostra personale di Alessandro Di Vicino Gaudio
 
Briefing Paper: China - Business, Tax and Cultural considerations for Higher ...
Briefing Paper: China - Business, Tax and Cultural considerations for Higher ...Briefing Paper: China - Business, Tax and Cultural considerations for Higher ...
Briefing Paper: China - Business, Tax and Cultural considerations for Higher ...
 
Analytics for Finance Professionals in Excel
Analytics for Finance Professionals in ExcelAnalytics for Finance Professionals in Excel
Analytics for Finance Professionals in Excel
 
Barron County Vote Recount Information
Barron County Vote Recount InformationBarron County Vote Recount Information
Barron County Vote Recount Information
 
イマドキのフロントエンド開発
イマドキのフロントエンド開発イマドキのフロントエンド開発
イマドキのフロントエンド開発
 
Sindrome aerotoxico ¿realidado ficción?- Congreso SEMA - Girona, Noviembre 2016
Sindrome aerotoxico ¿realidado ficción?- Congreso SEMA - Girona,  Noviembre 2016Sindrome aerotoxico ¿realidado ficción?- Congreso SEMA - Girona,  Noviembre 2016
Sindrome aerotoxico ¿realidado ficción?- Congreso SEMA - Girona, Noviembre 2016
 

Dernier

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Dernier (11)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

そんな装備で大丈夫か?