うん、インターフェースの説明がなかったら、いくら読みやすいコードを書いてもしょうがない。
202 :
仕様書無しさん:02/01/19 03:06
今まで、いろんなスレでネタだと思って本気にしなかったコメント
// 天に祈る
ってのを今日初めて見た。
あるところには、あるんだ・・・
203 :
仕様書無しさん:02/01/19 03:07
>>200俺はどうみても上だな。
// 進捗データを保存する
は場合によってつけるかな。
どうでもいいけど、間違ったままのコードのコピペ晒しは勘弁して(泣
205 :
仕様書無しさん:02/01/19 03:10
>>201そういうのは、ドキュメント化してほしいなり。無理だけど。
>>205doxygen 使おう、っつーのは無し?
最近 doxygen で作ったドキュメントを HTML Help Compiler に通して HTML Help にして
参照してるんだけど、検索もできるしクラス図もそこそこきれいに出るから、割と便利だよ。
>>203> 俺はどうみても上だな。
漏れが想定していたのは、
自分が書いたコードではないが、どうもここらへんで
バグってるらしいので処理をおっかけてる。このソースを
見るのは初めて。
という状況なんですが、それでも上の方が見やすいですか?
もしそうだとすると、英語 (英単語) に馴染んでいるか
どうかの違いかなぁ。
関数のヘッダコメントに機能概要を書いてコーディング。
その後、仕様変更で機能が変わったが、コメントの修正を忘れる。
ああ、またやっちゃった。ごめん、K君。
>>207どの関数が怪しいか絞り込むまではコメントを参照するのは良いけど、関数が絞れたら頭を
「コメント信用しないモード」に切り替えないと、バグを見逃さない?
まっとうなコードなら、大半の関数は長くて数十行だろうから、集中して一気に読める量だし。
>もしそうだとすると、英語 (英単語) に馴染んでいるか
>どうかの違いかなぁ。
それはあると思う。俺は業務系PGだけど、isOnCreditSide とか lngDebitBalance
なんて変数名が出てくるたびに辞書引いてた。
何でわざわざそんなことをしてたかというと、海外の取引先との関係から。
そういうコードを大量にメンテしなければならない環境だからこそ身についたのかも。
211 :
仕様書無しさん:02/01/19 03:32
この前、日本人が書いた全て英語のコメントのソース見た。
日本人なら日本語書けよなと。
特に外人のスタッフがいるわけでもないんだが、宗教上の理由かな。
212 :
仕様書無しさん:02/01/19 03:34
>>211コンパイラが日本語NGだったとか。おじさんの若いころはなあ・・・(泣
>>212そういう場合には、プリコンパラを自分で書くんだよ。
と、ソフトウェア作法あたりをネタに先輩に突っ込まれなかった?
214 :
仕様書無しさん:02/01/19 03:37
>>213そのプリコンパイラは何でコンパイルするんだよぅ(泣
215 :
コメンテーター:02/01/19 03:39
#include <stdio.h> // さあいよいよ始まりましたね。
void // 実況はモモナイ、解説はサキサカさんです。
main(void) // よろしくおねがいします。
{ // はいはい、どうも。
int x, y; // おっと?これはなんでしょうか?サキサカさん。
// ん〜、わかりませんねえ???
fpw=fopen("input.txt", "w"); //おっとここでファイルを開く、
// !しかし!ハンドルを宣言していないぞ!!!
// ん〜、これはコンパイルで落ちますよ。
fprintf(fpw, "逝ってよし!\n"); // このぶんだと、どうやら逝くのは本人が先ですね。
// そそっかしいね、このひとは。
fclose(fpw); // あれ、もうおわり?なにがしたいんでしょうね?
return 0; // あそんでるだけかもしれませんね。
// おっとここで終了です。
} // 解説はサキサカ、実況はモモナイでした。
// どうもお疲れ様でした。
// はいはい、どうも。
>>214ネタ?
日本語コメントを捨てるだけのフィルタをひとつ書いて、コンパイラの前にフィルタを通せって
話だけど。
217 :
仕様書無しさん:02/01/19 03:40
218 :
仕様書無しさん:02/01/19 03:46
dzsemKenyerRiszflj
ハンガリー記法ならぬハンガリー語の変数名ってどうよ。
219 :
コメントが:02/01/19 03:49
>>215各方面からコメントが寄せられています。
これはソフトウェア開発の新次元だ。 Dennis Richie
これほど人を癒すコメントは見た事がない。脱帽だ。 Stallman
これほど意味不明のコメントは見た事が無い。脱力だ。 Bill Gate
驚きだ。こんなおしゃれなソフトウェア開発手法があったとは。 奥村晴彦
おっとどっこい。あっと驚くタメゴロ〜ウ! ハナ肇
220 :
仕様書無しさん:02/01/19 06:34
221 :
仕様書無しさん:02/01/19 10:42
>>209ありますね。コメントに惑わされて見逃してしまう。
できそこないの仕様書みてるときも似たようなことありますね。
入力が明確化してないときにキーボード入力するもんだと思いこんでて、
実は「入力データをまとめたファイルがあります」とかって。
僕は逆にコメントに惑わされるっていうほうがどうかと思う。
コメントなくても大丈夫って方は、最初から仕様書を熟読して
それからソースを読み始めるわけですか?
納品して半年後に人のソースを読む、なんてこともありますしね。
とりあえずコメントが入っていて「こいつこんなことがしたいわけね」
ってのが分かるだけでも工数の節約になるし早くおうちに帰れると思います。
>>217今、この技術立国日本に一番必要なのはものは、お笑いである。
コメントのカタカナを全角で書くやつはうざい。
またおかしなきごうを書くやつもうざい。AAとか。
> コメントのカタカナを全角で書くやつはうざい。
!?
227 :
仕様書無しさん:02/01/19 12:06
コメントに騙されて、ソースを読む時間が大幅にかかる
ってことは良くあります。
229 :
仕様書無しさん:02/01/19 12:14
>>200 この例だと、全ては日本語を識別子に使えないコンパイラの
問題のような気がします。
int 進捗データの保存()
{
int 保存済フラグ = false;
if (!保存済フラグ) {
}
return 保存した進捗データ数;
}
なら、どう?
>>229コンパイラを日本語を通せるように直すより、
俺が、英語を覚える方が話が早い。
231 :
仕様書無しさん:02/01/19 12:44
整数 進捗データの保存「」
『
整数 保存済フラグ = 偽。
もし 「否 保存済フラグ」 『
返 0。
』
返 保存した進捗データ数。
』
かなり読みにくいな....
232 :
コメンテーター2:02/01/19 13:01
#include <stdio.h> // さあコーディングも第二回戦に入りました。
int main(void) // 実況は私モモナイ、解説はお馴染みサキサカさんです。
// サキサカさん、よろしくお願いします。
{ // はいはい、どうも。
int x, y, z; // さあ、まずは変数の宣言ですね。
// あのね、変数には全部コメント付けなきゃダメだよ。
// はぁ、でも私たちがココにいたら書けませんよね?
// そうかもしれん。
fpw = fopen("input.txt", "w");// おっとファイルをひらく、
// しかし、またしてもハンドル宣言を忘れてますね。
// こりゃクセだね、この人の。
// さあ、ここでループの構えをみせています。
for(l=0;l++;l<100){ // なにするんだろね。ループ処理ってセンス表れるよ。
} // ・・・やめるんかい!
// ん〜、あとで書くんですかね?
x = secret(y, z); // なにか呼んでますね。
// なんだろね?関数名は分かりやすくなきゃダメよ。
// ところでサキサカさん、このスレにはコメント中の
// 文字コードにこだわる人もいますね。
// どーでもいいのよ、そんなこと〜♪
// あ、おまけに記号までつけて、
>>224 が怒りますよ。
// ここにモナー君呼んできた日にゃどーなるんだろね(笑)
// といってる間に、コールがおわりましたね。
fprintf(fpw,"逝ってよし!\n"); // 相変わらずガラ悪いですね。
// やっぱコードにも品位がほしいね。
fclose(fpw); // なんかもう終わりって雰囲気ですね。
// 毎回しょぼいコードかいて、クラスぐらい使ってみなよ。
return 0; // 作者が大変なんでしょ。
} // そうかもしれん。
// というわけで放送終了です。サキサカさんありがとうございました。
// はいはい、どうも。ヒンシュク買わないうちに退散しよう。
233 :
仕様書無しさん:02/01/19 13:01
SPなんかだと日本語処理が不安定だと困る。
SOUCE も DB に登録しておきたいのに。
235 :
仕様書無しさん:02/01/19 13:07
>>232>for(l=0;l++;l<100){
無限ループ・・・。
と思ったら一回も実行されないループだね。
スマソ、逝ってくる・・・。
l++が0になったら終わる
Σ(゜д゜lll)ガーン
239 :
仕様書無しさん:02/01/19 13:14
>>235サキサカさん、やっちゃいましたね。
そうねえ。クセだねこれ。ごめんね〜。
1文字変数を見ると泣ける
243 :
仕様書無しさん:02/01/19 14:02
>232 ワラタw
>>232なんか、コード読むのが楽しくなった!
幸せをありがとう
246 :
仕様書無しさん:02/01/19 16:16
コメント無し。これ最強。
>>215>>232仕事中なのに不覚にもワラタ。
自分のソースを見直していても頭の中で
モモナイとサキサカさんが実況してるよ。
何とかしてくれ・・・。
第三回戦も楽しみにしてるYO!
248 :
仕様書無しさん:02/01/19 17:06
FORTRAN 77 は構造体がないため引数がやたらと多く、
変数・関数名が(正式には)6文字以下なので、
コメントがないと訳が分からなくなる...。
もう嫌だ、こんな言語...。
モモナイとサキサカたんはかなりいいから、
みんなで糞コードをひっぱり出すか、自分で書いて
実況してみようYO!
250 :
HOTDOG:02/01/19 19:21
250GET
251 :
仕様書無しさん:02/01/19 19:21
# 2001-01-01 Ore, Omaemona-.
漏れはとりあえず仕上げた後に、暇を見つけて
書く事にしている…。
そうことにしといて(w。
253 :
仕様書無しさん:02/01/19 20:07
この前見た奴は、仕様書とソースのコメントの両方で
全てのカタカナが半角カナだった。
>>253それは仕様だよ。
一部ではデフォルトらしい。
255 :
仕様書無しさん:02/01/19 20:22
漏れは詳細設計してからコーディングするから
コメントは書かなくてもすでにある
詳細設計の日本語コードをコピペするだけだから。
256 :
仕様書無しさん:02/01/19 20:31
>>254古いラインプリンタを使ってる所なんかはそうだね。
規則には明記されてないけど全角を印刷できないから掟になってる。
エ、ソレガ フツウノ トコロモ アルンダ・・・
モレテキニハ ヨミニクイカラ ヤメテホシカッタケド。
258 :
仕様書無しさん:02/01/19 21:33
>>213日本語が使えないで、英数字と記号しか使えないコンピュータを
使ってたころがあるなんて想像もできないんだろうな〜。
おぢさんが若いころなんて、日本語の入出力なんて、夢また夢。
入力はパンチカードに穴をあけ、リーダーでよませるんだ。
印刷はみんな活字式。
パンチカードでなければ、紙ひも。
これも穴をあけて、テレタイプに読ませる。
そのテレタイプの印刷はタイプライタと同じ活字式で、
直径数センチのドラムに活字が彫ってあるんだ。
これをバチンバチンと連続用紙に打って印刷していく。
「謎の円盤UFO」を見たことがあるか?あのオープニングをみてもらうとわかるが。
259 :
仕様書無しさん:02/01/19 21:37
コメントヲ,スベテハンカクカタカナデカカナイトキガスマナイオヤジモイタリスル.
クサカベハ ヨメナイ
261 :
仕様書無しさん:02/01/19 21:39
フルイBASICノカイセツショナンカモ、コメントハンカクカタカナ。
262 :
コメンテーター3:02/01/19 22:16
// さあ第3ラウンドの始まりです。
// 実況は私モモナイ、解説はサキサカさんです。
// サキサカさんよろしくお願いします。
// はいはい、どうも。
#include <iostream.h>
#include <stdio.h>
// あ、ところで今コードを書いてる彼のことを紹介しておきます。
// 彼はジローといいまして、30台半ばの仕事にあぶれた
// ハードウェアエンジニアです。
// ハードの腕前はともかく、ソフトのほうはダメダメですね。
// そうだね、完全にヘタレだね。
#define TEXT_BUF_SIZE 80 // Text buffer size
#define MAX_PROC_LINE 500 // process line limitation
// ↑ヘタレにしては気がきいとる。
// なんですか?それは?
// 万一入力が人智を超えて巨大でもリミットがかかる。
#define AGE TRUE // そういうラベルを使うんじゃない!
#define SAGE FALSE // アバンギャルドですねぇ。
#define ABON NULL
void main(void)
// さあいよいよmain関数です。
// 今回彼はテキストファイルをコピーするツールに挑戦しています。
// ほほう。
{
char TextBuf[TEXT_BUF_SIZE]; // text string buffer
FILE *OutputFile; // output file handle
FILE *InputFile; // input file handle
int LineCount; // for count number of copied lines
int x, y, z; // for debug use
// 前回サキサカさんが言ってたのはこういう事ですか?
// そうそう、好みの問題だし、つまらん事だけどね。
// 全部縦に並べてコメントを漏れなく振る。挿入、削除も楽。
// 全部書いとけば、時間が経ってから再着手したとき、
// 記憶を取り戻すまでの時間が短い。
// 最後のやつはどうなんでしょう?
// あれはデバック用だから例外
// if (argc != 3) { // なんかコマンドライン入力をやろうとして
// cout << "usage: ... "; // 断念しましたね。
// goto terminate; // やり方わすれちゃったんだな。
// }
// for(ie = 0; i < 13; i++) {
// s strlen ( argv[ 1])
// } ... Uwaaaaan!! // 錯乱した様子も認められますね。
// ソフト開発はクールでないといかんぞ。
// さあ、これから入出力ファイルを開きます。
。。。つづく。。。
263 :
コメンテーター3:02/01/19 22:17
コメンテーター3.。。つづき。。。
InputFile = fopen("input.txt", "r"); // try to open input file
if (InputFile == ABON) { // ... if not exist ...
cout << "Error: Input file does not exist.\n"; // ... then terminate.
return; // 一応エラーメッセージもつけてますね。
} // あるとなんとなくカッコよく感じるんだな、これが。
OutputFile = fopen("output.txt", "w"); // open output file
// ちなみにジローは最近、BC++のフリー版を手に入れたようです。
// 奴はビンボーだからな。
// 一応VC++も持ってるそうですが、メンドクサイて言ってますよ。
LineCount = 0; // 処理行数のカウントもするんですね。
// これもあるとなんかカッコよく感じるんだな。
// ここからいよいよデータのコピーが始まります。
while ( 0 == feof(InputFile)){ // loop until end of input file
if( fgets(TextBuf, TEXT_BUF_SIZE, InputFile) == NULL) {
goto Termination;
// ラベルのスペル間違えてますね。
// 品詞を統一してルール化しないと混乱するぞ。
// 動詞形か名詞形か、とか。
// 慌てるな落ち着くのだジロー。
// モナーが出てきてオマエモナーとか言われますよ。
// モナー君はそんなこと言わない。
// モナー君とか言ってますけど、知り合いなんですか?
// 彼はね、赤羽北のモナー商事に勤めてんだけど、
// 彼のことは昔からよく知ってるんだ。
// え!ほんとに?
// でも彼は僕のこと知らないんだけどね。
// なんじゃそりゃ。
264 :
コメンテーター3:02/01/19 22:17
fputs(TextBuf, OutputFile); // write string to outoput file
// お!書いてる書いてる。
// 書いてますね。
LineCount++;
if(LineCount > MAX_PROC_LINE){ // detect max line limitation
cout << "Max line limitation! Can not handle over "
<< MAX_PROC_LINE
<< " lines.\n";
// なんでcoutのストリームを3行に分けてるんですかね?
// このほうが見やすいんだと。楽なんだと、良いんだと・・・
// 問い詰めないで下さいよ!
goto Terminate; // これは最大処理行を超えた場合の強制終了ですね?
} // ほとんど使うことはないだろうがね。あったほうがよい。
}
// とうとうここまできましたね。
Terminate: // 長旅を終えて約束の地へ、という感じかな?
cout << LineCount << " lines precessed\n"
<< "あいがっといっと!¥n"; // 改行が全角ですけど?
// バカメと言ってやれ。
// それになんちゅーヘタレなメッセージだ!
fclose(OutputFile);
fclose(InputFile);
return; // どうやら無事終了ですね。
// うむ。よくわからんが、とりあえず1バイトコードの
// テキストファイルならうまく転送できるだろう。
}
// というわけでこれでお別れです。皆さんさようなら。
// 実況はモモナイ、解説はサキサカさんでした。ありがとうございました。
// はいはい、どうも。
265 :
仕様書無しさん:02/01/19 22:38
サイコー!
266 :
仕様書無しさん:02/01/19 22:40
>>262無理にIOストリーム使う必要もないと思うんだが・・・
>>267IOストリームを使うと、
%なんとかかんとかを覚えなくていいし、
シフトキーをいっぱい押さなくていいし、
そのことにより体力の消耗もすくなく、
おかげで最近すっかり健康でスカッとしている
と、ジローは申しておりました。
俺様モモナイさんに惚れてしまいそうです
あっ、ジローか
モモナイもジローも
つまらない男だぞ。
いいやつだけどな。
271 :
仕様書無しさん:02/01/19 23:48
しかし、こんなヘタレコードは久しぶりに見た。
おれのふつーのが神に見えてくる・・・
メソッドを作るときに1行書いておくのが基本だけど
分かりきったものにはコメント不要(関数名や変数名が語っている)
逆に多少トリッキーだと思ったところはきちんとコメントを入れておく
サキサカさん、なんか3回目の放送はあまり面白くありませんでしたね。
そうだね。あれはヘタレなコードだが一応動くプログラムだから。
ちゃんと動かないコードでないと面白くならないね。
どうもオソマツ様でした。
>>273いやいや、けっこうおもしろかたヨ
これからも奇跡的に動くモノを希望
275 :
仕様書無しさん:02/01/20 13:32
>>248FORTRANはよく知らないけど、
FORTRAN77ってポインタは使えないの?
//もうだめぽ
277 :
仕様書無しさん:02/01/20 19:02
こめんてーたさんまだかな〜
スレ違いだなスマソ。逝ってくる。
279 :
ウンコチンコマンコ:02/01/20 22:45
280 :
仕様書無しさん:02/01/21 04:19
サキサカさん、俺的スマッシュヒット。
でも、実際にこんなコメント書いてるの見つかったら
殺されるな・・・
281 :
コメンテーター4:02/01/21 04:54
#include <stdio.h> // 彼がなにかコーディングをはじめたようですので緊急中継致します。
#include <mylib.h> // 実況はモモナイ、解説はサキサカさんです。よろしくお願いします。
// はいはい、どうも。
void main(void) // あ、それから今回はリポーターのヤブナカさんに
// 関数内部からリポートをしてもらいます。ヤブナカさんよろしくおねがいします。
// は〜い、どうも。
{
int x, y, z: // まずは変数の宣言ですが、今回からシンプルに書くって言ってますよ。
// うむ。余計なものはいらん。ネタの基本に立ち返るのだ。
while (x<100){ // おっと?、ここでループの構えだ。
// つづいて、いきなり関数呼が呼ばれます、が・・・
hoge(x, y) // あれ?このライブラリはまだデバッグが・・・
// うん、これ呼んだら帰ってこれないかもよ。
// 現場のヤブナカさ〜ん、関数内部のリポートお願いします。
// ##############################################
int hoge(int x, int y) // はい!現場からヤブナカがお伝えします!
{ // さぁー全国1000万人のプログラミングファンのみなさん!、
// 今から数分後にはこの関数、ホゲと発音するんでしょうか?、
// このホゲが!、まさしく!、コンパイルを経て!、呼び出されようとしております!
// さあ、それでは内部の様子を詳しくお伝えいたしましょう。
do { // さあここでループに入った!
// ぐるぐる回る高速サーキット!、夢のメリーゴーランド!
// ヤブナカさん、わけわかりませんよ。
// どうもスマソ!
// やめてください、それは放送禁止用語です。
printf(" ∧_∧ 逝ってよし!\n"); // ご覧頂けますでしょうか?
printf("( ´∀` ) \n"); // どうやらモナーをN回描画する様です。
} while(1) { // おーーっと!? どうやらココに欠陥があるようです!
// 無限ループにして、かつ脱出コードがない!
// 平和なプログラムが!ある日突然に! 地獄への片道切符と化してしまったぁー!
}
// さあ!どうするんだジロー! このままではオマエのPCは永久にモナーで埋まってしまうぞ!
// というわけで関数内部の現場からヤブナカがお伝えしました。
// #############################################
}
// いやあ怖いですねえ。
// ありゃぜんぜん未完成だね。引数もつかってないし。
return; // というわけでこの辺で終了です。
} // あまり長いと1レスに入りきれないからな。
// サキサカさん、どうもありがとうございました。
// はいはい、どうも。
282 :
仕様書無しさん:02/01/21 05:23
(・∀・)イイ!!
283 :
仕様書無しさん:02/01/21 13:08
新しい専用のスレたてたほうが(・∀・)イイかも
XPで仕様書つくんなくなったらコメント増えた。
はっきりいってソースの倍あるぞ。。
∧_∧ +-----------------------+
(´∀`)< それって単なる無駄じゃん |
+-----------------------+
>>284うちはXPでコメント減った。つーかXPはそもそもコメント削減奨励(コード自体に語らせろ)だし。
しかしコードの記述量は増えた。その上さらに実コードに匹敵する規模のテストの数々(これこそが仕様書に代わるもの)。
>>285コメントと言うか、コーディング規約でメソッド、クラスヘッダが
めちゃめちゃ冗長になった。はっきりいってむだくさ。
CppUnitとかJunitとかあんまり使えない環境なんだよな〜。
画面出力がメインなシステムだから。。
if(ErrorType == FATAL) exit(1); // もうだめぽ
} while (l < 10000)
// 刑期満了、シャバに出る。
#define BUF_SIZE 100000000000000000000000 // 大は小を兼ねる。
290 :
だめだ、コードに意味がねえ...:02/01/22 01:28
#undef SONNNAKOTO // そんなことより
#include <1> // 聞いてくれ、
>>1 よ。
// スレとあんま関係ないけどさ。
void kinjo::yoshinoya(yoshinoya) // こないだ近所の吉野家行ったんです、吉野屋。
{
if (iSeated > CAPACITY) { // そしたらなんか人がいっぱいで入れないんです。
board ad = LookAround(); // よく見たら何か垂れ下がってて
price -= 150; // 百五十円引き、とか書いてあるんです。
count << "Aho"; // もうね、アホかと。
count << "Baka\n"; // バカかと。
omaera.Forbid(doesComeOften(yoshinoya), price);
// おまえらな、百五十円引きごときで普段来てない吉野家に来てんじゃねーよ。
false; // ボケが。
#define DISCOUNT 150 // 百五十円だよ。
#define DISCOUNT 150 // 百五十円。 [コンパイラがここで怒るんだよなぁ〜]
int persons;
if ((persons = isThere(Family(Parent, Children)) > 0) {
// なんか親子連れとかもいるし。
ASSERT(persons == 4); // 一家四人で吉野家か。
bHappy = true; // おめでてーな。
Parent.papa->say("Tokumori!"); // よぉ〜しパパと曇り頼んじゃうぞ〜とか言ってるの。
DisableAction(LookAround); // もう見てられない。
}
false; // ボケが。
Give(DISCOUNT, Family), Family->MakeSeat(forMe);
// おまえらな、百五十円やるからその席あけろと。
}
//***** もうかけません。ごめんなさい ****//
}
みなさんヒマですねぇ
292 :
仕様書無しさん:02/01/22 01:35
あ、291への誤爆
しかも自爆ってる。鬱
オレもコメントに全角カナ使う奴はうざい。
半角カナが通らない処理系ならいざ知らず、ただ単に昔のしがらみから
抜け出せない頭の固い馬鹿が、かたくなに全角カナで書いてるとうざい。
出口の無い再帰はご法度ですぅ
>>292 Haskell使いなら許してあげますぅ
int dango[3]; // だんご3兄弟
んじゃHaskell勉強します(w
なんかおもしろそうだ・・・ドキュメント読む限りでは
そこの関数->良きにはからえ(適当にな) // コードに語らせるとはこういう事よ
すでに半角カナ見るだけで気色悪いんだけど、俺が悪いの?
2バイトコードの前に半角かな出てくると、エディタが文字コードの自動認識に失敗しない?
常にWindowsでSJISだけで仕事してる人はそれでもいいんだろうけどさ
300 :
仕様書無しさん:02/01/22 03:31
zuza=get(300); // 300ゲット、ズザー