参加レポート:Omotesando.rb #54
先日、Omotesando.rbに初めて参加したのでそのメモです。
(社内Qiitaからのほぼサルベージです)
秋頃から、 人がコードと向き合うときに何を考えているのか、に興味を持っていて、(このあたりは多分銀座Railsでの 伊藤淳一さん の講演の影響がある)、テーマがフィットしたので参加してみました。
根気がいるコードリーディングのする時のアプローチ
https://speakerdeck.com/fumiyashibusawa/lt-omotesando-rb-2020-01-09
OSSのリポジトリだったり、歴史を重ねた自社のコードだったり、慣れない言語のコードだったり、って割と根気いるよね、どこまで読めばいいのかわかんないよね、そういう時の経験の話でした。
例えばがっつり読んでみる前に図解してみるとか、公式ドキュメントのイントロダクションをちゃんと読むとか、当たり前だけど大切なことの共有で、私は割とかなり共感しました。
(最近特に、自社のレガシーなコードを掘り起こすようなことが多かったので……)
ドキュメント大事だし、自分一人で開発をしていないので、数日後、数週間後、数ヶ月後の誰かのために残しておくことは大事だと思うんですが、一方でドキュメントのメンテナンスが忘れられてしまうことが往往にしてあり、その辺りをどう解消していくかが悩みのタネではあります。
Bundle UpdateのPRの読み方
https://esa-pages.io/p/sharing/8985/posts/202/5544484d73b2b3828ccc-slides.html#/
DependabotとかのPRをどう読んでいるか、という話。
リリースノートをチェックする時の温度感(BREAKING CHANGEとか入ってるとかなり真剣に読む)とか、機能追加に見せかけて非互換な変更混ぜ込まれていたりするから気をつけている、とか。
個人的に割と知りたかったことが知れてよかったなぁ〜と思っています。
Bundle UpdateのPRをマージするというのが属人的になりがちなのですが、組織内でこの温度感を共有できていれば怖くないのかなぁと。
どうやってコードを読んでいるか
ghqなど便利gemを紹介しつつ、コードを読んでいくデモでした。
便利gemがどんな風に使われてるのか、使ってる人の使っているところがみられるの、一番勉強になるので本当に良いと思います。
これがペアプロで得られる(大きくはないかもしれないが)重要な成果なんじゃないかなぁ。
RubyMineの便利機能
RubyMine使いの人がコードリーディングする時に便利だな〜と思っている機能の話でした。
ダイアグラム、使ったことなかったんですが割と便利そう(だけどrailsでこれ使うと継承しまくりでエライコッチャになりそう、とも思った)。
Visual Studio Code の拡張機能の話
その名の通りで、Visual Studio Codeの拡張機能について、Rails書く時こういうの使ってるよ!という話でした。
ただ、こういう便利機能に頼りすぎないことが大切で、特にRailsはRubyで書かれているのだからコードを読むことができるんだよ、というのが本当にそれな、の気持ちになりました。
実例で見るコードリーディングのすすめ
https://speakerdeck.com/makicamel/lets-enjoy-code-reading
正月からRubyのコードを読んでいるという姿勢がまずめちゃくちゃえらい……。
RubyをRubyで書いたrubiniusというのがめちゃくちゃタメになったので、時間作ってちゃんと読もう〜〜というやっていきの気持ちが生まれました
Rubyのコードを読むことで、何に考慮すれば 良いコードなのかを学ぶことができる、というのもなるほどだった。
とはいえ時間は有限なので、コードを読むのに無理はしない、というのもとても大切だなと思いました。
ActiveRecordのコードを読んでみる
https://osyo-manga.github.io/slide-omotesandorb-54-code_reading/#/
ActiveRecordのコードを例に、Vimでコードをどんな風に読んでいくか、これもデモ多めでお話しされていました。
Rubyはそもそもコードを読むためのメソッドが手厚く用意されている( source_location とか )し、Rubyのコードが読めればRailsのコードが読める(2回目)のだから、デバッグコード書きつつ(消し忘れに注意)読んでいこうぜ、というやっていきの気持ちを感じてとてもよかったです。
感想
ツールの話とか、Qiitaやはてブロ読んだりするより実際に使っている人が使っている様をみるのが一番勉強になるので、いろんな人がLTされていてすごいよかったな〜〜〜って思います(語彙がない)
あくまで私自身の所属する組織をぼんやり観察していての感想ですが、新機能開発などで忙しくしているときって人のコードを見なくなりがちだし、オレオレな実装が増えがちだし、あと勉強会とかで外の空気を吸わなくなりがちで。
なんとなくですが、忙しい時ほど一息ついたり、外の空気を吸ったりする意味合いだったり、勉強会行って自分が知らないことを吸収して組織にフィードバックする時間を設けたほうがいいのではと思います。
Omotesando.rbは初めて参加したんですが、運営されている南谷さんのお人柄なのか、あったかくていいなぁ、と思いました。
拠点が会社から近いことが多いのでまた行きたい。