SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Rubyインタプリタ開発者養成講座
クックパッド株式会社
笹田 耕一
ko1@cookpad.com
RubyWorld Conference 2017 (2017 11/2)
今日の発表
• クックパッドでの「Rubyインタプリタ開発者を養成」する取り組み
– 3月 Hackarade: Ruby Internal Challenge
– 8月 Ruby Hack Challenge
• 開催のモチベーション
• 今後の展望
用語:「Ruby開発」とは「Rubyインタプリタ開発」
Hackarade: Ruby Internal Challenge
http://techlife.cookpad.com/entry/2017/05/16/151154
Hackarade: Ruby Internal Challenge
• Hackarade
– 社内エンジニアの技術力向上を目的としたエンジニア全員参加イベント
– Hack + Parade
• Ruby Internal Challenge
– Hackarade
– Ruby「で」開発しているエンジニアが、Ruby「を」開発
– (ちょうど1月に笹田がジョインしたので…)
Hackaradeの流れ
• 午前:座学
– Ruby開発者の文化
– Rubyソースコード構造の紹介
– Ruby開発の最先端
• 午後:開発
– ハックのアイデアの紹介
– 好きなテーマでハック
• 夜:パーティー
– ご飯を食べながら、自分のハックの紹介
NOTE
• Ruby インタプリタは C で記述されている
• ほとんどのエンジニアは C を知らない
• Ruby コードの詳細を説明しない
→ いくつかのサンプルを提示し、
勘で変更して、と指示
Hackaradeの成果
• 40程度のテーマ、10程度のパッチ投稿
• いくつかの成果(詳細はブログ記事を参照)
– More flexible GC parameters
– 再代入不可なローカル変数をつくってみる
– sprintfの精度のバグを直してみる
– Net::FTP で明示的に PORT コマンドを送れるようにする
– Process.uid= validation and casting
– Module#source_location
– …
Hackaradeの振り返り
• 良かった
– 皆さん優秀なので、勘でソコソコなんとかなった
– いくつかの改善要求を実際に Ruby 開発コミュニティへ送ることができた
– 成果報告を含むパーティーが盛り上がった
– 貴重な経験ができたとの声 → 社内イベントとしては成功
• 悪かった
– ハックするトピックを選ぶのに時間がかかった
– 80人程度にサポートが4人程度で、サポートが足りなかった
Cookpad Ruby Hack Challenge (RHC)
http://techlife.cookpad.com/entry/2017/09/29/224024
Cookpad Ruby Hack Challenge (RHC)
• Hackarade を踏まえての社外向けイベント
– 10名募集のところ、100名近い応募(8月末の平日2日間)
• 学生だけかと思ったら、意外と社会人の応募が多かった(8割)
• 研修名目だったり、有給休暇を取ったり色々
– 急遽、15名に枠を増やし、クックパッド社内から4名参加→計19名
• 二日間で開催
• 事前にコミュニケーションチャンネルを用意(Gitter)
RHCの流れ
• 一日目:資料をもとに座学
– https://github.com/ko1/rubyhackchallenge で公開
• 1. MRI 開発文化の紹介
• 2. MRI ソースコードの構造
• 3. 演習:メソッドの追加
• 4. バグの修正
• 5. 性能向上
• 二日目:テーマを決めて、自由に開発
• 二日目の最後:パーティー。ハック内容を紹介
凄いがんばって作りました!
RHCのサブイベント
• まつもとゆきひろさん特別講演
• Rubyコミッタ Q&A
• これらを開催するために、Ruby開発者会議(月一回)をクック
パッドで開催
RHCの成果
• いくつかの成果
– Hash#find_as_hash の実装
– フレームスタックの可視化
– help に --dump オプションを追加
– Procに関数合成を実装
– ビルドしたRubyでのGemのテスト
– …
RHCの振り返り
• 良かった
– 資料がすごくよかった
– Ruby コミッタと議論できるのがよかった
• 悪かった
– 他の参加者と、ハック中コミュニケーションできるとよかった
• 笹田 <-> 各参加者、で閉じていた
– テーマを選ぶのが難しかった(Hackarade と同じ)
– 事前に内容がわかると良かった(募集時に資料を非公開)
開催のモチベーション
• 小さな話:若者のRubyコミッタ離れ
– Rubyの発展にはRubyの開発が必要
– しかし、新規開発者があまり増えない→増やしたい
– 「Rubyのハックって難しそう」というイメージの打破
– 100人対象に行って、1人でもRuby開発を継続する人が居れば良い
• 大きな話:若者のシステムソフトウェア離れ
– システムソフトウェア技術者の質と量はコンピュータ業界にとって重要
– 「システムソフトウェアのハックって難しそう」というイメージの打破
個人的な開催のモチベーション
初等中等でのプログラミング教育
システムソフトウェア技術者
たどり着くのが困難
→ サポートが必要
最初の一歩を後押し
様々なハードルの例
• 興味を持てない
• そもそも分野を知らない
• 他に面白そうなことがある
• 現状で満足している
• 難しそう
• 難しい
今後の展望
• 社外向け Ruby Hack Challenge の継続
– 資料はできたので、継続開催(今冬を予定)
– 来年3月に英国(弊社HQ)で開催予定(資料の英訳…)
– 別のテーマの Hack Challenge も開催したい
– クックパッド以外でも開催したい
• 資料はあるので、クックパッド以外で開催が可能
• 開催したい方、呼んでくだされば、(多分)どこでも行きます
• 継続的な「もくもく会」の開催
– 準備不要で月1程度を目標に開催
今日のまとめ
• クックパッドでの取り組みを紹介しました
– 3月 Hackarade: Ruby Internal Challenge
– 8月 Ruby Hack Challenge
• 開催のモチベーション
– もっと優秀なエンジニアを増やしたい
– もっと Ruby インタプリタ開発を活発にしたい
• 今後の展望
– もっとやっていきたいと思っています
– 興味ありませんか?

