ポエム

それはたいてい説明じゃなくて返答であるべきということ

More than 1 year has passed since last update.

▼ はじめに

よくわからない何者かから、コーディングのようなことをする初心者になれたような気がしてきた昨今。自分がした何らかについて、説明らしきものを書き記さなければならない機会が、こんなにも多いのかとしばしば感じていた。そして同時に、億劫に思っていた。なぜならば、いまいちそれをうまく書き記すことができなかったからだ。

▼ 考えを抱く気になったきっかけ

働く場所が少し変わり、PHPでなにかを実現しているのが自分だけになったとき。バージョン管理システムを使うのも自分だけになったのを機に、思い切ってgitを使い始めてみた。以前の場所ではsubversionが標準で、また適当なバージョン管理を行っていたのもあって、いまでもそのギャップを持て余している。で、そのギャップの中で大きかったものの1つとして、コミットメッセージを挙げることができる。

以前は、時系列でしかコミットメッセージを確認していなかった。subversionがそういうものなのか、いやおそらく使い方が悪かったのだろうけれど、とにかくしていなかった。で、gitを使うようになると、ファイルないしディレクトリ単位でコミットメッセージを確認することを半ば強制される……ように僕は思った。ブラウザでプロジェクトのページを開くと、まずドキュメントルート以下のコミットメッセージが真っ先に目につく。それはコミットメッセージをこれまでのように、刹那的にやり過ごすような扱いにするのを、否が応でも考え直させた。

で、そうなるとコミットメッセージの書き方で悩むことになった。Gitのコミットメッセージの書き方 などといった、先人の知恵を拝読して一歩進んだように思えた。だけれど、しばらくのあいだ、なんとも手応えのない、よくわからないものを書き散らしているような気持ちをずっと抱いていた。

▼ 考えを推し進める気になったきっかけ

あるとき上司が先輩に『その作業は何時間くらい掛かるの?』などと尋ねたときがあった。先輩が『この作業はAをしなければならない、Bをしなければならない』などと話している途中で、上司は『僕がまず知りたいのは何時間くらい掛かるかだけだ』と遮り、先輩はしばし沈黙した上で具体的な時間を述べた。そうしているとき僕は、何か質問をされたら、まずどんぴしゃな返答した上で、詳細を話そうなどと考えていた。で、次に上司は僕に、ほとんど同じような質問を投げた。心構えしていたのにも関わらず、僕はどんぴしゃな返答ができずに、結局先輩と同じような話し方をしていた。振り返って思うと、上司が投げてくるであろう質問を想定して、予め返答を用意するような殊勝な人間に、僕はなれそうもなかった。

すこし話がそれてしまった。上の経験で得たもののうち強調したいのは、どんぴしゃな返答を先送りにして、詳細を頭にすると、読み解くモチベーションが下がるということだ。転じて言うと、どんぴしゃな返答を最初にして、後に詳細を話すということは、悪くない考え方ということになる。

▼ それはたいてい説明じゃなくて返答であるべきということ

立ち戻ってコミットメッセージを読んでみると、必死に詳細を説明をしているように思えた。だけれど、まず僕がおおよそ知りたかったのは『このコミットによって、何をどうしたか(ないし何がどうなったか)』ということだけで、それはブラウザでプロジェクトのページを開いても、たいてい見切れていた。

たとえば以前は『権限を表す定数を十進数から二進数に変更し、ビット演算で条件分岐を行うようリファクタリングを行った』などとしていた。『このコミットによって【何】を【どう】したか』という質問であったら、『【権限を表す定数】を【二進数に変更】した』、『【権限に関する条件分岐】を【ビット演算に変更】した』などと返答するのが自然に思える。この場合は、コミットの粒度が荒すぎるかもしれないという問題すら自覚できていなかったのだ。ともあれ、質問に対する返答だと、引数を与えて文字列を出力するように質問のフォーマットに沿うという気になって、いくらか統一感が期待できる。

で、ドキュメンテーションコメントにも同じことが言えた。なんとなくメソッドの説明をしようとすると、アノテーションの助けを借りながらも、やはり統一感のないものを書き散らしていた。一方で、同じ質問を用意して、それに対する返答をメソッドのドキュメンテーションコメントにしようと心掛けると、ちょっとは手応えを感じるようになれた。

踏み込んで考えると、なにかを述べたり書き記すときに、逐一質問を補って、返答ないし対話としたほうがすっきりするような気がする。用意していない返答について直ぐどうにかする方法は置いておくとして、たいていは、どんぴしゃな返答を考えるだけの時間はあるはず。

▼ おわりに

こんな考え何番煎じかもしれないし、あるいはとるに足らないような考えなのかもしれないけれど、そんなことを思いました。そもそもこの文章が回りくどいという問題は、ポエムなので許してください。

おわり!