『リーダブルコード』でこう変わっていく
西村:同じ開発チームのコードを読む、リーダブルなコードを書く……このスキルというか、習慣化することで具体的にどういったメリットがありますか? まぁ、コードが読みやすくなって、汚いコードを見て「なんだこれは!」ということがなくなるのは大きなメリットとして挙げられるでしょうが。
須藤:「コードを読む」というと最近ではいわゆる「コードレビュー」を想像するかと思います。でも、コードレビューは悪いところがないかチェックし、つぶすためのものなので、どうしても悪いところに目がいってしまいます。
そうではなくて「こんな書き方があるんだ」とか「こんな新機能があるんだ」とか、「良いところを見つける視点」から読むとなると、見えてくるものが違ってきます。今までコードを見ると、悪いところばかり探してしまっていた人にも、「このコードの書き方のこの点は良いから自分も取り入れよう」というように、良いところを見つけるという視点を持ってもらいたい。良いところを見つければ、それは良い書き方を学んだことになり、コードを書くときに学んだ良い書き方を活かせるようになります。受講していただく方には早くこのようなよい循環になってほしいと思っています。
西村:講座の中ではいわゆる「コードの意図を書くとはこういうことですよ」というお手本を示すようなことはしないのでしょうか?
須藤:しませんね(笑)。
講座では、簡単なプログラミングの課題を用意しています。講座の前半は自分で考えうる今の精一杯のリーダブルなコードで、課題を実装してもらいます。
そして後半では、参加者同士で書いたコードをチェンジします。チェンジしたら受け取ったコードを「良いところを見つける視点」をもって読みます。「こういう風に書いているんだな」「ここまで進んでいるんだな」というのを確認したら、さらに受け取ったコードをベースに開発を続けます。ここでは必然的にコードレビューではなく「ここはどうなっているんだろう」「こういう書き方がいいな」という観点でコードを読むことになります。
さらに講座の最後には、各自が見つけたリーダブルコードを紹介してもらいます。自分が良いと思ったコードが他の人から見てどうなのか、もっと伝わるコードはないか、どういうコードがリーダブルかを体験できる内容になっています。
西村:改善するまで行かなくても、「いいな」という部分を見つけられるというのがいいですね。他の人のコードを見て、そこを取り入れられる循環になるというか。
須藤:そうですね。さらに習慣化することで、例えばちょっと悪いコードがあったとしても、その場合はこうすれば良いという発想力も身につくと思います。「良いコードの書き方」を取り入れるから「良いコードの書き方」を生み出す、というステップに進んでいけると思います。講座は、そのステップの前者にあたりますね。例えば会社の中でも良いものを見つける視点でコードを読むことがあたりまえになれば、「後輩に見られているからコードを工夫しよう」とか、後輩が先輩に対して「コードを見てください」と気軽に言う場面も増えてくると思います。
西村:つい研修って、悪いコードをよくするとか、悪い部分を見つけるとかイメージしがちですけど、それって良くないですよね(笑)。一日中コードを書くわけですからそういうやり方だと気が沈むかも(笑)。良いものを見るほうが絶対頭に残りますよね。
須藤:コードを読むのは元来楽しいんだってことですね。少なくとも仕事でコードを書いたりしているので楽しくないと。
西村:レビューは必要なプロセスですが、ある意味セーフティーネットなのでその前段階でいろいろやれるほうがいいですよね。具体的に受講される方はどんな方を想定していますか?
須藤:『リーダブルコード』を読んでやってみたいと思った方でしょうかね。読んでない方もまずは私の書いた解説で、やろうとしていることを理解した上で臨んでいただけたらと。日々コードを書かれていて良いコードを書きたいけれど書けない人、自分のコードが好きになれない人にもぜひ一度受けてみていただきたいです。
西村:皆さん、常々良いコードというのは意識しているんでしょうけど、具体的にどういうことか分からないとかイメージで止まっている方こそ参加して欲しい講座ですね。
須藤:そういう方の一助にこの講座がなれば、と思っています。コードを読むのが楽しいという流れに乗って、チーム内でもレビューではなくコードを読む環境にどんどんなって、いろんな現場でリーダブルコードが当たり前になってほしいですね。資料も全部公開しますので、ぜひ会社に戻られてからも皆さんで実践してみてほしいですね。