前日アップしておいた課題。ソースプログラムを見た人は気づいただろう。コメントがほとんどないことに。
俺はコーディング中にはコメントを書きたがらない。頭に浮かんでいるコードを一気に書き出してしまいたいからだと思う。そのため、レポートでソースプログラムの添付が求められる場合は、レポート作成とともに大慌てでコメントを書き足しまくる。
で、その前日の課題。実は、課題の提出前に、コメントを書き足すのに必要な時間を確保できなかったのだ。レポート本文は何とか書き上げたから、一応添え書きをしといてそのまま提出した。・・・やっぱり指摘されましたよ orz
言われなくてもコメントの必要性は十分承知している。ただ、非常に面倒臭いのだ。実際、今はその課題のソースプログラムにコメントを書き足している真っ最中なのだが、既に 3 時間ほど経過した今もまだ終わらない。これを面倒臭いと言わずに何と言うのか。
なかなか終わらない作業にイライラしてきて、つい愚痴ってみた。たまにはこんなことを書くのも良いか。
yuuk
読む人のプログラミング力があればいいんだけどな。
「誰が読んでも」は現実的に無理だと最近思う…。
y-iihoshi
プログラムの理解促進をコメントに頼らずに済むソースを書きたい。
tksk
面倒くささという点では何の解決にもなっていないんだけど、俺がやっている方法。
目の前の問題を一度抽象化して、そのアブストラクトな問題を解決するための
手筈を整えておく。つまり汎用的なライブラリを作っておく。
そうすると、main() の中で呼ぶライブラリのメソッドは
getMatrixWithInitializingValues() とか、もうソースコード自体が
ドキュメントになって幸せ。
俺がコメントを書きたくない理由はここにある。
y-iihoshi
まぁ俺も (汎用的とは言えないまでも) 似たような手法を取っていると思う。例えば、P1 課題で真っ先に手を付けたのは graph.h だし。ヘッダーファイルであることに注意w
> getMatrixWithInitializingValues()
同時に初期化する仕様なら、俺だったら CreateMatrix() と命名するなぁ。get と create の違いはここでは不明だけど(汗
ま、「そんな関数名にしておけばコメントは不要」というのは激しく同意。2 つ上のコメントで言いたかったのはコレの事。
yuuk
読めばそれがフローチャートにもなるコードはイイコードだと思う。
動詞+名詞()の関数名はいろんな人に勧めたい。
俺ならInitailizeMatrix()かな。
欲を言えば
Matrix.Create(),Matrix.Set(),Matrix.Print()...
tksk
は、しまった。。。断然 createMatrix() のがいいや。
あ、それと、コンストラクタのオーバロードができないから、
getMatrix() と getMatrixWithInitializingValue() ができたのよ。
initializeMatrix() は、俺のライブラリだと、 Matrix を
初期化するってメソッドとぶつかってるから、createMatrix() のがいいかな。
y-iihoshi
> Matrix.Create(),Matrix.Set(),Matrix.Print()...
日頃から言うように、そうしたいのはやまやまなんだがねぇ。
誰か C 以外の言語で課題を仕上げて提出するツワモノはいないかね。マヂで。
> 俺のライブラリ
その響き(・∀・)イイ!
yuuk 氏も言ってた (と思う) けど、俺も作りためておこうかなぁ。今後 楽できるのは間違いないし。