コードの意味、意図を読み取る

シンタックスハイライトは、コードに対して文法に応じた色づけをしてくれる点で画期的な発明なのだけど、残念ながらコードの“意味”や、”意図”までは表示してくれない。

ロジックの順序や、スコープの切り方で意味や意図を見いだしやすくすることはできるし、コメントや変数名、メソッド名に直接的にそれを込めることは、できる。

だけど、最終的には意図を見いだすのは人間側だし、その時点で読み取りたい内容は異なってくる。

例えば、人事システムで過去にM&Aなどで社員に移行登録された人を示す特別なフラグが有り、評価や昇給などの判定のために度々そのフラグが使われたとする。M&A直後は該当する社員も多く、そのロジックを通る割合が一定のマジョリティを占めていた…が、月日も経ち、それに該当する社員がほぼいなくなった時、コードの保守性という観点では、このフラグの存在、対応する数々のコードがノイズになってしまう可能性が出てくる、とか。

コンピュータは正直だ。書かれたコードの通りにしか動かない。例外的な対応や、一時的に必要だったコードも、全て等しく「コード」だ。だけど、そこにどう意味を見いだすかは、そのコンテキストによって全然変わってくる。

”どのコードが重要か?”は、極めて主観的で、かつ動的なものであり、客観的に、静的には確定できない。

また、時に非常にトリッキーなコードが、とても短いコードで実にさまざまなパターンに”対応できてしまっている”時が有り、このような時に、”できること”のバリエーションが分からなくなってしまうことも有る。

ざっとコードの流れを知りたいのか、王道ルートのパターンを知りたいのか、特定の条件での処理の詳細を知りたいのか…それら全てに等しく答えられる万能の解は今の段階では無いので、僕らはせいぜい今日もコメントにコードの意図や、表層的には読み取れないパターンなどを補足を書いていくのだけど、いつの日かこれが解決してくれる方法がアッという方向からやってくるのかもしれない。


この記事が気に入ったらサポートをしてみませんか?