Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
OSS初心者がつまづきながら OSSマナーを学んでいく話 Tama Ruby!"01 2019.07.06 @fuqda90
Slide 2
Slide 2 text
fuqda(ふくだ)と申します! ・Tama.rb Organizor ・Ruby/Rails歴 1.5年〜 fuqdaと申します ・Tama.rb Organizor !Ruby / Rails"1#$
Slide 3
Slide 3 text
fuqda(ふくだ)と申します! ・Tama.rb Organizor ・work@STORES.jp, inc. ・Ruby/Rails歴 1.5年〜 本日のお話
Slide 4
Slide 4 text
(OSS初心者&経験の浅いプログラマーが) 失敗の中で OSSマナーを 学んでいく話
Slide 5
Slide 5 text
自分は強くないけれど... 憧れの先輩方を 真似て始めてみたら 学びが深くなったので オススメしたい
Slide 6
Slide 6 text
こう言う人がいる
Slide 7
Slide 7 text
そもそもOSSって 強い人がやるものじゃないの? 自分はそんなに強くないから...
Slide 8
Slide 8 text
本日の目標
Slide 9
Slide 9 text
経験の浅い自分の取り組みを話すことで まだ取り組んだことのない方に (自分にはまだ早いと思ってる方に) 「自分もやってみようかな」 そう思ってもらうこと ※あくまで取り組み方の一つとして聞いて頂ければ幸いです
Slide 10
Slide 10 text
本題
Slide 11
Slide 11 text
【本日のメニュー】 第1章 OSSに取り組むきっかけ 第2章 初コントリビュートしたときの話 第3章 やらかし & 気付き
Slide 12
Slide 12 text
第1章 OSSに取り組むきっかけ 第2章 初コントリビュートしたときの話 第3章 つまづき & 気付き
Slide 13
Slide 13 text
業務でRailsに当てた モンキーパッチ ※コードの詳細は割愛
Slide 14
Slide 14 text
この経験の中で気付いた... 出来合いのライブラリを そのまま使えば良いわけでは ないかもしれない
Slide 15
Slide 15 text
きっと今後も 複雑なアプリの要件に 立ち向かうたびに こうした機会は訪れるだろう...
Slide 16
Slide 16 text
決意する!
Slide 17
Slide 17 text
普段使ってる OSSにパッチを送ったり 自力で直せるようになるぞ
Slide 18
Slide 18 text
モンキーパッチ(社内に閉じた修正) じゃなく、OSSに プルリクエストを送ってみたい!
Slide 19
Slide 19 text
第1章 OSSに取り組むきっかけ 第2章 初コントリビュートしたときの話 第3章 やらかし & 気付き
Slide 20
Slide 20 text
無い知恵を絞る...
Slide 21
Slide 21 text
パッチを送るために 2つのアプローチを取ることに
Slide 22
Slide 22 text
1. 気になるリポジトリのコードを 片っ端から追いかける 2. 業務で困っていること(不便)を考える
Slide 23
Slide 23 text
1. 気になるリポジトリのコードを 片っ端から追いかける 2. 業務で困っていること(不便)を考える
Slide 24
Slide 24 text
ある日 Railsのリポジトリを 読んでいたら...
Slide 25
Slide 25 text
軽微だがパッチを送れそうな箇所を発見
Slide 26
Slide 26 text
直す対象はわかったが... OSSって どうプルリク送れば良いのか 分からない
Slide 27
Slide 27 text
いろんな先輩 エンジニアの方々に 質問してみた
Slide 28
Slide 28 text
自分の中で目から鱗だった回答
Slide 29
Slide 29 text
Q. プルリクでメンテナーに分からないことを 質問してもいいものなんですか? A. 仕事と同じで長く関わっている人の方が仕様に 詳しいのは当たり前! 疑問に思ったことは質問しても大丈夫だよ!!
Slide 30
Slide 30 text
その後も疑問点を相談しつつ 拙い英語でプルリクを出した
Slide 31
Slide 31 text
この時のPRを投げる手順は以前Qiitaに 投稿したので気になる方はそちらも 参考までに...
Slide 32
Slide 32 text
OSS初プルリクだったもののRails にマージしてもらえた
Slide 33
Slide 33 text
第1章 OSSに取り組むきっかけ 第2章 初コントリビュートしたときの話 第3章 やらかし & 気付き
Slide 34
Slide 34 text
今度は業務にも活きる パッチを送りたい
Slide 35
Slide 35 text
1. 気になるリポジトリのコードを片っ端から追いかける 2. 業務で困っていること(不便)を考える
Slide 36
Slide 36 text
そういえば、 あれ...直したいかも
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
mongoid (gem) MongoDBをActiveRecord的に操作する ためのODM(Object Documen Mapper)
Slide 39
Slide 39 text
不便に思うところを 直してみた
Slide 40
Slide 40 text
実際にやったこと
Slide 41
Slide 41 text
mongoidのデフォルトでは rails g model で生成されるクラスに created_at と updated_at が付与されないので デフォルトで付与するようにした ⏰ ※これをやらない場合、毎回モデル生成のたびに rails g model モデル名 --timestamp で打つことに
Slide 42
Slide 42 text
例の如くプルリクを送ってみた
Slide 43
Slide 43 text
この時の私は自分が 最低の修正をしてしまったこと に気付いていなかった
Slide 44
Slide 44 text
その後プルリクに コメントが付く...
Slide 45
Slide 45 text
雑な訳) ActiveRecordはこのオプションを サポートしている。ActiveRecordに合わせるため、 このPRはリジェクトされるべきだ!!
Slide 46
Slide 46 text
最低の修正の中身
Slide 47
Slide 47 text
オプション(--timestampオプション) そのものを消した(最低) (このオプションそもそもいらなくない?と思ったので...)
Slide 48
Slide 48 text
その後、懸命な消火活動は続く
Slide 49
Slide 49 text
しかし、クローズしようぜ的な コメントがつき万事休す
Slide 50
Slide 50 text
その直後、この件について Twitterで呟いた際に 貴重なアドバイスが✨
Slide 51
Slide 51 text
No content
Slide 52
Slide 52 text
No content
Slide 53
Slide 53 text
このとき、 大切なことに気付く...
Slide 54
Slide 54 text
OSSにパッチを送る 行為(修正内容&PR内での振る舞い)にも マナーがあるということを
Slide 55
Slide 55 text
今回の場合だと mongoidのオプション そのものを消すのではなく それを生かした上で期待する修正をしてあ げるのがマナーだとわかった
Slide 56
Slide 56 text
@kamipoさんの アドバイスに則って 修正し直してみた
Slide 57
Slide 57 text
mongoidが目指す方向性に寄せて ActiveRecordのやり方に 準拠して直すようにした
Slide 58
Slide 58 text
No content
Slide 59
Slide 59 text
色々やらかしましたが... なんとかmergeされることに✨
Slide 60
Slide 60 text
このプルリクエストは その後に修正内容に 関してマナーを意識する大 切な気付きになった
Slide 61
Slide 61 text
まとめ
Slide 62
Slide 62 text
年数は関係ない! 取り組んだ方の経験に応じた学びが きっとある!興味ある方は是非 → 当該リポジトリの思想に触れる事による学び → 自分が使っているOSSの中身を知る学び
Slide 63
Slide 63 text
OSSは公共物なので 使わせてもらえることを 当たり前にしない メンテナーに感謝しつつ (マナーある)PRが送れると最高かと✨
Slide 64
Slide 64 text
それでも一人で やるのは不安... そんな方は!
Slide 65
Slide 65 text
コミュニティにおいでよ!
Slide 66
Slide 66 text
Tama.rbでもOSSコードリーディング部 という活動をしており、 コミュニティでOSSのコードに触れる 機会を不定期で設けています (あわよくばパッチも送ったり!)
Slide 67
Slide 67 text
まだOSSに 取り組んだことのない方も! 是非コミュニティと一緒にやってい きましょう!!
Slide 68
Slide 68 text
ご静聴 ありがとう ございました!