Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
The World
is Connectedgem install acappella
(株) 永和システムマネジメント
アジャイル事業部
Ruby x Agile グループ
伊藤 浩一 (@koic)
2015.07.27 (Mon)
永和シ...
Computer programmer, guitarist.
Leader of an Agile software development team
at Eiwa System Management, Inc.
Lives in Shin...
• 2014.09.06(Sat) XP祭り2014
• 2014.11.08(Sat) Yokohama.rb Meetup#50
• 2014.11.29(Sat) TokyuRuby会議08
• 2015.01.16(Fri) ありがたい...
勤続10周年記念講演 最終章
今日の話
• 2014.09.06(Sat) XP祭り2014
• 2014.11.08(Sat) Yokohama.rb Meetup#50
• 2014.11.29(Sat) TokyuRuby会議08
• 2014.12.27(Sat) あきーにょ...
お蔵だし
コードx音楽
コードx音楽Ruby Agile is Rock
主題
?acappella
is 何
Client-Serverモデ
ルの対話型ツールです。
クライアントでタイピ
ングした文字をサーバー
が話します。
『Extreme Programming Embrace Change』より
METAPHOR
本スライドでは隠でなく比になってしまいますが
Client-Serverモデ
ルの対話型ツールです。
クライアントでタイピ
ングした文字をサーバー
が話します。
Client-Serverモデ
ルの対話型ツールです。
様々な作詞家がタイピ
ングした文字をサーバー
が話します。
Client-Serverモデ
ルの対話型ツールです。
様々な作詞家が送付を
してきた文字をサーバー
が話します。
Client-Serverモデ
ルの対話型ツールです。
様々な作詞家が送付を
してきた歌詞をサーバー
が話します。
Client-Serverモデ
ルの対話型ツールです。
様々な作詞家が送付を
してきた歌詞をシンガー
が話します。
Client-Serverモデ
ルの対話型ツールです。
様々な作詞家が送付を
してきた歌詞をシンガー
が歌います。
使い方
DEMO
$ acappella-server
acappella 0.1.0 starting on druby://localhost:8989
Run `acappella-server --help` for more startup optio...
実装
https://github.com/koic/acappella
設計
:Client
:SetList
:Singer
songwriter:
Songwriter
songwriter:
DRbObject
<<Stub>>
request(lyrics)
next_song
:Server
<<LocalOb...
内部の
流れ
:Client
:SetList
:Singer
songwriter:
Songwriter
songwriter:
DRbObject
<<Proxy>>
request(lyrics)
next_song
:Server
<<Remote...
:Client
:SetList
:Singer
songwriter:
Songwriter
songwriter:
DRbObject
<<Proxy>>
request(lyrics)
next_song
:Server
<<Remote...
:Client
:SetList
:Singer
songwriter:
Songwriter
songwriter:
DRbObject
<<Proxy>>
request(lyrics)
next_song
:Server
<<Remote...
:Client
:SetList
:Singer
songwriter:
Songwriter
songwriter:
DRbObject
<<Proxy>>
request(lyrics)
next_song
:Server
<<Remote...
:Client
:SetList
:Singer
songwriter:
Songwriter
songwriter:
DRbObject
<<Proxy>>
request(lyrics)
next_song
:Server
<<LocalO...
DRbObject#method_missing
https://github.com/ruby/ruby/blob/v2_2_0_preview2/lib/drb/drb.rb#L1133
:Client
:SetList
:Singer
songwriter:
Songwriter
songwriter:
DRbObject
<<Proxy>>
request(lyrics)
next_song
:Server
<<Remote...
:Client
:SetList
:Singer
songwriter:
Songwriter
songwriter:
DRbObject
<<Proxy>>
request(lyrics)
next_song
:Server
<<Remote...
:Client
:SetList
:Singer
songwriter:
Songwriter
songwriter:
DRbObject
<<Proxy>>
request(lyrics)
next_song
:Server
<<Remote...
どちらがサーバでど
ちらがクライアント?
今後、加味したい点
http://www2a.biglobe.ne.jp/seki/ruby/d205.html
• dRubyではどのスクリプトも簡単にサーバになれま
す。
• それにどのスクリプトも...
http://www.druby.org/drb08.pdf
詳しくは書籍を読もう!
たのしく分散
プログラミング
http://docs.ruby-lang.org/ja/2.1.0/library/drb.html
さいごに
分散と人
http://www.esm.co.jp/agile/business_plan_esm_agile_div_35th.pdf
分散した
社会構造
XPE2ndと上司がついてきます
https://pbs.twimg.com/media/CIZYfj6W8AAqyAU.jpg
The world is connected
https://pbs.twimg.com/media/CKjqYTWXAAAYEtz.jpg
https://github.com/koic/acappella
The World is Connected
The World is Connected
The World is Connected
The World is Connected
The World is Connected
The World is Connected
Prochain SlideShare
Chargement dans…5
×

