イケてないコードは、遠くからでもわかる

このところレビューする機会が多くあるのですが、その中で、すごく乱暴なのですが、遠くから見ても「イケてないコード」判定できる コードってあるよね、というお話です。

たとえば 「うねりコード」がそうです。

「うねりコード」とは、 if ブロックが複雑に重なっていてコードがウェーブを描いているようなコードです。

[プログラミング]うねったコードと戦う
良くないコードは遠くから見てもわかります。それは「コードがうねっている」からです。そんなコードをちょっと良くしてみました。
atuweb 開発ブログ

目が疲れないコードだと嬉しい

「読みやすさ」は、良いコードの必要条件 だと思うのですね。

私はベテランで、目が疲れやすくなったのか、

  • 縦横に長過ぎたり
  • 詰め詰めだったり
  • 極端に改行が少なかったり
  • ノリノリでコメントを書いていてやたらと長文になっていたり

するコードなどは、読むのが若干辛かったりします。

なので、まずは全体をぼんやり眺めてみて、バランスが悪かったり、リズムが乱れていないか、をざっくりレビューし、あまりにもあんまりな時は「読みやすさを意識してみてください」とアドバイスすることもあります。


そんな事を考えながらレビューしていると、以前に話題になった POSTD の記事を思い出しました。

眼鏡なしのコードレビュー というやつです。

POSTD
眼鏡なしのコードレビュー
https://postd.cc/code-review-without-your-glasses/

メガネを家に忘れてきて、ぼんやりとしか読めない、という設定でレビューするとどうなるか、という記事です。
こういうの好きです。

ちょっと離れて眺めてみる

難しめの書籍を開いてみると、文字が詰まっていて「うわっ」となった経験が、みなさんあると思います。

文字が固まって黒団子のような状態になっていると、圧迫感がすごいですよね。

たとえば、伝えたいこと、伝えないとならないことはたくさんあると思うのですが、 一度にすべて伝えようとすると、黒団子になりやすい ですね。

そういったものでも、ちょっと空白を足してあげると、負担感はかなり和らぎます。
要は白と黒のバランスですね。


プログラミングも、そのあたりは同じだと思っていて、クラスを分ける、関数を分けることはもちろん、各パーツの中でも適当に改行を入れるなりして「 空白を意識する 」と、読みやすくなる事が増えます。

そして、トイレから戻るタイミングなんかで、ちょっと遠くから眺めてみるというようにすると、コード全体のバランスが把握しやすいため、より改善に繋げられることもあります。

読み手を意識したコードを書いてね

プログラマの仕事はプログラミングをすることですが、チームで開発する以上、プログラミが相手に何を伝えるか、ということも意識することが大切だと考えます。

というあたりで、私はやっぱり「 プログラミングって作文技術スキルが大切だよね 」と思います。

作文と表現していますが、要はビジネス文書です。

報告書などを書くのも無駄にはならず、プログラミングセンスを磨くことに繋がります。

良いコードを書くために、まずは

『リーダブルコード』が、ボリュームもそこそこで読みやすいため、勧めていますが、プラスアルファとして、ビジネス文書の書き方を勉強をしてみるのもいいかもしれません。

「ロジカルシンキング」は、シンキングと書いてあるけれども、ビジネス文書の書き方を指南してくれる本もあり、学生向けの作文の本より目的に沿っていると思います。