チームでのプログラム開発を行っていると、コードレビューを受け持つ場面が多々出てくる。コードレビューで返す内容は様々で、コードの問題点の指摘や良いコードの評価の他、意図の読めないコードについて質問する事もある。「コードの問題点」も、その深刻さで何段階かに分けられる。単にアルゴリズムが非効率なだけか、バグやセキュリティリスクに繋がるかと言ったような。
そういった個々のレビュー内容についての「温度感」のような物は確かに存在するのだが、それはなかなか伝わりにくい。どのようなレビューコメントも、一見、唯の「コードへの意見表明の文字列」に過ぎないからだ。
そこで、レビュー内容に、その種別を表すラベルを付けようという方法がある。修正必須な物には[must]と付けたり、質問には[ask]を付与したりといった具合に。各々のレビュー内容の頭の数文字を見れば、そのレビューがどのような種別なのかが伝わるという寸法だ。唯のテキストでは、まだ視認性が悪いからという事で、Shield.ioで専用の画像を生成して使用するというアイディアも存在する。
しかし、個人的にはShield.ioを使っても尚、難点が在ると感じる。というか、皆、英語の略やジャーゴンをよく憶えられるね。「IMO」とか「nits」とか、どうにも憶えられない。いきなり言われても「えっと、どういう意味だったっけ?」と思考が止まってしまう。本筋ではない所で脳のリソースを使う手法は避けたい。
もっと視認性と解りやすさを両立した何かが欲しい。何か無いだろうかと考えて、思いついたのが絵文字を使う方法だ。フォントに依っては、文字でありながら様々に着色されているので、通常の文字との区別もしやすい。一種の表意文字と言えるので、その形状からレビューの種別を想像させる事も難しくないだろう。
一先ず、以下のように規定して運用してみている。
絵文字 | 意味 |
---|---|
👍 | 良い、評価できる部分。 |
⛔ | 必ず修正して欲しいコード。想定通りの動作をしていない、しないケースが考えられるコードや、極端に設計が悪いコード。 |
🤔 | 個人的には修正した方が良いと考えるが、異論も考えられるコード。議論し、その結論に満足出来た場合、取り下げる事も考えられる。 |
❓ | 該当箇所についての質問。回答次第で「問題なし」と判断されたり、何らかの修正をお願いする事になる。 |
(絵文字無し) | 想定通りの動作はしているが、修正は必要だと感じるコード。 |
もう少しブラッシュアップを行いたい所ではあるが、唯の文字列よりも伝わりやすいのではないだろうか。Shield.ioのような外部のwebサービスに依存せず実現可能な点も長所だろう。