The World is Connected

1 024 vues

Publié le

第14回 西日暮里.rb (https://nishinipporirb.doorkeeper.jp/events/28527)
あきーにょカンファレンス#1に参加できず、お蔵入りになっていたスライドのお蔵出し。

Publié dans : Ingénierie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

The World is Connected

  1. 1. The World is Connectedgem install acappella (株) 永和システムマネジメント アジャイル事業部 Ruby x Agile グループ 伊藤 浩一 (@koic) 2015.07.27 (Mon) 永和システムマネジメント 神田オフィス 第14回 西日暮里.rb
  2. 2. Computer programmer, guitarist. Leader of an Agile software development team at Eiwa System Management, Inc. Lives in Shinjuku. @koic photo token by @NaCl
  3. 3. • 2014.09.06(Sat) XP祭り2014 • 2014.11.08(Sat) Yokohama.rb Meetup#50 • 2014.11.29(Sat) TokyuRuby会議08 • 2015.01.16(Fri) ありがたい話 公開版 • 2015.02.25(Wed) Ruby Business Users Conference 2015 • 2015.03.28(Sat) 浜松Ruby会議01 • 2015.04.06(Mon) マイナビTV【永和システムマネジメント】のアジャイルな受託開発 • 2015.05.15(Fri) Ruby合同勉強会@Sansan • 2015.06.04(Thu) 表参道.rb#1 • 2015.06.29(Mon) 西日暮里.rb 1周年記念会 • 2015.07.11(Sat) 関西Ruby会議06 • 2015.07.22(Wed) pixiv x ESM技術交流会 • 2015.07.27(Mon) 第14回 西日暮里.rb • 2015.08.29(Sat) TokyuRuby会議09 • 2015.09.12(Sat) XP祭り 2015 勤続10周年ツアー中
  4. 4. 勤続10周年記念講演 最終章
  5. 5. 今日の話
  6. 6. • 2014.09.06(Sat) XP祭り2014 • 2014.11.08(Sat) Yokohama.rb Meetup#50 • 2014.11.29(Sat) TokyuRuby会議08 • 2014.12.27(Sat) あきーにょカンファレンス#1 • 2015.01.16(Fri) ありがたい話 公開版 • 2015.02.25(Wed) Ruby Business Users Conference 2015 • 2015.03.28(Sat) 浜松Ruby会議01 • 2015.04.06(Mon) マイナビTV【永和システムマネジメント】のアジャイルな受託開発 • 2015.05.15(Fri) Ruby合同勉強会@Sansan • 2015.06.04(Thu) 表参道.rb#1 • 2015.06.29(Mon) 西日暮里.rb 1周年記念会 • 2015.07.11(Sat) 関西Ruby会議06 • 2015.07.22(Wed) pixiv x ESM技術交流会 • 2015.07.27(Mon) 第14回 西日暮里.rb • 2015.08.29(Sat) TokyuRuby会議09 • 2015.09.12(Sat) XP祭り 2015 7ヶ月前の心残り 体調を崩して参加できず
  7. 7. お蔵だし
  8. 8. コードx音楽
  9. 9. コードx音楽Ruby Agile is Rock
  10. 10. 主題
  11. 11. ?acappella is 何
  12. 12. Client-Serverモデ ルの対話型ツールです。 クライアントでタイピ ングした文字をサーバー が話します。
  13. 13. 『Extreme Programming Embrace Change』より
  14. 14. METAPHOR 本スライドでは隠でなく比になってしまいますが
  15. 15. Client-Serverモデ ルの対話型ツールです。 クライアントでタイピ ングした文字をサーバー が話します。
  16. 16. Client-Serverモデ ルの対話型ツールです。 様々な作詞家がタイピ ングした文字をサーバー が話します。
  17. 17. Client-Serverモデ ルの対話型ツールです。 様々な作詞家が送付を してきた文字をサーバー が話します。
  18. 18. Client-Serverモデ ルの対話型ツールです。 様々な作詞家が送付を してきた歌詞をサーバー が話します。
  19. 19. Client-Serverモデ ルの対話型ツールです。 様々な作詞家が送付を してきた歌詞をシンガー が話します。
  20. 20. Client-Serverモデ ルの対話型ツールです。 様々な作詞家が送付を してきた歌詞をシンガー が歌います。
  21. 21. 使い方
  22. 22. DEMO
  23. 23. $ acappella-server acappella 0.1.0 starting on druby://localhost:8989 Run `acappella-server --help` for more startup options Ctrl-C to shutdown server ! $ acappella-client Connect to druby://localhost:8989 Run `acappella-client --help` for more startup options Ctrl-D to exit >
  24. 24. 実装
  25. 25. https://github.com/koic/acappella
  26. 26. 設計
  27. 27. :Client :SetList :Singer songwriter: Songwriter songwriter: DRbObject <<Stub>> request(lyrics) next_song :Server <<LocalObject>> lyrics:String sing(song) Client Side (DRbObject.new_with_uri) DRbServer Side (DRb.start_service) write method_missing(:write, …) 設計図 druby://localhost:8989
  28. 28. 内部の 流れ
  29. 29. :Client :SetList :Singer songwriter: Songwriter songwriter: DRbObject <<Proxy>> request(lyrics) next_song :Server <<RemoteObject>> lyrics:String sing(song) Client Side (DRbObject.new_with_uri) DRbServer Side (DRb.start_service) write method_missing(:write, …) druby://localhost:8989 リモートオブジェクト is 誰?
  30. 30. :Client :SetList :Singer songwriter: Songwriter songwriter: DRbObject <<Proxy>> request(lyrics) next_song :Server <<RemoteObject>> lyrics:String sing(song) Client Side (DRbObject.new_with_uri) DRbServer Side (DRb.start_service) write method_missing(:write, …) druby://localhost:8989 リモートオブジェクトを登録して起動する
  31. 31. :Client :SetList :Singer songwriter: Songwriter songwriter: DRbObject <<Proxy>> request(lyrics) next_song :Server <<RemoteObject>> lyrics:String sing(song) Client Side (DRbObject.new_with_uri) DRbServer Side (DRb.start_service) write method_missing(:write, …) druby://localhost:8989 DRbObjectを取得する
  32. 32. :Client :SetList :Singer songwriter: Songwriter songwriter: DRbObject <<Proxy>> request(lyrics) next_song :Server <<RemoteObject>> lyrics:String sing(song) Client Side (DRbObject.new_with_uri) DRbServer Side (DRb.start_service) write method_missing(:write, …) リモートメソッドの呼び出しdruby://localhost:8989
  33. 33. :Client :SetList :Singer songwriter: Songwriter songwriter: DRbObject <<Proxy>> request(lyrics) next_song :Server <<LocalObject>> lyrics:String sing(song) Client Side (DRbObject.new_with_uri) DRbServer Side (DRb.start_service) write method_missing(:write, …) druby://localhost:8989 alternative slide シリアライズとデシリアライズ
  34. 34. DRbObject#method_missing https://github.com/ruby/ruby/blob/v2_2_0_preview2/lib/drb/drb.rb#L1133
  35. 35. :Client :SetList :Singer songwriter: Songwriter songwriter: DRbObject <<Proxy>> request(lyrics) next_song :Server <<RemoteObject>> lyrics:String sing(song) Client Side (DRbObject.new_with_uri) DRbServer Side (DRb.start_service) write method_missing(:write, …) druby://localhost:8989 作詞家に渡された曲をリクエストする
  36. 36. :Client :SetList :Singer songwriter: Songwriter songwriter: DRbObject <<Proxy>> request(lyrics) next_song :Server <<RemoteObject>> lyrics:String sing(song) Client Side (DRbObject.new_with_uri) DRbServer Side (DRb.start_service) write method_missing(:write, …) druby://localhost:8989 セットリストから次の曲を取り出す
  37. 37. :Client :SetList :Singer songwriter: Songwriter songwriter: DRbObject <<Proxy>> request(lyrics) next_song :Server <<RemoteObject>> lyrics:String sing(song) Client Side (DRbObject.new_with_uri) DRbServer Side (DRb.start_service) write method_missing(:write, …) 歌う druby://localhost:8989
  38. 38. どちらがサーバでど ちらがクライアント? 今後、加味したい点 http://www2a.biglobe.ne.jp/seki/ruby/d205.html • dRubyではどのスクリプトも簡単にサーバになれま す。 • それにどのスクリプトもサーバであったり、クライア ントであったりします • その関係はメソッド呼び出しのレシーバ、センダーの 関係と同じです。
  39. 39. http://www.druby.org/drb08.pdf 詳しくは書籍を読もう!
  40. 40. たのしく分散 プログラミング
  41. 41. http://docs.ruby-lang.org/ja/2.1.0/library/drb.html
  42. 42. さいごに
  43. 43. 分散と人
  44. 44. http://www.esm.co.jp/agile/business_plan_esm_agile_div_35th.pdf 分散した 社会構造
  45. 45. XPE2ndと上司がついてきます https://pbs.twimg.com/media/CIZYfj6W8AAqyAU.jpg
  46. 46. The world is connected
  47. 47. https://pbs.twimg.com/media/CKjqYTWXAAAYEtz.jpg
  48. 48. https://github.com/koic/acappella

×