Suche senden
Hochladen
クローズドソースから始めるオープンソース
•
10 gefällt mir
•
33,428 views
Takafumi ONAKA
Folgen
2017-05-23 Speee Cafe Meetup #07
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 36
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
RSpecしぐさ
RSpecしぐさ
Takafumi ONAKA
ApplicationTemplateのススメ
ApplicationTemplateのススメ
Takafumi ONAKA
Sprocketsを捨てたい
Sprocketsを捨てたい
Masato Noguchi
Hatena::Letの式年遷宮
Hatena::Letの式年遷宮
Takafumi ONAKA
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
RailsのRailから解放される始めの一歩
RailsのRailから解放される始めの一歩
Masato Noguchi
Empfohlen
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
RSpecしぐさ
RSpecしぐさ
Takafumi ONAKA
ApplicationTemplateのススメ
ApplicationTemplateのススメ
Takafumi ONAKA
Sprocketsを捨てたい
Sprocketsを捨てたい
Masato Noguchi
Hatena::Letの式年遷宮
Hatena::Letの式年遷宮
Takafumi ONAKA
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
RailsのRailから解放される始めの一歩
RailsのRailから解放される始めの一歩
Masato Noguchi
すこやかRails
すこやかRails
Takafumi ONAKA
Application Bootstrap
Application Bootstrap
Takafumi ONAKA
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!
Masato Noguchi
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
terahide
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Yoji Shidara
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
DIVE INTO CODE Corp.
Rubyの仕事で食べていくために僕らは!
Rubyの仕事で食べていくために僕らは!
Ouka Yuka
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
Kenji Mori
ゲーム会社でのRuby : rails活用事例
ゲーム会社でのRuby : rails活用事例
Yasutomo Uemori
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
Masato Noguchi
師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013
hiboma
2015 07-04-ruby rails
2015 07-04-ruby rails
Hiroshi Oyamada
2015 12-19-ruby rails
2015 12-19-ruby rails
Hiroshi Oyamada
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
Hirata Tomoko
2016 02-09-co-edo lt
2016 02-09-co-edo lt
Hiroshi Oyamada
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
Hirata Tomoko
2016 02-25-crawler-study-01
2016 02-25-crawler-study-01
Hiroshi Oyamada
Riot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディング
Keisuke Imai
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
Tasuku Suenaga
BootstrapとRailsで、 高速にWebサイトを作ってみた
BootstrapとRailsで、 高速にWebサイトを作ってみた
BeMarble
What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7
Akinori Musha
MF GeeksNight pplogの話
MF GeeksNight pplogの話
Naoto Koshikawa
Weitere ähnliche Inhalte
Was ist angesagt?
すこやかRails
すこやかRails
Takafumi ONAKA
Application Bootstrap
Application Bootstrap
Takafumi ONAKA
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!
Masato Noguchi
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
terahide
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Yoji Shidara
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
DIVE INTO CODE Corp.
Rubyの仕事で食べていくために僕らは!
Rubyの仕事で食べていくために僕らは!
Ouka Yuka
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
Kenji Mori
ゲーム会社でのRuby : rails活用事例
ゲーム会社でのRuby : rails活用事例
Yasutomo Uemori
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
Masato Noguchi
師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013
hiboma
2015 07-04-ruby rails
2015 07-04-ruby rails
Hiroshi Oyamada
2015 12-19-ruby rails
2015 12-19-ruby rails
Hiroshi Oyamada
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
Hirata Tomoko
2016 02-09-co-edo lt
2016 02-09-co-edo lt
Hiroshi Oyamada
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
Hirata Tomoko
2016 02-25-crawler-study-01
2016 02-25-crawler-study-01
Hiroshi Oyamada
Riot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディング
Keisuke Imai
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
Tasuku Suenaga
BootstrapとRailsで、 高速にWebサイトを作ってみた
BootstrapとRailsで、 高速にWebサイトを作ってみた
BeMarble
Was ist angesagt?
(20)
すこやかRails
すこやかRails
Application Bootstrap
Application Bootstrap
僕はどうしてもLibsassが使いたかったんだ!
僕はどうしてもLibsassが使いたかったんだ!
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
Ruby on Rails でつくるアタシ好みの愛され Web サービス
Ruby on Rails でつくるアタシ好みの愛され Web サービス
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
Rubyの仕事で食べていくために僕らは!
Rubyの仕事で食べていくために僕らは!
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ゲーム会社でのRuby : rails活用事例
ゲーム会社でのRuby : rails活用事例
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
request-specを利用していい感じにモックデータを作ってフロントエンド開発を楽にしたい!
師弟登壇・新米サムライの集い 2013
師弟登壇・新米サムライの集い 2013
2015 07-04-ruby rails
2015 07-04-ruby rails
2015 12-19-ruby rails
2015 12-19-ruby rails
Railsチュートリアル(second)を終えて
Railsチュートリアル(second)を終えて
2016 02-09-co-edo lt
2016 02-09-co-edo lt
Railsのフロントエンド開発を考える
Railsのフロントエンド開発を考える
2016 02-25-crawler-study-01
2016 02-25-crawler-study-01
Riot.jsとフォームのデータバインディング
Riot.jsとフォームのデータバインディング
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
BootstrapとRailsで、 高速にWebサイトを作ってみた
BootstrapとRailsで、 高速にWebサイトを作ってみた
Ähnlich wie クローズドソースから始めるオープンソース
What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7
Akinori Musha
MF GeeksNight pplogの話
MF GeeksNight pplogの話
Naoto Koshikawa
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
Takuro Sasaki
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
Kazuhiro Serizawa
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
ksimoji
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
schoowebcampus
イベント企画運営の経験と実際 / The history of organizing events by me
イベント企画運営の経験と実際 / The history of organizing events by me
whywaita
mod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipm
鉄次 尾形
Ltfes2010 opening
Ltfes2010 opening
Taku Yajima
aozorahack hackathon #1
aozorahack hackathon #1
masayoshi takahashi
DevOps Conference #1
DevOps Conference #1
Hiroshi Morotomi
コミュニティのある風景
コミュニティのある風景
Ryunosuke SATO
アジャイルサムライ他流試合 - 道場紹介
アジャイルサムライ他流試合 - 道場紹介
Kiichi Kajiura
C#とRubyをつなぐ
C#とRubyをつなぐ
107steps
Rでを作る
Rでを作る
Nagi Teramo
Ojag naha vol13
Ojag naha vol13
Seiei Higa
Ojag naha vol13
Ojag naha vol13
hanachin
goog.require()を手書きしていいのは小学生まで
goog.require()を手書きしていいのは小学生まで
Teppei Sato
Browser oh browser browser
Browser oh browser browser
Teppei Sato
Emscriptenと不思議のダンジョン
Emscriptenと不思議のダンジョン
兎 伊藤
Ähnlich wie クローズドソースから始めるオープンソース
(20)
What's Cooking In Ruby 2.7
What's Cooking In Ruby 2.7
MF GeeksNight pplogの話
MF GeeksNight pplogの話
Rubyで作るクローラー Ruby crawler
Rubyで作るクローラー Ruby crawler
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
第六回 #渋谷java Javaを書き始めて 1年半が経って思うこと
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
イベント企画運営の経験と実際 / The history of organizing events by me
イベント企画運営の経験と実際 / The history of organizing events by me
mod_perlで動くアプリをどう置くか #hachiojipm
mod_perlで動くアプリをどう置くか #hachiojipm
Ltfes2010 opening
Ltfes2010 opening
aozorahack hackathon #1
aozorahack hackathon #1
DevOps Conference #1
DevOps Conference #1
コミュニティのある風景
コミュニティのある風景
アジャイルサムライ他流試合 - 道場紹介
アジャイルサムライ他流試合 - 道場紹介
C#とRubyをつなぐ
C#とRubyをつなぐ
Rでを作る
Rでを作る
Ojag naha vol13
Ojag naha vol13
Ojag naha vol13
Ojag naha vol13
goog.require()を手書きしていいのは小学生まで
goog.require()を手書きしていいのは小学生まで
Browser oh browser browser
Browser oh browser browser
Emscriptenと不思議のダンジョン
Emscriptenと不思議のダンジョン
Mehr von Takafumi ONAKA
不正のトライアングルとコードベースの治安維持
不正のトライアングルとコードベースの治安維持
Takafumi ONAKA
技術記事を書く&楽しむチームの作り方
技術記事を書く&楽しむチームの作り方
Takafumi ONAKA
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
Takafumi ONAKA
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
pt-query-digest は Perl!!
pt-query-digest は Perl!!
Takafumi ONAKA
アプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のこと
Takafumi ONAKA
cpanfileがRubyでパースできることに気づいた俺たちは
cpanfileがRubyでパースできることに気づいた俺たちは
Takafumi ONAKA
Perl使いの国のRubyist
Perl使いの国のRubyist
Takafumi ONAKA
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術
Takafumi ONAKA
ドリコム×ピクシブ 社会人交換留学説明資料
ドリコム×ピクシブ 社会人交換留学説明資料
Takafumi ONAKA
マジカルsvnとキュアgit
マジカルsvnとキュアgit
Takafumi ONAKA
Github Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃん
Takafumi ONAKA
ターミナルで画像確認するヤツ作った
ターミナルで画像確認するヤツ作った
Takafumi ONAKA
Webアプリケーションは難しい
Webアプリケーションは難しい
Takafumi ONAKA
Rails3.2ってどう変わるの?
Rails3.2ってどう変わるの?
Takafumi ONAKA
ドリコム的Railsアプリ開発流儀
ドリコム的Railsアプリ開発流儀
Takafumi ONAKA
とあるアプリの開発運用(トラブルシュート)
とあるアプリの開発運用(トラブルシュート)
Takafumi ONAKA
Mehr von Takafumi ONAKA
(17)
不正のトライアングルとコードベースの治安維持
不正のトライアングルとコードベースの治安維持
技術記事を書く&楽しむチームの作り方
技術記事を書く&楽しむチームの作り方
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
pt-query-digest は Perl!!
pt-query-digest は Perl!!
アプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のこと
cpanfileがRubyでパースできることに気づいた俺たちは
cpanfileがRubyでパースできることに気づいた俺たちは
Perl使いの国のRubyist
Perl使いの国のRubyist
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術
ドリコム×ピクシブ 社会人交換留学説明資料
ドリコム×ピクシブ 社会人交換留学説明資料
マジカルsvnとキュアgit
マジカルsvnとキュアgit
Github Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃん
ターミナルで画像確認するヤツ作った
ターミナルで画像確認するヤツ作った
Webアプリケーションは難しい
Webアプリケーションは難しい
Rails3.2ってどう変わるの?
Rails3.2ってどう変わるの?
ドリコム的Railsアプリ開発流儀
ドリコム的Railsアプリ開発流儀
とあるアプリの開発運用(トラブルシュート)
とあるアプリの開発運用(トラブルシュート)
Kürzlich hochgeladen
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
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
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Kürzlich hochgeladen
(11)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
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
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
クローズドソースから始めるオープンソース
1.
クローズドソースから始 めるオープンソース 2017-05-23 Speee Cafe Meetup
#07 大仲 能史 a.k.a. @onk
2.
自己紹介 • 大仲 能史
a.k.a. @onk • 株式会社ドリコム スペシャリスト • Railsエンジニア歴8年ぐらい • ドリコムには開発ラインが十数本あるので それらから共通化可能な部分をくくりだして 社内gemにする仕事をしています
3.
今日の話 • タイトル「クローズドソースから始めるオープンソース」 • すとうさんに怒られそうなタイトルなのであまりこの順番で話 したくないんですが( •
どのようにオープンソースの「障壁」を取っ払う文化を作って きたかという話をします。
4.
前回のあらすじ! • RubyKaigi2014でも似たような話をしました(by mitaku) http://rubykaigi.org/2014/presentation/S-TakumiMiura
5.
前回のあらすじ! • プロジェクトがいっぱいあると https://speakerdeck.com/mitaku/rubykaigi-2014-gem-of-this-week
6.
前回のあらすじ! • チェリーピック(orコピペ)が生まれる
7.
前回のあらすじ! • 僕らはweb/ゲームという競争の激しい市場で戦っているので
8.
前回のあらすじ! • 俊敏さを維持する必要がある! (コピペはAgilityが足りない)
9.
社内gemという文化を作った
10.
社内gem • geminabox gemを利用して社内gemサーバを立てている
11.
社内gem • 5/23時点で173個 • aからzまで大体埋まるぐらい •
ドリコムの「d」から始まるgemだらけでキツい • タブ補完を利かせるためには1文字目を変える方が望ましいという教訓
12.
社内gemが文化になるまでのアジェンダ • 共通コードをgemにする • gemを作る、アップデートすることが日常であることを伝える •
誰もがgemを作れる、更新できる雰囲気を醸成する
13.
社内gemが文化になるまでのアジェンダ • 共通コードをgemにする • gemを作る、アップデートすることが日常であることを伝える •
誰もがgemを作れる、更新できる雰囲気を醸成する
14.
共通コードをgemにする • こんなのをgemにしました紹介 • komachi_heartbeat •
Speeeさんでも使われてるみたい? • ヘルスチェックを行うMountable Engine • dpoint • 30分で導入できる仮想通貨システム • client_app • User-Agentをパースして、必要だったらApp Storeに飛ばすヤツ • game_date • ゲーム内では午前4時が日付変更線になってる的なヤツ
15.
共通コードをgemにする • こんなのをgemにしました紹介 • gstb •
gistub(社内gist)に投稿するためのCLIツール • 設定レスでgem installするだけで使えるよう、公開せず社内gemに • capistrano-drecom-deploy • ドリコムのインフラ事情に合わせたcapレシピ集 • drecomssh • ec2ssh gem(mirakuiware)の社内版 • ホスト名が補完できるようになる • komachi_foundation-drecom • 社内標準のrails app template
16.
共通コードをgemにする • 僕らの開発組織体制 • プロダクトと別に開発基盤部が存在 •
開発基盤メンバーがプロダクトに アサインされることもある • 横のつながりが担保され、共通部分に 気づきやすい • 外でgemを作ってるメンバーが居た、 共通化して加速するのが当然だよねという 空気が先に存在した影響は大きい
17.
社内gemが文化になるまでのアジェンダ • 共通コードをgemにする • gemを作る、アップデートすることが日常であることを伝える •
誰もがgemを作れる、更新できる雰囲気を醸成する
18.
gemを作る、アップデートすることが日 常であることを伝える • 毎週、全プロダクトのリードエンジニアを集めた共有会を開催 している • 今後追加しようと思っている機能の報告や、トラブル共有等を 行っている •
目的は車輪の再発明の防止と、人の振り見て我が振り直せ • 事実・負債・挑戦&見える化、横展開 • ツラみやドヤりの共有
19.
gemを作る、アップデートすることが日 常であることを伝える • 共有会のコンテンツに「今週のgem」というコーナーを作った • 1週間の間に作ったgem、バージョンアップしたgemと そのREADME、CHANGELOGを報告する •
作者の顔が見えるし、作者が「めっちゃ便利なので入れてくだ さい」とアピールする場になる • 便利gemがプロダクトに取り入れられ、要望が上がってきて バージョンアップして、バージョンアップ内容が次の共有会で 報告され、便利になったので別のプロダクトに取り入れられ ……という非常に良いループが回った
20.
gemを作る、アップデートすることが日 常であることを伝える • 量が増えたので、社内gemが偏在する ようになった • 社内gemのある風景こそが日常 •
普通に作るし普通に使う • Gemfileがこうなっている→ source "http://gem.drecom.co.jp" do gem "acts_as_mysql_partition" gem "blue_pencil" gem "client_app" gem "client_version" gem "compression_serializer-msgpack" gem "dmaster" gem "dpoint" gem "dpoint_web" gem "drecom-unicorn", require: "unicorn" gem "drecom-unicorn-worker-killer" gem "drecom_ldap" gem "dsearch" gem "egg" gem "game_date" gem "kpi-logger" gem "lock_with_user" gem "retryable_action" gem "scatter_swappable" gem "taboo" gem "un_resource_list_info" gem "una10_controller" gem "unavro" gem "unicorn-timeout_logging" gem "unicorn_manager" gem "user_id_tagged_logger" end
21.
社内gemが文化になるまでのアジェンダ • 共通コードをgemにする • gemを作る、アップデートすることが日常であることを伝える •
誰もがgemを作れる、更新できる雰囲気を醸成する
22.
誰もがgemを作れる、更新できる雰囲気 を醸成する • drecom_gemというgemを作った • drecom_gem
gem [gem_name]で雛型作成 • rake drecom:releaseで社内gemサーバにリリースできる • drecom_gemdiffというgemを作った • gemdiffの社内版 • CHANGELOGに対して気軽にアクセスできる
23.
誰もがgemを作れる、更新できる雰囲気 を醸成する • dcmdというgemを作った • 社内gemに関するgemをまとめて入れられる •
コマンド体系を変更して覚える量を減らし、タブ補完が効くように • drecom_gem gem -> dcmd gem generate • drecomssh update -> dcmd ssh update • drecom_gemdiff compare -> dcmd gemdiff compare • awesome_releaseというgemを作った • コントリビュータに感謝を伝えることができるgem • octorelease gem(mizzyware)の社内版 • Issue/PRからCHANGELOGを自動生成できる • Issue/PRに「vX.Y.Zでリリースしたよ、ありがとう!」とコメント
24.
誰もがgemを作れる、更新できる雰囲気 を醸成する • drecom_gemを使ってgemをリリースするとリリース情報が全体 チャットに流れる • 初めてのgemリリースのときはみんなで祝福する •
gemを作ってorアップデートして初めて一人前な空気になる • 共通化チャンスを見つけたら新入社員に優先的に割り振る
25.
誰もがgemを作れる、更新できる雰囲気 を醸成する • 更新したら使って欲しい • gemはなるべく最新を使い続けるよう心掛ける
26.
誰もがgemを作れる、更新できる雰囲気 を醸成する • gemicomという社内サービスがある • gemnasiumクローン? •
どのプロジェクトが、どのバージョンのgemを使っているかを管理 • 最新バージョンじゃなかったら警告される
27.
社内gemが文化になるまでのアジェンダ • 共通コードをgemにする • gemを作る、アップデートすることが日常であることを伝える •
誰もがgemを作れる、更新できる雰囲気を醸成する
28.
社内gemが文化になるまでのアジェンダ • 共通コードをgemにする • gemを作る、アップデートすることが日常であることを伝える •
誰もがgemを作れる、更新できる雰囲気を醸成する • これらを練習に適した場所で行いたい 社内のイメージ OSS界のイメージ
29.
クローズドソースから始める理由 • ライブラリとして成立するまでの抽象化の壁 • ライブラリとして体裁が整っているかの心理的な壁 •
これらの障壁をできるかぎり下げて、「ライブラリを作るって 難しそう」から「やったことがある」に遷移させる
30.
これを許容する • 社内のアウトプット量を最大化させるが、世界のアウトプット 量は最大化していない。まずはそれで良いんです ベルセルク 24巻
三浦建太郎/白泉社 そ れ と も お 前 何 十 年 も 修 行 し て 達 人 に で も な る の を 待 っ て か ら 戦 場 に 出 る つ も り か ? 気 の 長 げ ェ 話 だ な
31.
クローズドソースをオープンにする • とはいえクローズドのままじゃなく、隙あれば公開したい • 公開するキッカケ •
辞めた人から「あれ欲しい」って言われる • 社内gemを社外の自分のプロダクトで使いたい • 懇親会等で「こんなのあればなぁ」という声を聞く • Tech Blogのネタが尽きる • これだけ(173個)あると、「月に1個必ずオープンにする ぞ!」という上意下達もアリですね
32.
自分の管理対象のコードを広げていく • 社内gemにPRを投げることに慣れたら、外のgemも社内gemと同 じように扱えるようになる • Gemfileに加えた瞬間からフィードバックする義務を負う •
覚悟を持ってOSSと相対していく
33.
外に出ていく障壁もできるだけ下げる • 社内gemとはいえ、PRのdescriptionはしっかり書く • 社内gemとはいえ、READMEやCHANGELOG、CIを完備する •
普段からIssue/PR駆動の開発フローに親しむ • 普段からGitHubのUIに親しむ • OSSパッチ会の開催 (Inspired by OSS Gate)
34.
OSSパッチ会 檄文 一般にスタートアップ企業はOSSの利用者であることが多く、積 極的に貢献することは少ないですが、営利団体が「使うだけ使っ て何の貢献もフィードバックもしないフリーライダー」というの は倫理観が少し欠如しているとみなされても文句を言えない状態 です。 実際、僕らは問題を見つけてバージョンを固定して凌いだり、モ ンキーパッチを書いたりをしながらサービスを運営しているので、 フィードバックを「できるのにやらない」という、コミュニティ に還元しない選択をしてしまっています。 この理由を解消し、ふつうの会社にしたいなと思ってこの会を企 画しました。
35.
まとめ
36.
まとめ • ライブラリを作ったり貢献したりするまでの障壁は「ある」 • 障壁を下げるために手を尽くす。そのためのクローズドソース •
とはいえ、OSSが実は怖くないのも事実なので積極的に参加し ていく • 「この修正でとりあえず動くけど、正しいかどうか分からない のでupstreamに投げるのが怖い」←正しくなかったら指摘して くれるからええんやで • 男は度胸!何でもためしてみるのさ きっといい気持ちだぜ
Jetzt herunterladen