今までだったらスルーしていたジャンルのブログを、時々見るようになった。
ブログは見始めたらきりがないからと、なるべく見ないようにしていたんだけど、「八咫烏」関連で見たブログが結構面白くて、あれこれ辿って見るようになった次第。
時々見かけるのがプログラム関連の話。
学生やら専門家やら、趣味でコードを書いてる人やら、様々な角度からの切り口や内容が面白い。
これ知らんわ、へ~未だ使われてるんだこれ、なにこれ?意味わからんなあ、この分野は知らんし~、等々ぶつぶつ言いながら見ている。そう、読んでいるのではなく見ている。
そんな中、あまりよろしくないコードをこう変えたら見やすくなるしスマートよ、と解説してあるものがあった。
わかるコードだったので、どれどれと見てみた。
ネストが深すぎるCASE文、ぱっと見にはわけのわからないコメント、ひとつの文の中に分岐先が幾つもあって混乱を招きそうな記述、等々。確かにねえと思った。
でも、ひとつふたつ引っかかることがあった。
ひとつはコメントに関しての記述。
多すぎるコメントは減らした方がいい、無くても済む場合もある。
確かに、冗長なコメントはうざい。分かりにくいコメントもできれば御免蒙りたい。
でもね、と思う自分が別にいる。
一時期、誰かが作って置いていったソフトを保守したり改良したりする立場にいた経験からすると、コメントってある意味ないと困るんだけどなあ。
仕様書がきちんとしていればコメントなしでもなんとかなる。
でもね、仕様書が有る様な無いような、あっさり作って使ってたら重宝されて、機能追加や不具合修正やらってことになったソフトって、コメントが重要。
どんなに分かりにくくてもほんの一言のコメントで問題解決ってよくあったもの。
全くコメントの無いコードの不具合を修正するのに、数人がかりで丸々一週間費やしたこともある。大して難しいコードではないし、分岐条件も明確(だと思われた)なのにどうしても起きる現象の説明がつかない。毎日眺めていていい加減疲れた頃、夢にまで出てくるようになった、そんなある日、夢の中でコードの一行がきらっと光った。簡単な分岐。次の日、その行を再度見直したら、思いがけない条件が絡んでいた。
これだって、条件に関するコメントがあればすぐ解決したはず。
ふたつ目はスマートなコード。
確かに、見た目スマートなコードはいいなあと思う事がある。
でもねえ、メモリが高かったころならいざ知らず、ナノだのテラだの、平気で使える今現在、スマートよりわかりやすさ優先の方が良いのでは。
極端に冗長なコードはいらなけど。
自分がそのソフトをそのまま最後まで見届けるのなら構わない。
他の人が見てわからなくても、どんな高度なロジックを使おうが、機能追加も不具合修正もお茶の子さいさいだろう。
でもねえ、後の人に託すのであれば、わかりやすさを優先した方が良いと思う。
皆が皆、同じレベルの人間ではない。一を聞いて十を知る人もいれば、ひとつづつ順に積み上げないとできない人もいる。
そんなのわかっているよと言われるかもしれない。
でも、同じ書き方をしてるつもりでも微妙に違って、他の人には理解しがたいものになってることもある。
なーんて、忘れていたことを思い出して、つい書いてしまった。
多分、大きなお世話、と思う人の方が多いのかも。
それにしても、知らない単語が一杯あって、如何に離れて長いのかを痛感。
基本的なことは変わってないようだけどねえ。