はじめに
この記事は完全にポエムです。
無知、願望、羨望といったものを煮詰めたような記事になることかと思います。
そもそも、他人にコードを見てもらう事がほぼないので綺麗というのも完全に偏見。
導入
自力でコーディングするようになってから恐らく15年くらい経ちますが、その大半を独学の上に他者との繋がりなく書いてきたものですから、しばしば(本当にこんな書き方で良いのかなあ)と思っている日々です。
ほぼプログラミング始めたての頃、院生の時代は先生もいましたので「こう書くべし」と言われましたが、思い返すと「べからず集」的なアプローチが多く、実際、今調べてもそういう記事が多いような気がしています。
誰もが聞いた事あると思いますが、『分かりやすい変数名を使う』『同じ処理は使いまわす』『適切なスコープで変数を利用する』『関数の深さ・長さに気を付ける』みたいな。
『べからず』と言うには肯定文が多い? 肯定的に書いているだけで言い換えれば『分かりにくい変数名を使うな』『何度も同じ処理を書くな』『無駄に変数の生存期間を延ばすな』ですからね。
問題点
こういう指摘は確かに重要な示唆だと思っているのですが、如何せん「そりゃそう書けるならそうしたいよ。」で止まってしまう指摘なんですよね。
ケースバイケースで変わる状況に対してピタリ絶対に当てはまる抽象的なアドバイスでしかなく、実践的な考え方の足掛かりになるよりも、手を止めてしまう要因になっている気がします。
実際、この手のアドバイスをもらいながら(書く総量が少ない事もあって)10年弱はほとんどこれを実践できないままだったような気がします。
さて。
今でも上手く書けていると胸を張れるわけではないですが、とはいえ昔書いたコードに比べたら絶対に今の方が読んだり修正したりしやすい作りをしているな、と思っているのです。
どうすべきか
何はともあれ、定量的に評価しやすい項目から優先して実践してみるのが良いのかなと感じています。
さっきの例で言えば、完全に逆順で実践するべきです。
『関数の深さ・長さに気を付ける』 > 『適切なスコープで変数を利用する』 > 『同じ処理は使いまわす』 > 『分かりやすい変数名を使う』
関数が長いまま適切な名前について悩むだけ時間の無駄だと気づきました。
でも、綺麗なコードについて調べると名前関係の話が先に出てくること多い気がします。
長い関数の中で美しい名前を付ける事が困難であるという本質情報はあまり注目されていないのでしょうか?
関数を短くしていくと
関数を短くする事自体は、無理くりにでもブツ切りにすれば実現できますね。ただ、無理くりでは再利用性が果てしなく悪い関数になってしまいます。
その辺に至ると、スコープの範囲や使いまわしやすい粒度というのを考えられる段階になっていた気がします。
関数を短くする流儀は重要だと思いながらも、色々な流儀がありそうだなという恐れ多さと、自身の流儀が正当かの自信もないので深追いはしないでおきます。
結局
名前を気楽に変えられないのは名前を思いつくセンスがないんじゃなく、まともに名前を付けられる環境にねーんだなって。
眠いから終わり。