2024.12.24
ビジネスが急速に変化する現代は「OODAサイクル」と親和性が高い 流通卸売業界を取り巻く5つの課題と打開策
妥協できないソニックガーデンのコードレビュー(全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しない」とかいろいろあるんですが、全部読んでいくとやはり大変だと思うので、また後ほど見てみてください。
ということで、私の発表は以上とさせてもらおうと思います。ありがとうございました。
関連タグ:
2025.01.09
マッキンゼーのマネージャーが「資料を作る前」に準備する すべてのアウトプットを支える論理的なフレームワーク
2025.01.15
若手がごろごろ辞める会社で「給料を5万円アップ」するも効果なし… 従業員のモチベーションを上げるために必要なことは何か
2025.01.16
社内プレゼンは時間のムダ パワポ資料のプロが重視する、「ペライチ資料」で意見を通すこと
2025.01.07
資料は3日前に完成 「伝え方」で差がつく、マッキンゼー流プレゼン準備術
2025.01.10
プレゼンで突っ込まれそうなポイントの事前準備術 マッキンゼー流、顧客や上司の「意思決定」を加速させる工夫
2025.01.14
コンサルが「理由は3つあります」と前置きする理由 マッキンゼー流、プレゼンの質を向上させる具体的Tips
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.01.08
職場にいる「嫌われた上司」がたどる末路 よくあるダメな嫌われ方・良い嫌われ方の違いとは
2025.01.10
職場にいる「できる上司」と「できない上司」の違いとは 優秀な人が辞めることも…マネジメントのNGパターン
2024.06.03
「Willハラスメント」にならず、部下のやりたいことを聞き出すコツ 個人の成長と組織のパフォーマンス向上を両立するには
安野たかひろ氏・AIプロジェクト「デジタル民主主義2030」立ち上げ会見
2025.01.16 - 2025.01.16
国際コーチング連盟認定のプロフェッショナルコーチ”あべき光司”先生新刊『リーダーのためのコーチングがイチからわかる本』発売記念【オンラインイベント】
2024.12.09 - 2024.12.09
NEXT Innovation Summit 2024 in Autumn特別提供コンテンツ
2024.12.24 - 2024.12.24
プレゼンが上手くなる!5つのポイント|話し方のプロ・資料のプロが解説【カエカ 千葉様】
2024.08.31 - 2024.08.31
育て方改革第2弾!若手をつぶす等級制度、若手を育てる等級制度~等級設定のポイントから育成計画策定まで~
2024.12.18 - 2024.12.18