ヘッダコメントはかくして省かれる

わが事

最近おいらがメソッドとかクラスのコメントを全く書かない事はない。
正確には記述がない形で放置される事がない。
なぜか?
コピペツールバンザイだからである。
メソッドのスケルトンをコピペで定義する。
1から書かなくていいから最低限は存在することになる。


消すよりも、
メソッドをどんなに早くタイピングしようと、
特定のツールウィンドウ探して1クリックして張り付けるほうが早い。
そして記述内容にブレがない。起こるわけがない。

対象のこと

そんな今。
ペアプログラミングの最中、そいつが作っている様をみながらしみじみ思った。


(,,゚Д゚)<タイピングが早いやつほどコメントがねぇ。


これはある種必然なのだろうかという視点が生まれた。
IDEの入力補完機能とか使いたおせばさして苦もなく定義していける。
一般人よりプログラマ初心者よりはるかに高速にプログラムをくみ上げていけてるのだが、
それゆえに陥ることがそこにあった。


・メソッドのヘッダコメントが打たれにくい。
・インデントが増えていく。


早く組めると自負するがゆえに、新たなメソッドを定義する際の手数を省こうとするのだ。
「そこに書けば済むのにどうしてわざわざメソッド分けしなきゃいけないの?」
よく聞く話がそこにでる。
凝集度と結合度の話をよく理解してから再度語り合いたいものである。
もひとつよく聞く話は
「コメントは後でイイジャン」
緑のコメントの少ない砂漠のようなソースを見ながら、
その「後で」がいつになっても訪れない現実を思い知らせたいものでもある。


現実問題、重要なポイントがココにあって、
納期に追われて目先のスケジュールを突きつけられてって状況にあればあるほど、
プログラミング技術が上がっているやつらほどこれに陥るのである。


コードの内容が理解できるから。
仕様の概要を理解してるから。
それゆえに「ここはこれでいい」っと結合度を上げたソースを作り、
「あそこで作ったから」といって生のコードをコピり、
それでもその全部を覚えれていられるから急げば急ぐほどコメントが無くなっていく。


出来上がったものはそれはそれは砂漠のようなソースであり、
変数だかメソッドだかクラスなんだがよくわからん名前の氾濫であり、
巨大な巨大な行数を誇るソースファイルである。

経験を語る

おいら自身もその道は通ってきた。
コードを早く書けることは自信であったし自尊心であったし、
メソッドを作りまくることは無駄に思えたしアホだと思っていたし、
動くプログラムがなんでいけないかと信じていた時期はあった。


今から思えばいろいろつっこみ所はあるしあれやこれやと言えるけれど、
ひとつ当事の自分にも通じる言葉がある。
コードを洗練する作業を怠っても作業速度が向上する事はない。
端的に言うと
(,,゚Д゚)<お前の手法は遅ぇんだ。


手は早いが仕事は遅い。
そーゆーことである。

処方箋

コードの作り方を根底から変えてみる必要がある。
コードの内容を次の分類のみで構成できればポリモルフィズムもコードで実現できるでしょう。
<クラス編>
 (1)1つに付き1種類しか役割を持たないクラス
 (2) (1)をいくつかまとめているだけのクラス

<メソッド編>
 (1)1つに付き1種類しか役割を持たないメソッド
 (2) (1)をいくつか呼び出すだけのメソッド


言うは易し、行なうは難し。
でも出来てしまえばこんなに楽なことはないもので。
責任と役割が明確になるからデバッグしやすいしやすい。
頭悩まして作ったコードを頭悩ませてデバッグする必要なんてどこにもないのです。