2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
妥協できないソニックガーデンのコードレビュー(全1記事)
リンクをコピー
記事をブックマーク
田中義人氏:こんばんは。ソニックガーデンの田中です。ここでは「妥協できないソニックガーデンのコードレビュー」というお題で発表していきます。
私は神戸に住んでいます。2017年から6年間、ソニックガーデンのプログラマーをやっています。プログラミング歴は30年とか40年とかになってしまうかもしれないんですが、Rails歴は7年ぐらいかなと思います。社会人としては二十数年という感じですかね。
ということで、2023年の5月頃に技術書典14で、『コードレビューで学ぶRuby on Rails』を共著で執筆しました。
今日は、そんな私がソニックガーデンのコードレビューがどんなものかをみなさんに伝えられればなと思います。
今回のイベント参加者の事前アンケートをちょっと見てみたんですが、こういうコメントがありました。「レビューの観点やこだわりを知りたい」「『妥協しないコードレビュー』がどこまで妥協しないのかに興味がある」「プロのコードレビューに興味がある」といった声がありました。
レビュー観点でいうと、漏れをなくすチェックリスト的なもので、セキュリティ問題がないか、課金問題はないかとかいろいろあるんですが、(これは)妥協しないコードレビューに対する答えではないような気がしないでもないです。
ということで、あらためて今回のお題は「妥協しないコードレビュー」ですが、これはいったい何なんでしょうか? ということで、まずはソニックガーデンのメンバーに聞いてみました。
すると、とてもたくさんの意見が来ました。(スライドを示して)こういうものが3ページ分あって(これを説明していると)たぶん時間が足りなくなるので、また時間がある時にでも見てもらえればなと思います。もし時間が余ったら最後にこれを話すことになるかもしれません。
例えば「改行の意図もわからなかったら確認する」だったり「変数名、関数名はとことんこだわる」だったり「思想についてもコメントをする」とか。
「自分が引き継いだとしたら『そのコードを5年メンテする気になれるかどうか』みたいな観点でレビューをする」とか「モヤッとでもコメントする」。
あとはコメントが2桁なんて気にせずに「(コメントが)3桁になっても躊躇せずにコメントする」みたいな。そういうものがソニックガーデンの考える、妥協しないコードレビュー。こういう話がいろいろと出てきていました。
ちょっと多過ぎたので「ChatGPT」を使って要約してみたんですけども、「将来に渡って面倒を見続けることができるのか」だったり、「コードを読めばすべてがわかるようになっているのか」。あとは「思ったことをすべてフィードバックする」というようなことで、単なる品質チェックではなくて技術的な思想とかを共有・議論する場になっていると言われました。というか、そんな感じらしいです。
これだけだと実例がわかりづらいかもしれないので、実例を紹介していこうと思います。といってもセキュリティ的に問題にならないようにいろいろと伏せているので、雰囲気だけを伝えられればなと思います。
(スライドを示して)例えば、このプルリクエストはコメントが117件で、3桁いっていますね。こんな調子で、コメントが多くても躊躇せずにコメントするというのが、なかなかおもしろい事例だったので取り上げています。
この中を見ていくと、「なんとなく気になる」というところから、ものすごい量のやり取りが発生しています。これは長過ぎてもう読めないんですが、この議論の結果、最後は納得できたので良かったなという感じです。これはもう妥協していないなという感じがありますよね(笑)。「コードレビューは怖くない」という話があって、怖くなってしまうかもしれませんけどぜんぜん怖くないです。
「空行にもこだわる」。テストコードでもただ動けばいいというわけではなくて、空行がある・ないとかもこだわってコメントしたりしています。これもなかなかこだわっている感があると思います。
他にも、テストコードのコメントも「アクセス」だけじゃなくて「アクセスできると書いてほしい」みたいな、本当に細かいという感じですね(笑)。
あとは思想とかも好みという観点で、好みを付け加えて言いたいことを全部言う感じですね。「気持ち(的に)は直してほしい」ということです。これはちょっと控えめに言っていますが、にじみ出ている感じがあります。
あとは、たとえ自分ができていなくても、このコードを素直に見た時に「ここを良くしたほうがいいんじゃない?」と伝える。ちゃんと「自分のことは棚に上げている」と言い訳を付けてコメントしたりもしています。
あとは「違和感があるけど代替案が思い付かないな。でもなんか伝えておこう」というもの。コードを良くしようと思っているので、「代替案がないなら言うなよ」みたいな雰囲気はまったくなく、ちゃんとうまく言いたいことは言おうと。
そういうことで、全部妥協していない感じが伝わればいいかなと思います。
いくつかの事例を見てきましたが、どうやらソニックガーデンのメンバーは妥協できない人たちの集まりのようです。プログラミングに対して妥協ができないということなんだと思います。自分がコードを書く時にも妥協ができないので、コードレビューの時にも同じように妥協ができないとということで、とてもヤバい人たちにしか見えないかもしれませんが、決して怖くはないです(笑)。
(スライドを示して)みんな良いコードを書くために楽しんでやっているということです。
事前に議論をした時のメンバーの様子です。とても笑顔があふれる楽しい場でした。
この発表のレビュー自体もメンバーにやってもらったんですが、意見がすごく出て内心どうなるかなと思っていたんですが、楽しくやっていました。ソニックガーデンは怖くないということをお伝えしたいです。
ということで結論です。「妥協しないコードレビューって何なのかな?」というところは、プログラミングに妥協できない人たちによって、最高のコードを追求し続ける活動なのかなと思いました。
今回はあまり技術的な事例を載せられなかったんですが、もっと知りたい方はこちらの本をぜひ読んでもらえればと思います。
電子版のみになっています。宣伝になってすみません。それからソニックガーデンのジムですね。ジムとかキャンプに参加をすると「妥協しないコードレビュー」を体験できるので、興味があればぜひ見てみてください。このあとの交流会でコードレビューについて楽しく話をしましょう。
(スライドを示して)ちょっと(時間が)早い気がしたので、この話を、もうちょっと見ていきましょうか。似たような意見もいろいろあるんですが、DRYかどうかを気にしていたり、バージョンが古いものにもコメントをしたりもしますし、テストコードがないと気になるとか、あと今日は言わなかったですが、人の力を使わずに細かいところで機械化できるところ。
ツールに頼れるところはツールに最大限頼って、人の目でその設計とかそういう意味のところをチェックするということも大事にしています。5行の変更にコメントが5個付く。1行1コメントになるというものがあったり、「なんかちょっと臭うなというものはapproveしない」とかいろいろあるんですが、全部読んでいくとやはり大変だと思うので、また後ほど見てみてください。
ということで、私の発表は以上とさせてもらおうと思います。ありがとうございました。
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05