Contenu connexe

Similaire à Rubyインタプリタ開発者養成講座

The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
Koichiro Ohba
 
アジャイルUXライブ企画書
アジャイルUXライブ企画書アジャイルUXライブ企画書
アジャイルUXライブ企画書
Tarumoto Tetsuya
 

Similaire à Rubyインタプリタ開発者養成講座 (20)

ナレッジを共有する文化をつくるために
ナレッジを共有する文化をつくるためにナレッジを共有する文化をつくるために
ナレッジを共有する文化をつくるために
 
RubyからC#を扱う
RubyからC#を扱うRubyからC#を扱う
RubyからC#を扱う
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Development
 
PHPer のための Ruby 教室
PHPer のための Ruby 教室PHPer のための Ruby 教室
PHPer のための Ruby 教室
 
今さら聞けない人のためのGit超入門 OSC2018名古屋版
今さら聞けない人のためのGit超入門 OSC2018名古屋版今さら聞けない人のためのGit超入門 OSC2018名古屋版
今さら聞けない人のためのGit超入門 OSC2018名古屋版
 
KPT発表会 - アジャイルひよこクラブ
KPT発表会 - アジャイルひよこクラブKPT発表会 - アジャイルひよこクラブ
KPT発表会 - アジャイルひよこクラブ
 
Benchmarkspec
BenchmarkspecBenchmarkspec
Benchmarkspec
 
Benchmarkspec
BenchmarkspecBenchmarkspec
Benchmarkspec
 
Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。
 
C#とRubyをつなぐ
C#とRubyをつなぐC#とRubyをつなぐ
C#とRubyをつなぐ
 
個人開発 in フィリピン
個人開発 in フィリピン個人開発 in フィリピン
個人開発 in フィリピン
 
Productive Organization with Ruby
Productive Organization with RubyProductive Organization with Ruby
Productive Organization with Ruby
 
Eightにおけるエンジニア主導の取り組み
Eightにおけるエンジニア主導の取り組みEightにおけるエンジニア主導の取り組み
Eightにおけるエンジニア主導の取り組み
 
The Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in CorporationsThe Essence of Using Ruby on Rails in Corporations
The Essence of Using Ruby on Rails in Corporations
 
Redmineをプラグインで拡張しよう
Redmineをプラグインで拡張しようRedmineをプラグインで拡張しよう
Redmineをプラグインで拡張しよう
 
RSpecしぐさ
RSpecしぐさRSpecしぐさ
RSpecしぐさ
 
Redmine + gitlab: merge base development
Redmine + gitlab: merge base developmentRedmine + gitlab: merge base development
Redmine + gitlab: merge base development
 
ApplicationTemplateのススメ
ApplicationTemplateのススメApplicationTemplateのススメ
ApplicationTemplateのススメ
 
アジャイルUXライブ企画書
アジャイルUXライブ企画書アジャイルUXライブ企画書
アジャイルUXライブ企画書
 
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
苫小牧高専 ソフトウェアテクノロジー部 Rubyで遊ぼう 1
 

Plus de Koichi Sasada (7)

Guild Prototype
Guild PrototypeGuild Prototype
Guild Prototype
 
Ruby's Concurrency Management: Now and Future
Ruby's Concurrency Management: Now and FutureRuby's Concurrency Management: Now and Future
Ruby's Concurrency Management: Now and Future
 
Fiber in the 10th year
Fiber in the 10th yearFiber in the 10th year
Fiber in the 10th year
 
Rubyにおけるトレース機構の刷新
Rubyにおけるトレース機構の刷新Rubyにおけるトレース機構の刷新
Rubyにおけるトレース機構の刷新
 
Fiber in the 10th year
Fiber in the 10th yearFiber in the 10th year
Fiber in the 10th year
 
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようCookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
 
Ruby 2.4 Internals
Ruby 2.4 InternalsRuby 2.4 Internals
Ruby 2.4 Internals
 

Dernier

Dernier (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
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デバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成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の勉強会で発表されたものです。
 

Rubyインタプリタ開発者養成講座