1 :
デフォルトの名無しさん :
2006/07/19(水) 21:30:02 BE:59908043-#
2 :
デフォルトの名無しさん :2006/07/19(水) 21:32:30
a
なんかやたら詳しいコメントだらけのソース。
4 :
デフォルトの名無しさん :2006/07/19(水) 22:31:40
if (a == true) { return true; } else if (a == false) { return false; }
>>4 if (a == true || a== false) return a;
としろと言うことかな。
6 :
デフォルトの名無しさん :2006/07/20(木) 01:00:15
「ヘタだなぁ」じゃなく「頭回らないなぁ」なコードならたくさん見てk値ア
他人のコードみても何やってるかわからないので、 多分、俺のコードが一番下手。 コード進行は難しい。
データ構造がダサいとき
10 :
デフォルトの名無しさん :2006/07/20(木) 12:18:15 BE:269584496-#
ソースを開いて、 #include<stdio.h> だったりすると、いやな予感がするな。
11 :
デフォルトの名無しさん :2006/07/20(木) 12:40:16
すいません。質問させてください。 C#のプログラムを今作ってるのですが、 Formも印刷したいと思ってるんです。印刷の仕方知ってるひといますか?
12 :
デフォルトの名無しさん :2006/07/20(木) 12:47:31
Alt+PrintScreenキーを押してペイントに貼り付けて印刷すればいいよ
gotoを使う人
ぱっと見て「ヘタだなぁ」と思うコード→VBで書かれたコード
16 :
デフォルトの名無しさん :2006/07/20(木) 15:06:04
>12ありがとうございます。
switch(mode) { case 0: break; case 1: break; }
memsetでヌルクリアしてるコード
>18 それは、あるねぇ。 自作関数に突入する前ならまだなんとか分かるけど、 標準関数に突入するだけなのに、memset()された日にゃぁ・・・
>19 意味不明。必要ならmemset()するだろ。むしろ、::ZeroMemory()使われる よりはマシ。
21 :
デフォルトの名無しさん :2006/07/21(金) 12:17:12 BE:199692858-#
>>18 なんか、それすると「安全になる」って固く信じてる人いるね。
そういうひとに限って、NULLと'\0'の区別がついてなかったりとか、ありがち。
memset(str, NULL, sizeof str);
bzeroでヌルクリアしてるコード
>>23 そこらへんを突っこんで質問すると、答えられない。 > 文字列ゼロクリア派
>>25 でも、memset()で0クリアは有効だって、しつこく食い下がるよ。
じゃ、どう有効だって話になると、へんにはぐらかしたり、みんなやってるとか、
そういう返事。
ところで「安全」から「有効」にさりげなく言い換えてるのはなぜ?
セキュアになるって言ってたやつもいたな。
>>27 だろうね。
とくに根拠はないけど、意地になって0クリアに意味があるって言い張ってるだけ。
プログラムのデバッグをしている時などは、 スタックエリアのメモリダンプの際に0クリアのおかげで スタックの使用状況が明確になり、デバッグ作業が捗る事 も有る。
34 :
デフォルトの名無しさん :2006/07/21(金) 14:14:12
ここはレベルの高いインターネットですね
>>33 そういう目的のときには0じゃなくて、0xccとか意味のない値で埋めたりすることが
多いよね。
>>33 >デバッグ作業が捗る デバッグ作業がとどこおると、読んでしまった。
自作自演の香りがするのはなぜだろう
>>35 う〜ん、スタックのメモリダンプを取る場合の初期値には、
0xCCとか0xEEとかの意味の無い、だがパッと見て分かる値
を用いるのは確か。
Cで構造体やmallocしたバッファをゼロクリアするのはダメなのか?
ようするに、人生色々コードも色々って事だ
>>39 それはビミョーだな。
文字列を全部ゼロクリアするのは、明らかにだめ。
釣れませんな
callocってなんであんの?
goto使う人
do {} while(0) な人。
if (0==fp) {}な人。
釣れますか?
釣れませんな
文字列を全部ゼロクリアする奴なんかいないだろ
50 :
デフォルトの名無しさん :2006/07/21(金) 18:54:05 BE:404376899-#
>>46 よその板で、Javaで
"hoge".equals(str)
とするのがいいって言ってるやつもいたなぁ。
nullが入ってる文字列と比較しても例外がでないからとか。
アホか。
根本的な問題先送り、ってことか
>>46 のようなのを見ると、ああ、この人は
if(fp=0){ ... } と書いてしまってアッー!なことが
何度もあったんだなと思う。
Cで比較の左側に定数を置くスタイルの是非は、昔からいろいろ言われてて、 今ではかなり少数派ですな。
もう既出ネタつまんないんで、下手な人について語ろう。 まず俺から。 「boostでそれ出来るよ」と解答する奴
俺のコードにけちを付けるなと言う奴。
俺が書くPerlのコードは美しいという奴。
これOSのバグですか?と質問する奴
昔の話を語りたがるオヤジ
一発完動教
フローチャートをまず書けというやつ
もっと高度な話をしようぜ
了解。 goto使う奴。
よしきた。 memsetでゼロクリアするやつ
ぱっと見てだから、高度じゃなくてもおk。
副作用をまったく考慮してない関数マクロ
a = a++
70 :
デフォルトの名無しさん :2006/07/21(金) 21:56:22
なたならどれ? fp==0 fp==NULL !fp
>>71 あとで読むとき苦労しないように順番に使うよ
NULLP(fp)
式の途中にコメントを挟む奴。 hoge = a // ・・・ + b // ・・・ + c; // ・・・ とかはまだ許せても、 hoge = a/*・・・*/ + b/*・・・*/ + c/*・・・*/; とかはぶっ飛ばしたくなった。
/**************************************** * * * * ****************************************/ 囲いつきのコメントも素人くさい。 こういうのを全関数の頭につけて、引数の説明とかしてるのも うんざりするね。
if(bValue==TRUE) {
>>76 前関数の説明は当たり前だ。
お前が素人だろ
>>50 str==null であってもいい場合はむしろその書き方が推奨される。
80 :
デフォルトの名無しさん :2006/07/22(土) 01:44:35
Linuxカーネルのソースコードはやばい
素人にも分かり易いプログラムと、素人が組んだプログラムは違うと思うんだ。
82 :
デフォルトの名無しさん :2006/07/22(土) 02:33:03
>>76 こういうやつがドキュメントもコメントもない
クズコードを量産するんだな
コードにいちいちコメント付ける方が下手
// int型の変数aを宣言する。初期値は0。 int a=0; ってかw
86 :
デフォルトの名無しさん :2006/07/22(土) 02:43:03
なんか前スレの議論はすべて初期化された状態での議論になるんだろうなw
>>85 そんなどうでもいい糞コメントの話じゃなくて、リーダビリティを上げたいなら
コメントを書く前に、まずコードそのもののリーダビリティを上げろっつー話。
89 :
デフォルトの名無しさん :2006/07/22(土) 02:49:02
>>84 ソフト開発のオフィスが「工場」なメーカー?
90 :
デフォルトの名無しさん :2006/07/22(土) 02:53:45
>>88 おまいらが勝手にやってるからかまわないよw
必要性の無いコメントを入れてるヤツ、って言いたいんだろうか 必要なコメントの無いソースを書くヤツもカスだと思うが。 徹夜仕事のあとにこんなとこ来てるオレもカスだと思うが。
「必要なコメント」とかいう奴に限って、必要ないコメントを書いてる件について
>>35 >>38 0xA5
0x5A
0xAA55
0x55AA
あたりが好き
0x55AA はどこぞの mbr とかで使われてるけど
0xdeadbeefってのがあったな。
ソースコード出したら、修正点とか言ってくれる?赤ペン先生みたいに
96 :
デフォルトの名無しさん :2006/07/22(土) 09:25:38
俺様コーディングスタイル様達が いっぱい添削してくれますよ
そういえば宿題スレはあるのに添削スレはないですね
98 :
デフォルトの名無しさん :2006/07/22(土) 11:27:10
そうかつ コメントは沢山入れすぎずわかりやすく最小で入れること これでFA?
, -: ': : : : : : :"⌒: ̄:` : 、 /: : : : へ._ : : : :へ、: : : \ __,く;へ_: : :| : : : : : : : \ ̄:ヽ、\ . /:__/: : :/: : |: :l: : : : : : : : \.: :ヽ: ヽ /_//: : :/: / :|: l: : :ヽ: ヽ: : : : ヽ: : ヽハ //: /: : : : : |: : l: : |: : |: : ヽ: :ヽ: : ヽ: : : : : : :ヽ: : ヽハ . /:/: /: /: l: |: :,|: : ハ: : |: : : ヽ: :ヽ: : ヽ: : : : : : :ヽ : ヽ| //: : l: :l: ::|: :|: :|: : :| ヽ lヽ : : :\: ヽ.: :\: : : ヽ:ハ: : : | | l: : |: :|: : |: :|: ハ__,L. ヽ \" ̄「 T ト- 、;_: : : : :|: : :.| | |: : |: :|: : |: ;|イ「 ヽ| \´\ヽ __」__i.\ \ : : |: : :| もう・・・仕方の無いことばかり言って・・・ | |: : |: :|: : くv' _」=i ヽ /「 i::::::o「\|ヽト: |: :/| i l: : ハ: l: : :.ト / {:::::::〉 レヘ:.::::}゚i|/|: ::| .}レ': :| ∨:| Vヘ: ::ヘヽ vヘ:ハ ..く_二iつ|: :.:レ: :| : :| ヽヽ∨へ:ハ ヾツ ////ハ:/::|: :|: : :| ∧: :i:ヘ.l // ` /: {:::::|: :l: : ハ /:/: ∧: \ 。 ,.イ:|: :|::i:::|: :l: ::∧ //: : :}: ヽ`i:: 、. / .|::| :|:::i::::|: i:: : ∧ ://: : : ハ: ヽ::::::ノT ' ‐ ' |::|: :V::::i∧: : : : ヘ //: : ノ二 ヽ: :\ 〈ー 、 _____,トヘ: :∨::i::∧: : : :.∧ //:/ /⌒ \ ヽト、: :ヽ\_______ハ \:∨ハ:::∧: : : :} \
>>78 プロっぽいコードには、囲いつきのコメントなんてめったにないよ。
安プログラマーを、人海戦術的に働かせてるところだろ。
囲いつきでコメントを書かせてるのは。
ここは素晴らしいスレですね^^
/* Winsock2.h -- definitions to be used with the WinSock 2 DLL and * WinSock 2 applications. * * This header file corresponds to version 2.2.x of the WinSock API * specification. * * This file includes parts which are Copyright (c) 1982-1986 Regents * of the University of California. All rights reserved. The * Berkeley Software License Agreement specifies the terms and * conditions for redistribution. */
string s; strcpy(s.data(), "2ch");
a /*= 3
105 :
デフォルトの名無しさん :2006/07/22(土) 11:54:40
>>100 誰も囲いつきの件はつっこんでないだろ?
プロっぽいと プロは違うって事 金のためならなんでもやる(私情をはさまない)のがプロ ...もれは感情むき出しなのでアマチュア
>>100 /*
* check again, because may be out of memory and start_new_buf
* might not do anything.
*/
とあるデバイスドライバのソースファイル内のコメントの一部、
多分になぜこの様なコーディングを行ったのか、自身が後で困らない為にも
注釈を残したと思われる。
その様なコメントがソース内に多数あり。
>>1 は前スレでさんざん暴走したあげく自爆したやつだろww
ボックスコメントは、整形するのが時間の無駄だから止めろという主張を 何かの本で読んだことがある気がするけど、そんなことどうでもいい
それこそキー一発で挿入できるようにしておくんだろうな。 いちいち桁数あわせて入力してる奴はいねーよな。 いねーよな?
某perlの本では コンメントが無くて意味不明のコード<コメントを書きすぎてだらだらしてるコード<コメントが無くても意味が明瞭なコード と、書いてあった・・・
>>113 それさ、コメント豊富だが意味不明なコードってのが抜けてるよ。
現実にはこういうコードが下手なコードって呼ばれる。
>>108 それは囲いじゃないだろ?
上で例まで出してるのに、なんでわからんの?
お前がバカだからだよ
「囲い」を非難したいのか? アホクサ
かっこいー
120 :
デフォルトの名無しさん :2006/07/22(土) 13:54:57 BE:59908043-#
>>111 囲いつきのコメントがダメな理由は、それも大きいけど、それだけじゃないよ。
>>118 囲いもだし、関数すべてに、その先頭で説明を書けってルールもヘタに見えるね。
つーか、コーディング規約以外でファイルヘッダコメントや関数コメントを 枠で囲む奴なんかいないだろ。
つか、あるあるネタじゃないとつまんないんだよ。
うだうだいってねーでネタを出せよ
よーし。 goto使う奴
ぱっと見だろ? コメントでソースに書いてあることを繰り返す > for(i=0; i<10; ++i){ // カウンタiで0から9まで以下を繰り返す とか > if(func(x)!=0){ // func(x)の戻り値が0ではない場合 とか > a = x; // a に x を代入する とか > ++a; // a をインクリメント とか... 誰か止めてーw
囲いつきがコメントがいい理由。
ぱっと見て少なくともコンパイルされない部分だと明確にわかること。
ソース混在でコメント書かれると、どこがコンパイルされるかいちいち追わないといけなくなる。
仕事でやってるなら常識、
>>122 見たいな思想のやつが書いたコードで
ソース追っかける手間かけたくないしね。
俺さえよければいいというなら話は別だが、他人に失礼のないようにするのが、人として当たり前のこと。
>128 もれ、つい昨日、 > init(); // 準備処理関数を呼ぶ > makeXXXData(); // データXXXを作成する関数を呼ぶ > fin(); // 終了処理関数を呼ぶ っての見た...コメントuze-
囲いである必要はないだろうが、はっきりした切れ目は目立つようにしてほしいね
金の切れ目がマソコの割れ目
コメントを書く時間があるなら時間かけても意味の分かりやすいトークンを書くべきかと。
俺は整形に時間かからないように /*********************************************** こめんと ***********************************************/ こういう囲い込みをよくやる。
俺はもうC-styleのコメントは書くことが無くなった
もれは // を使うな。古いCで仕方なく/* */ なら /* **************************************** **************************************** */ かな
拡張子が .php
139 :
:2006/07/22(土) 15:14:37
//と/* */のどっちを使うべきか?ですが、 あるwebサイトでhtmlファイル内JavaScriptのコメントで// を使ってたんですが、ファイルをサーバにアップロードすると ファイル内の任意の位置の改行コードが ランダムに削除されてしまうトラブル(原因不明)があり、 //が意図しない行にまで作用してスクリプトが動かないという トラブルがありました。 こういう場合のことも考慮すると/* */を使った方が 安全なのでは?と思いました。
tmpだけならまだしもtmp4とかtmp5とかいう変数が出てくるコード
>139 へーへーへー (コンパイル環境とはちと違うけどね)
>140 i ii iii j jj jjj って変数が出てくるコードなら見た
InitializeEx InitializeExEx InitializeExExEx InitializeExExExEx とか見たことある
#if 0 消すんなら、すっぱり消しちまえ。未練たらしく残しておくなよ。
前にどうなっていたのか証拠が必要な場合があるんだけど
146 :
デフォルトの名無しさん :2006/07/22(土) 16:37:23 BE:49923825-#
>>135 >/***********************************************
こういう横に引くより、行頭にアスターを入れて、タテにしたほうがいいよ。
/*
*
*/
147 :
デフォルトの名無しさん :2006/07/22(土) 16:38:10
>>146 そんなにDoxygen流行らせたいのか?w
ブロックコメントは、素人っぽいやつは「囲い」で、 スキル高いひとは行の最初にアスターを入れて、ブロックにしてる ほうが多いね。 だから、ぱっと見て囲いがでてくると、ヘタそうって思う。 まあ、装飾の多いコメント書くやつは、大抵ヘタだね。
>>149 そうか?
単純にスタイルの問題でしかないけどな。
>>139 それはアップロードが確実に出来ない状況を改善すべきであって
コメントの書き方に思いをはせるのは間違ってませんかい?
コメントは C スタイルでも C++ スタイルでも構わないと思う。
開発環境(ていうかエディタ)で折りたたみ表示できるか、
アウトライン表示できるかとかの方がよほど生産性に影響する。
そんなの規約レベルの話だしコメントの形式でコードの質が変わるわけでもなし。 効率や質に関係のないところに粘着するのはヘタだなあと思う。
153 :
:2006/07/22(土) 16:50:02
じゃ、今時は何がはやってるの?
javadoc
>153 \r\n、\r、\n が混在とか、あるいは文字コードも混在してたとか? ここで続ける話題じゃないのは確か。 俺の主張は /* .. */ の方が安全かもという論には賛成できないってこと。
ブロックコメントでデッドコードにするなら消す理由と消した日付もコメントする事。 賞味期限切れになったらまとめて消去するから。 YAGNIだったら最初から残さないでくれ。
>>157 俺は
/* 初期化処理 */
とかいうコメント嫌い。
いざブロック単位でコメント入れたいときに
/*
/* 初期化処理 */ ←こいつのせいでブロックでコメントできない。
*/
から。面倒だから/**/を使う奴に「止めてよ」っていったら、
ブロック単位でコメントしたいときは#if 0 #endif使ってくれって言われた。
面倒臭ぇよ・・・orz
160 :
デフォルトの名無しさん :2006/07/22(土) 17:27:16
// 一行だろうと複数行だろうと // 常に←これしか使わない俺は ANSI C では負け組
CVSつかいたまい
リファクタリングに出てくる「不吉なにおい」って、おもたけど ぱっと見てわからんものもあるからなぁ
>>152 >コメントの形式でコードの質が変わるわけでもなし。
ヘタなコメントは、コードの質を明らかに下げてるよ。
164 :
デフォルトの名無しさん :2006/07/22(土) 18:11:38
それに、コメントの付けたかの下手なやつは、コードもヘタだしな。
>>164 3分未満で即レス付けられるくらい、がんばってこのスレに張り付いてるお前の
ほうがよくやってるよ。尊敬する。
カンマを行末につけてるやつ a, b, c
カンマは行末に付けたい。
もうね、 // ジューステーブルの「消化日」項目には、現在の日付が保存されるべきだが // 下のメソッドでは帳票オブジェクトの「注文日」を決め打ちで使ってしまうため // ここで回避 Variant orderDateOld = chouhyou.getOrderDate(); chouhyou.setOrderDate(getNowDate()); JuiceTable.insertFooBarData(chouhyou, foo, bar, hoge); // 元に戻す chouhyou.setOrderDate(orderDateOld); 俺氏ね。
下手なコメントなんかどうでもいいじゃん。 下手な「コード」の話しようぜ。
スタイルの問題かもしれんが if (!(fp = fopen(filename, "r"))) { }
171 :
:2006/07/22(土) 19:04:33
>>170 どう書くべきだと思ってるのか教えてくれ。
どう書くべきとか、そんな大したもんじゃなくて fp = fopen(filename, "r"); if (!fp) { } って分けて書いてほしいってだけの愚痴です。 ハイ、すみません。
C99使ってよければ、こうしてくれ。 FILE *fp = fopen(filename, "r"); if (!fp) {
174 :
デフォルトの名無しさん :2006/07/22(土) 19:38:12
変数や構造体のメンバの定義で、変数名の"後ろ"を特定列に合わせる.. という規約があった。 スペースキーを打っていちいち後ろを調整するのは面倒だよ〜。
>>149 はい、バカの見本でました。
これがぱっと見て「ヘタだなぁ」と思うコードスレによく出没するアホ論理バカです。
論理というものが理解できず、結論が理由になっちゃうんですね。
素人はブロックコメントで装飾する
↓
だからブロックコメントをするのは素人
>>165 >>3 分未満で即レス付けられるくらい、がんばってこのスレに張り付いてるお前の
>>ほうがよくやってるよ。尊敬する。
と4分未満で即レス付けてるお前が一番必死に張り付いてると思う。
177 :
デフォルトの名無しさん :2006/07/22(土) 19:49:16
関数の戻り値がunsigned型で、成功は0、エラーは0xFF,0xFFFF等。
179 :
デフォルトの名無しさん :2006/07/22(土) 19:51:50
で、関数を呼び出した後、 if ( rtn < 0 ) { // エラー処理 } と書いてしまってはまる。
アホなだげじゃ゛ん゛
181 :
デフォルトの名無しさん :2006/07/22(土) 19:55:58
ぱっと見てアホだなぁと思う
182 :
デフォルトの名無しさん :2006/07/22(土) 20:04:44
C言語で、変数や構造体のメンバに文字列をNULLストップで格納しない。 その変数に対してstr系関数を使う場合は要注意。
>C言語で、変数や構造体のメンバに文字列をNULLストップで格納しない。 んなもん扱うデータのデータ構造によるから言語なんて関係ないしましてやうまいへたとも関係ない。
8バイト固定のIDとかに9バイト割り当てたら、そっちのがバカっぽいな
>>175 いや、理由はあるけど、教えてあげないだけ。
それは、理由はいわなくても、状況見ればわかるだろって言ってるの。
「俺が正しい。お前らが間違っている。」 皆そう思ってるんだろ?
いや。俺は氏ぬべき。
コメントが下手だからコードも下手なんじゃなくて、 何もかも下手だからコメントも下手なんでしょ。
スコープを最小限にするために 関数{ なんやらかんやら { 変数宣言 変数使用 } } みたいなことを多用するんだが、このブロックなんだよ、キモいよと言われる。 まぁキモいとは思うんだけど、どうするのがベストだろう? 関数にしてしまうとかえって可読性下がりそうだし。 (ブロック書いて済ませたくなるほどしょぼい処理だから 適切な名前を考えるのが難しいため。)
俺もたまにやるけど、徹底はしない。
>>100 何をもってプロっぽいって言ってるかよくわからんけど、
コメントの書き方じゃなくてコメントのフォーマットに文
句つけてるだけの奴は下手なんだろうなぁと思う。
>>190 「キモイよと言われる」ことと「スコープ最小限にする」ことを秤にかけて決めればいい。
普通関数化するでしょ
日本人は囲うのが好きな民族だから、そうしたい奴がいても 不思議じゃないし、コードの巧い下手とは関係無いと思うがどうだろう。
>>196 数行でも?
それはそれで「徹底」されるとうざいと思うけどな。
>>198 つか、君、関数の平均行数は何行くらいなのさ
>>199 大体一画面 (30行ぐらいか) が目安ですけど。
C3プロジェクトでは、1メソッドの平均行数が6行だったらしいからね。 うまくやれば、短い関数が多くあっても気にならないのでは?
>>202 て言うか、
関数{
int a;
なんやらかんやら
{
変数宣言
変数使用
a = 変数
}
}
なんて場合は関数化しにくいだろ。
これはキモい
>>203 procedureじゃなくてfunctionにすればいいんじゃね?
C3ってなんや
戻り値
>>203 {
変数宣言
変数使用
a = 変数
}
の部分、まんま関数化できると思うが。
なにがしにくい?
関数って、成功か失敗しか返せないと思ってるんじゃないかな
一行のわかりづらいif文ですら、メソッド化しましょうというこのご時勢に、何を言ってるのやら
>>205 ,
>>207 ,
>>208-209 変数ひとつだけならいいけど、複数あったらどうするんだ?
>>202 ,
>>210 メソッドとかの意味がある奴ならたとえ一行でもいいけど、
処理の一部なんかを単にブロック化するためだけに関数化
するなんてだと単にわかりにくくなるだけと思うけどな。
>>211 ヘタな例しか出して無い癖に、後出しで条件増やして
どうするんだ?とかセコいことすんな
馬鹿だから相手にしないほうがいいよ。
傍から見てるとどっちも大差ない
だったらスコープを最小限にするだけのためのブロック作らなければいい
裸のブロック開始記号が出てくるのが気持ち悪いのかねぇ。 /* なんか中身の説明 */ { hoge(); } とか #define なんかシンボル /*空定義*/ なんかシンボル { hoge(); } とかしたらまた違うんだろうか。
ヴァーカ ボクが下手なわけじゃないんだ チミたちが理解力がないだけなんだ そうだボクは天才だからだ わかったら下僕のように言うことを聞け
予想通り最後は煽り合うだけかw
221 :
デフォルトの名無しさん :2006/07/23(日) 00:18:23
>>216 /*↓コメントにしてぇときどうしてるの?
/* なんか中身の説明 */ {
hoge();
}
とか
#define なんかシンボル /*空定義*/
なんかシンボル {
hoge();
}
*/
#ifdef 〜 #endif
223 :
デフォルトの名無しさん :2006/07/23(日) 00:29:51
>>222 それが嫌だからしつこく食い下がる!
面倒臭ぇんだよ!
なんでこれでいいとかいう神経してんの?
この↓ほうが楽じゃん。
//コメント
> この↓ほうが楽じゃん。 > //コメント 自分がそうしたければそうすればいいんじゃない? おれは、#if 〜 #endif はそう面倒とは思わないけど。
String hoge = new String(); で文脈にかかわらず必ず初期化されているコードを見たことがある。
>>223 方法によって面倒くさくなるほどコードをコメントアウトすることがあるのが間違い。
>>226 2つコード書いて、ちょっと試してみたいときあるじゃん。
その「ちょっと」なんだよ。
この「ちょっと」なんだけど、これが面倒だと嫌なんだよ。
しかもさ、別に
//コメント
この↑コメントの仕方すれば解決する問題じゃん。
わざわざ/* */ってやって他の人に嫌がらせしてるみたいじゃん。
これが我慢ならねぇところ。
ちなみに俺は/**/って使ってもコミットするときはこのコードはソース上に残さない。
なんで #if 〜 #endif がそれほど面倒なのかよくわからん…。
Borland C++とかオプションでコメントのネストができるようになる処理系もあるよ。 自分だけでもそれつかったらどう。
>>211 ブロック化って単に変数のスコープを局所化したいだけなんだろ。
関数の行数平均30行のお前が、なんで多用するんだよ?
使い捨て一時変数の名前と、意味のある変数の名前のネーミングルールを
全く別のものにすれば問題ないだろ。
>>228 面倒だよー。
しかも、VCで緑色にもならないし。
みんなでVC使って開発してるのにすげー邪魔くせー。
協調性無いのもすげー嫌。
>>229 嫌だー。なんで俺は悪くないのに俺が妥協しなきゃならんのだー。
みんなからブーブー文句言われてるのにそいつだけ変な意地はってすげー邪魔くせぇ。
> しかも、VCで緑色にもならないし。 これは、結構重用だと思う。 パッと見てコメントだと識別できた方がいいよな。
>>232 どうせコミットしない一時的なコードだからどうでもいいだろ。
>>231 どっちがいいとかは別として、
このスレでも君の会社(?)でも
そのやり方が少数派なのは確か。
局所ブロックを多用したくなるのは、 ・構造化できていない ・データ構造がなってない ・全般的に下手 のどれかでしょ。
do { ... } while (0) と書けば、誰も文句言わない。
2005 だとデフォルトで #if 0 #endif は灰色になるよ
>>230 俺に言うなよ。
俺は、ブロックを「普通関数化するでしょ」とか言う
>>196 がおかしいと思ってるだけなんだから。
ブロック多用してた時代もあったけど、やっぱり違和感があるから
単独のブロックはほとんど使わない。
>>238 #if 0
#endif
よく↑内にクラスや関数の簡単な使用方法を
書いたりするんだが、それでいきなり見辛くなったw
デフォルトで通常の色にしておいて欲しかったよ。
ってこれは下手かな?
>235 ・クラスのサイズがデカい。もっと分割出来るのにしてない。 とかもある。
242 :
デフォルトの名無しさん :2006/07/23(日) 02:35:16
#define block /**/ int hoge() { ... block { ... } ... } うはwwww俺キモイwww
前にcppmlで少しだけ話題になってたね。 俺はこういうアイデアがいいと思った。 int hoge() { ... // ここからなんたらかんたらの処理 ←とコメントを入れる { ... } ... } 関数化して外に出したくなった場合も、コメントがそのまま使えるしね。
オナニーを見せておいて、注意されたら止めるんだろうな
248 :
デフォルトの名無しさん :2006/07/23(日) 11:12:08
関数内関数すら定義できない糞言語なんて使うなよwww
Cも関数内関数が使えればよかったんだけどな。 ってPascalの関数内関数が見易さの向上につながるとは思えないけど。w
Perlでオブジェクト指向プログラミングするようなもんだね
それだけのために関数内クラスなんて阿呆の極みだ
クラスを設計しなおせばなんとかなる気もする
>>252 俺もそう思う。
単なるブロックをヘタにクラスや関数にすると、
余分なオーバーヘッドがかかりそうで嫌い。
static inlineで
一体何のためにC/C++で#defineがあると思ってるんだ?
C++で#defineを積極的に使ってるコード
低レベルなスレだなおい
見に来ないと そういうスレすら見抜けないとはな
>>260 名前とメールの区別がつかない馬鹿を発見しました。
さらにもう一匹釣れました。(w
263 :
デフォルトの名無しさん :2006/07/23(日) 17:19:53
IEブラウザでカキコしてるんだろうなぁ
おお、2chの三大珍獣、釣れた!君が出ましたね。 今時なかなか珍しいよこの生き物は。 絶滅危惧種だ。
うるさい死ね!
おにいさまおにいさまおにいさまおにいさまキスキス…ネコミミ!おにいさまおにいさま おにいさまおにいさまキスキス…ネコミミ!おにいさまおにいさまおにいさまおにいさま ネコミミ!おにいさまおにいさまおにいさまおにいさまおにいさまおにいさまネコミミ! おにいさまおにいさまネコミミモードネコミミモードネコミミモード私のしもべー キス…したくなっちゃった…ネコミミ!おにいさまおにいさまネコミミ!おにいさま ネコミミモードネコミミモードネコミミモード私のしもべーキス…したくなっちゃった… ネコミミ!ネコミミ!や・く・そ・く・よネコミミ!おにいさまや・く・そ・く・よ おにいさまおにいさまおにいさまおにいさまおにいさまおにいさまおにいさま や・く・そ・く・よや・く・そ・く・よおにいさまおにいさまおにいさまや・く・そ・く・よ ネコミミ!や・く・そ・く・よネコミミモードネコミミモード私のしもべーネコミミモード おにいさまおにいさまおにいさまおにいさまキスキス…ネコミミ!おにいさまおにいさま おにいさまおにいさまネコミミモード私のしもべーキス…したくなっちゃった…ネコミミ! や・く・そ・く・よネコミミ!や・く・そ・く・よおにいさまおにいさまおにいさま や・く・そ・く・よ私のしもべー私のしもべー私のしもべー私のしもべー私のしもべー 私のしもべーや・く・そ・く・よ私のしもべー私のしもべー私のしもべー私のしもべー 私のしもべー私のしもべー私のしもべー私のしもべーや・く・そ・く・よネコミミ! おにいさまや・く・そ・く・よ
すでまちがえたwwww とかやってたらよかったのに
入れ食いですねw
また釣れた!釣れた!わーい釣れた!
キレて騒ぎ出すぐらいならはじめから技術なんて語るな。クズが
偽者君協力乙。 コピーするなら最後の "。" までちゃんとコピーしてね。(w
釣れた!君は自分のバカさ加減に気付けません。 釣れた!レスで自分が勝ったと勘違いするからです。 ですのでこのように、自分がどんなにバカな行動を示したか あえてそっくり真似ることで教えてあげるのが効果的です。 他人の振り見て・・・というヤツですね。 これでも自覚できないなら、多分相手は小学生です。 子供は宝!今はバカかもしれません、しかし暖かく見守ってあげましょう。
問題バレテデスマーチの開始みたいな展開w
>>273 長文乙。
そんなに悔しかったのか (w
小学生でした。
>>266 それ間違い。
↓これが正解
ネコミミ!
ネコミミモード ネコミミモードでーす ネコミミモード ネコミミモード
ネコミミモード ネコミミモードでーす ネコミミモード(フニャーン♪ フニャニャン?)
フルフルフルムーン(キスキス…) おにいさま(キスキス…)
や・く・そ・く・よ(キスキス…) 私のしもべー(キスキス…)
ネコミミモード ネコミミモード ネコミミモード ネコミミモードでーす
ネコミミモード ネコミミモード ネコミミモード ネコミミモードでーす
キス…したくなっちゃった…
関数化、モジュール化ってのはコードの論理的な整理はできるけど、流れを見えにくくする欠点はある。 特に今述べられているよう、細かい処理をいちいち関数でくくりだすと、よほどうまい命名法をしない限り、 トップダウン式には理解してゆけない。
釣れたことにしといてやれよw
>>278 まあ、そう言うこと。
ヘタに関数なんかにすると、ほかの場所からも呼ばれてる可能性なんかも
考慮しないといけなくなるからコードが追いにくくなる。
>>211 の問題もあるから、ブロック化はいざ知らずそれを関数化する奴は
パラノイアか単なるアフォだと思う。
まあ、実際にはいないと思うけどね。
>>279 >>255-256 > static inlineで
> 一体何のためにC/C++で#defineがあると思ってるんだ?
思いっきり釣られてますが、何か? (w
282 :
デフォルトの名無しさん :2006/07/23(日) 18:45:39
でも、メール欄に書いてないのは爆死物だと思うんだ(笑)
夏ですなぁ
改めていうまでもなく、日本では6月から9月までは夏だ。
つか、なんでブロック作るの? テンポラリ変数とか使いたいわけ?
>>278 まぁ具体例を出さずに話すのがアレだが、それって設計が下手ってことでは?
夏だなぁ厨 【なつだなぁちゅう】 夏に暴れる人(夏厨とは限らない)を放置ができず、とにかく「夏だなぁ」と言い出し、 それによってなぜか相手より優位に立ってると思い、 荒れの元となりスレ(板)住民全体に迷惑をかける存在。 【特徴】 ・とにかく文中に「夏だなぁ」を入れないと気がすまない ・スレの流れや空気を読めず、反応してしまう ・普通のスレ住人は夏厨を放置しているのに自分だけが過剰に反応してしまう ・夏厨に反応している時点で夏厨と同類であることに気づいていない ・普段と特になにもかわらないのに、とにかく「夏だなぁ」と言えば勝ってると思ってる。 ・一日中いや一年中ずっと張り付いてる自分がおかしいことに気付かず、 夏休みを利用して2chからくる特に異常というわけではないはずの人をなぜか見下している
>>280 >
>>211 の問題もあるから、ブロック化はいざ知らずそれを関数化する奴は
>パラノイアか単なるアフォだと思う。
と決め付けるお前さんの方が、よっぽどアホに見えるんだが。
単に一時変数を使いたいが為に、ブロックを作る奴(さらにはそれをインデントする奴)はアホ。 関数先頭の変数定義が多すぎるなら、それは普通大きすぎる関数だから分割を考えろ。
>>280 > ほかの場所からも呼ばれてる可能性
あー、何か、そんなに副作用たっぷりな関数を作るのが大好きなのか?
「分割するとわかりにくくなるんです」という反論があるかもしれないが、だとしたら 無理な分割は勧めない。 しかし、いつでも「分割すると分かりにくくなる関数」しか書いてないのかという疑問は残る。 なにせ「多用」しているのだから。
>>290 その発言で、設計がヘタだってことがばれちゃったよねw
>>278 は?
小さな独立した関数を呼ぶコードの方が、詳細なコードがずらずらと書かれている
コードより、トップダウンで理解しやすいだろ
っていうか、関数化に反対してるのって、元発言の人ただ一人じゃないの?
この話題って、このスレにピッタリだね。 自称、中上級者が良かれと思って使うテクニックが、他人から見ると ヘタに見えるから笑える。 初級者が書くヘタなコードはつまんないし。
夏だなあ
子犬が数匹互いの尻尾噛みあってくるくる回ってる感じ
>>294 俺もそんな気がする。凝集度という言葉を知らないと見た。
299 :
デフォルトの名無しさん :2006/07/23(日) 19:34:30
自作自演が激しいな
>>299 このスレって多分そういうスレなんだよ。
お互い多数派っぽく見せたくて自作自演合戦w
ブロックコメントも、関数内ブロックもどうでもいい話。 なんでそんなに一生懸命になるのか理解不能。 ヘタな「コード」を出せ。
長い関数で、意味のまとまりを強調したくてブロック化してるんじゃないの? そうだとしたら、全く同意できないけど。
下手なコードとして出してたんだろうよ
いや、素晴らしいコードを理解しない同僚が下手だって言いたかったんだよ。
とりあえず、
>>244 のリンク先は頭悪過ぎってことは確定でいいんだよね?
>>190 そもそも、スコープを最小にする意味がわからん
あれが素晴らしいとは…
Unit Testしない人たちなんだねぇ
>>310 まあ、結論からいうとバカタレの極致だなw
313 :
デフォルトの名無しさん :2006/07/23(日) 19:57:59
もう自演はいいから。
>>313 なんで自演と思いたがるのか。
俺もいくつか書いてるが、数人はいると思うぞ。
>>244 のリンク先みたいな恥ずかしいコード書くぐらいなら死んだほうがましだよw
自演認定だけが生き甲斐
荒らしたいだけなら他所でやれ
後からいつでも分割できるからと巨大な関数書くくらいなら、 関数コールのオーバーヘッドがボトルネックになっていると 分かった段階で一つの関数にまとめるというスタンスの方が 余程まともな考え方。
>>319 え?そういうヘタレの隔離スレじゃないの?ここ
まさかとは思うが、 ID表示されなければ自演はバレないと思ってるんじゃ・・・^^
測りもしないで関数コールのオーバーヘッドがどうとか ウンコみたいなこと言い出すところとかぶん殴ってやりたいな。
>>244 のリンク先の奴って生んでくれた両親にすまないと思わないのかな?
こんな馬鹿に育ってしまってスミマセンとか謝ってほしい。
自演してるおまえら自分のレスのHTMLソース見てみろ
夏厨発見
>>244 のリンク先の奴ってあんまり馬鹿で死にたくならないのかな?
>>331 俺にはお前の方が馬鹿に見えるが、お前は大丈夫なのか
>>332 そんな必死な反撃にもかかわらずにいうけど
どうみたって
>>244 のリンク先はクズだよね?
相手にした時点で負けw
まあ
>>190 も自分のコードに賛否両論あるってのがわかって良かったんじゃね?
そんなつまんない話はこれくらいにしようぜ。
337 :
デフォルトの名無しさん :2006/07/23(日) 20:34:20
>>334 だって、関数に分けないで関数内でコメントでブロック毎に関数名付けて、
その理由が関数コールのオーバーヘッドなんだぜ。
あんまり馬鹿過ぎて、おじさんウンコ漏らしそうになっちゃったよw
>>337 それは理由・利点のひとつに過ぎんだろうが。
まあ実際のところは漏らしてしまったわけだが
ウンコ臭い中年が暴れてるスレはここですか
341 :
デフォルトの名無しさん :2006/07/23(日) 21:06:38
それ以上に馬鹿な厨房には当然理解できないよwww
夏だなぁ(笑)
まあ、関数化に文句つけてるのはFORTRAN屋さんかコボラーだろうから ウンコ臭い中年だろうな
ヘタだと思うならソースじゃなくてもいいんだよね? 特にファイルの容量とか上限値を気にしてないプログラム。 たとえば OutlookExpress とか Outlook とか。 送信済みトレイのサイズが 2GB 超えると送信直後に(送信は出来てる) 送信トレイから送信済みトレイにメールを移動出来なくて また送信済みトレイに戻してしまう。 んでまた送信しようとする。もうアホかと。バカかと。 メール送信出来ませんとかエラー出すのはいいが、サーバーエラーなのか 接続エラーなのか全然分からん。原因が送信済みトレイの容量オーバーだ とは一言も言ってくれないからいつまでたっても送信し続けて相手には何通も 同じものが届くわもうえらいことです。
コードとソースは同義だと思った俺は負け組
ただのバグでしょ。 はい、次。
>>347 その原因の予測がつかないお前もへただと思う
ヒント 整数が符号付32ビット
>>350 どこに予測がつかなかったなんて書いてあるんだ?
MUAにOutlookを使うのには目をつぶっても、2Gもメール送るお前がアホ
354 :
デフォルトの名無しさん :2006/07/23(日) 21:46:43
仕事のメールの合計が2GB越えるなんてザラなんだよww やっぱりニートには理解できないんだねwww
ぱっと見て「ヘタだなぁ」と思う時間の使い方
この程度のプログラムならコードもヘタそうだなとは思う
同意
>>355 仕事中に2ch見てる
しかも、なんか書き込んでる
その後なぜか不機嫌になって仕事しない
359 :
:2006/07/23(日) 22:32:14
じゃあ逆に上手だなぁってコードが合ったら教えてクレクレ。 オープンソースでなるべくみんなが知ってるやつだと助かる。
>>347 Outlookは2003で20Gまで拡張されたけど、
それまでは2Gまでって制限があるとおもうんだけど?
制限があるのに2Gを超えると〜なんていうのはどうなの?
>>354 まともな技術者なら現在の環境で2Gのファイルをメールで送ろうとは思わない
362 :
:2006/07/23(日) 22:42:43
>>361 一度に2GBじゃなくて、累積2GBでは?
>>360 いや、制限があること自体は問題ないんですよ
送信トレイから送信済みトレイに移すときに
送信が終わってるんだから送信済みトレイが
いっぱいでそれ以上書き込めないならそこで
送信トレイに戻しちゃいかんだろうということです
つまり 2003 で容量 20GB になったところで その動作というか考え方が変わらなければ 将来同じことが起こるだけでしょ 問題先延ばししてるだけじゃん
境界試験をまともにしてないプログラムはタコですね
>>362 2G もメール扱ってて、フォルダに分割もしてないのか?
>>363 じゃあおまえはどうすればいいと思う?
Outlook なんかつかうう奴はばかです。
368 :
367 :2006/07/23(日) 23:03:55
「つかうう」とか書いちゃう俺もばかです。
>>364 容量増やした時点で気付くんじゃないかな?ないかな?
はいは〜い、みんなずれていってますよ〜 ↓こっからは軌道修正でよろ
370 :
:2006/07/23(日) 23:05:01
ここにいる人たちってぱっと見て下手なコード書いてるんだろうなあ。
>>366 受信トレイはごちゃごちゃになるのいやだから分割してても
送信済みトレイって結構放っとくひと多いと思うよ
Outlookってスパイウェアだろ
>>366 >じゃあおまえはどうすればいいと思う?
一時的に「エラーを示す名前を付けた送信済みトイレ」のような
新規フォルダを作ってそこに入れれば良いと思います。
>>367 >Outlook なんかつかうう奴はばかです。
そうですね。
>>368 >容量増やした時点で気付くんじゃないかな?ないかな?
気付いてることを祈りたいですが、
いままでの彼らのプロジェクトを見ていると
スルーされてる可能性もあると思います。
だれか検証したひといませんか?
もともとレベルの低いスレなんだが、直近の数十レスは想像を超えてレベルが低い
多分Outlookがすきなんだよ。
>>374 OSとアプリが64ビット化されるまでコールドスリープにでもはいってると良いと思うよ
380 :
:2006/07/24(月) 00:00:18
-------------------------終了-------------------------------------- 仕切りなおし 字下げがいい加減なコードはよくないと思います。
>ぱっと見て「ヘタだなぁ」と思うコード Pythonとかもう駄目です。 インデントが構文になってるってわけわかりません。 弄ってる奴全員死ねばいいと思ってます。
382 :
:2006/07/24(月) 00:06:03
やたら関数やクラスが多いと解読しづらいよね。
>>380 別に仕切り直さんでもええやん、どうせここは隔離スレなんだし。
384 :
デフォルトの名無しさん :2006/07/24(月) 00:07:22
>>382 だからって1関数6000行とかあんまりだと思うんです。
殺意がわいてもしょうがないと思うんです。
>>381 あれは、括弧無しで関数書き終わる感覚が最初新鮮で楽しいです。
慣れると何の違いも感じなくなるけど
387 :
:2006/07/24(月) 00:08:16
>>383 なぜ関西人はカキコするときも関西弁なんだ?
388 :
:2006/07/24(月) 00:10:23
>>385 確かに6000行はどうかと思うが・・・
389 :
383 :2006/07/24(月) 00:12:29
>>386 慣れるとぉ?
あれが長くなると死ぬほど苦痛だぞ。
なんていうか、追えなくなるw
しかも、自分のじゃねぇコードみるときに最悪。
どうせならインデントなんかじゃなくて1つの関数の最大行数でも言語仕様に入れてくれたほうが俺的にはよかった。
>>388 じゃあ、関数やクラス作らないなら何行の関数にまとまってりゃいいってんだよ!
言ってみろハゲ!
OutlookやOEを使うやつは馬鹿、なんて思ってるやつの大半は学生orニート 仕事やってたら嫌でも使う。OEのバグのおかげで何度メールが消滅したことか・・・
393 :
:2006/07/24(月) 00:16:17
一関数は何行までとかってのは、会社とか部署内で 取り決めとかあるんですかね?
>>382 それは多いから問題なのではなく、設計がまずい例だと思うぞ
仕事で普通に避けるがなあうつろっくは
outlookの話はスレ違いだから 2G/4Gバイト問題はoutlookに限らず、現状の32bit環境ではほとんどのソフトが潜在的に 抱えている問題だ で、これはこれで問題だが、ここで議論するのはスレ違い 素人諸君にも納得してもらえたかな?
while(1){ while(1){ }//?????????MainLoop }//???????MainLoop Mainは一度で良いNEC社員。
まあ下手な仕様であって下手なコードではないな。
>>391 関数作らないのに何行の関数にまとめるかとか決めても仕方なかろう。
402 :
デフォルトの名無しさん :2006/07/24(月) 06:34:20
>>401 はぁ?話の主旨を汲み取れよ。
何、言葉の端とって逃げてんだ?
死ねよ。プログラマ向いてねーよ。お前。
お客様の中に
>>402 までの流れを説明できるエスパー様いらっしゃいますか?
405 :
デフォルトの名無しさん :2006/07/24(月) 07:12:24
>>404 はぁ?わざとはぐらかさなきゃ普通わかるだろ?
大枠は
関数やクラスにわけないなら、関数の行数は際限無く増えていってしまうわけですが、
あなたは6000行では多いといいましたよね?では、具体的にどうすればいいですか?
ということだ。
でも、お前は話をはぐらかす。プログラマとしてはクズの部類にはいるのでレス付けなくていいよ。
どうせロクな議論もできないだろうしw
∩ 〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ <こいつ最高に馬鹿 彡、 |∪| / / __ ヽノ / (___) /
とりあえず1関数30行目標かな 多くても50行 それを超えたら分割
相手が一人じゃないと破錠しちゃうのかな、このひと・・・ とりあえず6000行のソース見たら、部分ごとになにをやってるのかまとめて 分割の方針立てなくちゃだろうな。 むやみに分割してもロクなことにならないし。 てか1関数6000行って、古いBASICのソース丸ごと変換とかじゃないと なかなか無いぞ。
409 :
408 :2006/07/24(月) 08:52:32
夏だなぁ
413 :
デフォルトの名無しさん :2006/07/24(月) 16:21:59
二日振りに来たら何このスピード…
>412 大量に出回ってるコードがコレなんて寒気がするな… 俺ならあんなコード書いてる途中で訳分からなくなるw
Perlはゴミコード製造機ということで・・・
日本人が書くとね。 3000行でpackage1個ってどんな設計だよw
iとかjとか、一文字変数を一切使ってないコードも見たことあるな。 本人は丁寧に書いてるつもりだろうけど、変数名がnLoopのループカウンタなんか意味あんのか。
座標の時のx,yとかも使わないのかな、それ書いたひと
漏れはメンバ名では使うけど生では使わないな。<x,y ループ制御変数もicだし。
俺it
422 :
420 :2006/07/24(月) 23:07:04
>>421 漏れもiteratorのときはitだよ。
逆に例えばこんなコードは勘弁。
double r_r = 0, r_i = 0;
for (int i = 0; i < width; i++)
for (int j = 0; j < height; j++) {
int ii = width - i;
int jj = height - j;
r_r += func(i, j) + func(ii, jj);
r_i += func(i, jj) + func(ii, j);
}
何故そこまでiやjにこだわるんだろう……
ループのネストはijklまでが最高だな。 さすがにmとかnとか行ったことない。
使ってるスコープが十分小さければi,jで十分。遠くから呼び出す場合 はそれなりに機能を表した名前じゃないと不便。
public Hashtable foo(Hashtable bar){ ... return bar; }
Vector foo; ... for(int i = 0; i < foo.size; i++){ ... if(hoge){ foo.removeElementAt(i--); } ... }
Hashtable が構造体実体だとまずいと思うけど ポインタだったらそんなにヘタだとは思わないよ それともエラーがあっても分からないのが問題?
>>427 メソッドチェーン的な物を知らんだけだろ
ヘタじゃないよね
1関数1画面(≒30行)でやっていけてる人はi,jをこよなく愛してるんだろうな。 そんな人に質問:1画面(≒30行)を超えても許される関数ってどんなの?
Win32APIのWinProcみたいにswitchのかたまりだけど caseの一つ一つが30行程度なら許せるっていう感じ?
>>433 それはメッセージクラッカーで分割できると思う。
30行とか1ページとか、量は関係ない。 何行だっていいんだよ。 関数の最後の行を読むときまでその関数の最初の行のことを 鮮明に憶えていられる限り。
ネタギレデス
鮮烈な書き出しができるかどうかがポイントってことだな。 char **************argv;
おう、アスタリスクが何個ついてるかせいぜい憶えておいてくれ給え。
こんなもん何に使えばいいんだ
そんなときのためのOOP クソ長い関数と大量のグローバル変数が発生したら ”必ず”、なにかうまいオブジェクト化がある
糞長いクラスと大量のオブジェクトが発生するかも。 というか、実際みたことあるよ。 グローバル変数とか、無理矢理押し込んだんだろうなーってのw
つーか、グローバル変数押し込みは最も基本テクニック。 グローバル変数に変更加える代わりに、インスタンス変数 に変更を加えるようにしてけば自然に遠隔作用が減っていく (関数も自然にインスタンスメソッドになってくし〜・・・
低レベルすぎる
現実で”オブジェクト”になってるものだけをオブジェクトにしようとしてたら OOPなんてほとんど出番ないよ。 本質的にどうしてもグローバル変数になるものを手続き型のコードから 抽出してくと、やりッたかったコードの中に隠れてるオブジェクトが 自然に見えてくる。そういう風に見つけたオブジェクトは必ずしも現実の 対応物があるとは限らない。
>>440 ,444
ぱっと見て」ヘタだなあ」と思う文章
低レベル過ぎる
リア高くらいか。
煽りも低レベルwwwww
>444 言いたいことは分かるけど、多分九月になるまでこのスレはダメだ。 今となっては名前が良くないよ、オブジェクト指向。 責務をカプセル化する存在をオブジェクトとは言えねえ。
関数が長くなるとかグローバル変数が多いとかって、そういうレベルのヘタさは OOPを知らないからそうなるってわけじゃないだろ。
そいつの机の下のコードの絡まり具合をみると そいつのコードの絡まり具合も不思議と分かる
453 :
444 :2006/07/26(水) 10:42:15
454 :
449 :2006/07/26(水) 10:43:27
意味わかんね。
つまらん
>>449 >今となっては名前が良くないよ、オブジェクト指向。
>責務をカプセル化する存在をオブジェクトとは言えねえ。
いまさらそんなとこつっこんでも無理なわけで・・・
内容に関する突込みが出たらまた来るかも
うわ、この人、自分の発言内容に自信があるみたいだお
つーかおまえらスレ違いwwww
人間に対するつっこみは無視らしいですよ
もう来ないほうがいいし
perlでcloseの戻り値をチェックしてないコードはヘタ。
463 :
デフォルトの名無しさん :2006/07/26(水) 22:10:33
実際ヘタかどうかはともかくとして、 変数名が、ローマ字。 これはヤバい匂いがする。
さんざん既出。
465 :
デフォルトの名無しさん :2006/07/26(水) 22:36:30
俺の書いたコード全て
>>463 今、保守してるコードは、カルテって外来語まで、caruteって綴りになってるよ。
taitoruを見たことがある
furagu は見たこと無いな、Flugならあるが ちょっと恥ずかしいレベルの英語のスペルミスはよく見るな ローマ字とどっちがいいのやら
英語とローマ字をごちゃまぜにされるよりはまだローマ字で統一されているほうがましだと思うが。 最悪なのは同じ単語なのに場所よって英語だったりローマ字だったりするやつ。
レベル低すぎ。
String meado;
動けばそれでいいよ
作り捨てはワンライナーだけにしてくれ
変数名が2バイト文字
いかにも「動けばいいんだ。動けば」という姿勢のコードを見たとき。 まあた書き逃げかよ。
変数名が3バイト文字
装飾つきのコメントとか、文字列の0埋めとか、本人は丁寧なつもりのヘタクソもシマツが悪い。
コードじゃないがSQLサーバーとかAccessとか使ってて テーブル名やフィールド名が日本語のとき
480 :
デフォルトの名無しさん :2006/07/27(木) 10:58:26
const char Renketu = '<'; const char SuperRenketu = '/'; public const char SpecialRenketu = '-';
1行でも記述量を減らそうとか、ネストの深さを浅くしようとかそういう工夫が 全く見られないとき。手の抜き方にも前向きなのとそうでないのってあるよな。
ネタギレもいいとこだな
粘着が居すわってるなw
粘着って言うか全員基地外に見える
キチガイというか、ただの初心者だな
スレ立てたやつがキチガイだからな
hoge(){ 〜 } foo () { 〜 } こんな感じに{}の位置とか()前後のスペースに統一性が無い時。 つーかおまえ関数ごとどこかからパクってきたろ
いるね
490 :
笹井奈琴 :2006/07/27(木) 19:20:52
>>489 そんな下手かね?
短いし、別にこのままでいいんでは?
最適化の仕方と文字のLとかTのやつとかしてください;;
///ヘッダファイル #include<windows.h> #include<process.h> //ウインドウの作成 hWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DialogProc); //ウインドウの表示 ShowWindow (hWnd, iCmdShow);
いかにも初心者用の解説本からコピーしたようなのってたしかにあるな。
i+=1;
それだけじゃなんとも言えん。 「フラグが真ならひとつ増やす、偽なら二つ増やす」という仕様なら if(f){ i += 1; } else { i += 2; } と書くこともある。
i += f ? 1 : 2;
i += 2 - !!f;
いかにも「俺って頭いい〜〜!」と自己満足に浸っているコードを見たとき。
>>498 本当に頭がいいなら問題はないが、勘違いしてて、
且つ、それが痛い部類に入ると余りの恥ずかしさにエディタ閉じたくなる。
なんか、ループの中身の処理でも無いのにわざわざインラインアセンブラ使って
「高速化」とかコメントにはいってて、全然速くなってないコードなんか見た日にはアチャーw
> 本当に頭がいいなら問題はないが チームでやってるなら本当に頭がよくても問題だよ。 誰にでもわかりやすいコードを書けって言われなかった?
チームで仕事してるのに誰にでもわかりやすいコードを書けないやつは頭悪いです
頭のいい自己中はいくらでもいる。
Init();//初期化 Main();//メイン処理
−−−−−−−−−−−−−−− ↓ぱっと見て「ツンデレだなぁ」と思うコード↓
/* ゔ〲〰 */
// ウィンドウを作成する w = CreateWindow(800, // 横のドット数 600, // 縦のドット数 32); // デブス
関数の中に関数があってその関数の中にまた関数があってその関数の中にさらに関数があったりすると殴りたくなる
508 :
デフォルトの名無しさん :2006/07/28(金) 03:16:59
三年前に自分が作ったプログラム
>>508 リカーシブコール多用して済みません殴らないでくだs
:ボケはともかく設計屋に言うべき文句ではとも思ったり
↑ぱっと見て「ヘタだなぁ」と思う投稿 507宛でしたアンカミス失敬
511 :
デフォルトの名無しさん :2006/07/28(金) 06:19:40
>>511 こういう奴じゃね?
hoge(fuga(fugera(fugega(piyo(piyora(piyoga())))
その戻り値をずらっと並べて表示してくれるデバッガがあったら体を許してもいい。
>>512 括弧の数が合わないような気がするけど
こういう書き方でも戻り値ずらっと並べて表示される?
object.hoge().fuga().fugera().fugega().piyo().piyora().piyoga();
こういうやつじゃないのか? func foo(){ func boo(){ func zoo(){ func bar(){ func buz(){ ...
うはw 外注出したソースに中国語のコメント大量ww チーフ、これどこに外注出したんすかwww んでファイル冒頭にのみ謎な日本語コメントww 「名が空の人が、前の現象 回復ません」 やべえコメント読んだ方が混乱するwww :まあソース自体は納期考えたら特筆するほど下手ではないのでどうとでもなる
名前に空文字列が渡された場合、 一件前の情報を取り込んでしまう。 原因不明で修正できません。
英語でコメント書けと最初に言わなかったお前がヘタ
>>518 俺の責任じゃないおw
コードレビュー班の怒号で社内プチ祭り中w
社内の人見たら普通に特定できるじゃん。 ただのバカだ
ファイルをテキスト形式で開いてるくせにバイト単位で処理しててシークしたときにバイト数がずれる とかほざいてた奴は発覚した瞬間にリーダーがクロスチョップで突っ込んでいったw
バグとヘタは区別しようね。
>>522 ファイルデータをテキストで送信しておいて、
途中で内容が切れるとか言う奴はちょくちょく見かける。
バグとヘタは区別しようね。
自分のコード
527 :
デフォルトの名無しさん :2006/07/29(土) 11:00:48
foo() { start: 処理1; if( エラー発生? ) { } else { 処理3; return; } 処理2; //回復処理 goto start: }
switch(nutupu){ case 0: nerupon = 1; goto NURUPO; case 1: nerupon = 2; goto NURUPO; case 2: nerupon = 3; goto NURUPO; case 3: nerupon = 4; goto NURUPO; case 3: nerupon = 5; goto NURUPO; case 4: nerupon = 6; goto NURUPO; case 5: nuruponn = 7; goto NURUPO; default: nuruponn = 0; goto NURUPO; } NURUPO:
しまtまちがえwt
>>528 それは、neruponとneruponnがある辺りを指摘したいのかな?
それに加えて ラベルが数値リテラル(マジックナンバー)なことと nerupon/nuruponn に入れる値が同様に数値リテラルなことと それらの対応が自明じゃない(これは外部コード作成者の問題で コード書くやつの問題ではないが。)ことだろうか。
case 3: nerupon = 5; goto NURUPO; は不要だと思います
switchといえば、C#ってフォールダウンコードってかけないんだよな Cくらい低級じゃなきゃ使う機会も無いからいいんだけどさ。
フォールダウン?
falll down
int main() { switch (0) { case 0: // 初期化処理 case 1: // 前処理 case 2: // 本処理 case 3: // 後処理 default: } return 0; } みたいなコードは下手だなぁと思うフォールダウンの利用方法でないかい。
ヘタというか何がしたいのか意味わからん。ほんとにそんな奴いるのか? ついでにfall throughな。
最適化目的で使う奴は居るだろ
>switchといえば、C#ってフォールダウンコードってかけないんだよな かけますよ
どう最適化に寄与するのか詳しく説明してくれ。
>>539 書けないだろ、switch内gotoのこと言ってる?
542 :
536 :2006/07/30(日) 11:39:43
>>538 >536のようなコードはこう書いたほうがそれっぽかったかも。
int main()
{
初期化処理();
switch (0)
{
case 0:
if (処理0()) {
break;
}
case 1:
if (処理1()) {
break;
}
case 2:
if (処理2()) {
break;
}
default:
}
後処理();
return 0;
}
確か、goto回避、保守性向上なんてことを言っていた。
どう最適化に寄与するのか詳しく説明してくれ。
うぜーコードだな
545 :
536 :2006/07/30(日) 12:12:29
漏れはどう見ても最適化とは関係ないと言いたいだけ。
処理の流れを考えられない奴にどう説明しろというのか。見たまんまだろ。
>538 名前:デフォルトの名無しさん[sage] 投稿日:2006/07/30(日) 10:54:50 >最適化目的で使う奴は居るだろ
switch文でわざわざgoto使うのか…
あらら、ファビョっちゃった
意図しないフォールスルーが起きるよりはマシって判断なんだろうけど だったら break; 文不要だよなあと感じる。>C# もういっそ switch (test) { case LABEL1:{ } caes LABEL2:{ } default:{ } } こんな感じの構文にして欲しかった。
switch (test) { case LABEL1:{ caes LABEL2:{ } } default:{ } }
うっほ
なんでこれ動くんですか?
switchで書けるのになぜかif文10個とかにわけて書いてるやつ勘弁してくれ。 処理遅くなるだろと。
>>554 変数宣言するために、スコープ作りたかったんだよ
無理矢理 case に中括弧つけても、インデントがうまくきかないんだよ
お前のエディタの都合かよ
インデントなんて飾りですよ
>>554 >処理遅くなるだろと。 こういう間違った考えを逆に知っていたため。
おっととっと夏だぜ!
17500件もヒットするとは
switchを使うとbreak書き忘れる馬鹿がいるため ユーザ側が使うのを禁止してたりする。あとブロックコメントも
またお前か
馬鹿と下手は分けようよ
すまそ、一般的には"下手"だな
以前別の職場で何度言ってもbreak書き忘れるやつがいたんだよ・・・
>>562 "また"と言われても"初めまして"ですが
そういうのを一般的には"馬鹿"と言います
どう考えても"馬鹿"に分類されるだろ
"マカ" と読むのでつか?
>>561 > switchを使うとbreak書き忘れる馬鹿がいるため
> ユーザ側が使うのを禁止してたりする。
バカじゃねーのか?
switch で break し忘れるような奴は、if でもどうせバグを作りこむ。
コードレビューきちんとやるとか、静的コードチェックツールを導入す
るなりしたほうがいいと思うぞ。
if( guhehe = 3 )
while (muhha == 3)
明らかに手動最適化を施して試行錯誤したのが見て取れるが 「そんなんちょっとよく考えるかデバッガながめれば 余計な事をしているのがわかるだろオイ、ってなコードを見たとき 無性に悲しく切なく甘酸っぱいあの頃の気持ちになれるよね。 Yes/No
>>571 内容はともかく、お前の文体に激しくいらつく
」
アルゴリズムとかの最適化した後でやったはずだろうな
日本語でおk
>554 switch〜case使うとインデントが深くなるから。 いやネタですよ?
577 :
デフォルトの名無しさん :2006/07/31(月) 21:01:43
構造体の中にあるポインタってのは結構やっかいだな。 構造体の中に構造体があって・・・が繰り返す構造を持ってる構造体の その階層のところどころにポインタがあって、それが参照だけじゃなくて、 インスタンスの管理までしてるとやっかいだな。 データを用意するときはまだいいけど。 解放するときは、キチンと順番に解放していかなきゃならないからすげー厄介だ。 デストラクタって大事なんだな。
解放関数(又はマクロ)ぐらい作るもんじゃないかい?
ヴィルト先生の著作なんか今時は読んでるやつおらんか
580 :
デフォルトの名無しさん :2006/07/31(月) 21:44:43
>>578 何それ?
今のところ一つ一つたどって解放してるんだけど、
なんかいい方法あるの?
free_window(WINDOW *p)みたいな、pの指す先の先まで解放する 関数を1つだけ注意して作れば、後は普段はそれを呼ぶだけ、と言い いたのだと思う。
もう、馬鹿・無知ネタはいいから
もう、人を馬鹿にするだけのコメントはいいから
>>581 いや、その巨大な構造体の先の先まで順番に解放する手間が問題でなw
まあ、なんつーか、クラス使ってくれってただそれだけだな。
やっぱ、デストラクタねーとどうしようもないな。
インスタンスを管理してるのがその巨大な構造体だけってのも
プログラムやりにくいんだよな。(設計うまくないから)
そうすると、生成したときのポインタとっといて、使いまわすとかする奴が必ずいるしね。
そうなると、インスタンス側の生存とポインタ側での生存の不一致が起きてバグが出る。
簡単なようだが、プログラム全域にこんなのがあるとさすがにどうしようもない。
ポインタの保持を普通にする奴が多いんだよね。
こういう巨大な構造体にしてそれがプログラムで唯一のインスタンスとかしちゃうと
アクセスするのが面倒で大抵グローバルに行きつく奴が多い。
普通はこういう構造にはしないんだぞって何度いってもゴーイングマイウェイな奴をどうにかしようか・・・
まあ、元をクラスで作らなかったのが敗因だよなw
いちいち関数名や関数名に先頭に大文字を使ったコード いちいちシフトキー押すの面倒なんだよ馬鹿
if (hoge == 1 && hage == 2) { hige = 3; } f と ( の間とか ) と { の間にスペースを入れてるコード。 ヘタっつーかカッコ悪いくて初心者ぽい。 if(hoge == 1 && hage == 2){
シフトキー押すのが面倒なのか・・・ createwindow registerwindowex で
set〜()とかget〜()とか使ってる使ってるクラス。
全部小文字でアンダーバーもないシンボル。 僅かな手間を惜しむくらいならコード書かなくていいから。
>>586 宗教的なネタは避けよう。
#でも空けないのはダサい。
「カッコ悪い」とか「ダサい」とかいかにも初心者臭い
class character{ int _hoge; public: };
空けようが空けまいがどっちでもいい。 ダサイと言ってるヤツがダサい。
class character{ int _hoge; public: void hoge(int h){ _hoge = h; } int hoge(){ return _hoge; } }; やはり真のオブジェクト指向にしたければ setterとかgetterは使うべきでなく↑のようにすべきだろう
595ですが タブキーでインデントして改行しようとしたら 書き込みぼたんをおしてしまったすみません
空けてる、空けてないよりも、統一してくれと。 ポリシーがないコードは見てていらつく
>>595 int hoge() const {return _hoge;}
おと、>586流に書くならint hoge()const{return _hoge;}か。
599 :
595 :2006/08/01(火) 00:46:16
593のかきこみはむしして下さい
俺は
>>586 派だw
なんかifと(の間とかは必要以上に間空けすぎな気がする。
if( hoge == 1 && hage == 2 ){
こうやってカッコとhogeとか2と閉じカッコの間にスペース入れる感覚がわからんw
夏だなぁ……。
>>601 お前が名。
お前見たいのを夏厨厨っていうんだよ。
夏に書き込んだ特に普通な人をなんでも夏厨呼ばわりして
この場の雰囲気を悪くしている典型的なお前。
>>600 前半と後半のギャップが……
誰もif ( hoge == 1 && hage == 2 ) {なんて話はしてないわけだが。
ところで、 pGrp->getImg(index)->getPixel(x,y)->getColor()->getR() みたいなの嫌なんだけどconst使ってあるときってどうしてる? 無理やりキャストしちゃう?
602 C言語学ぶまえに日本語学ぶのがさきだなアフォが
>>603 いや、俺は同じだと思うね。
ifとカッコの間を開ける奴は、カッコと変数の間も開けるに決まってる!
間違いない!
無理矢理キャストしたらヘタっぽいのでそもそもconst指定しない
>>604 そのコードのどこにキャストが入るんだ?
>>605 否定されるのが悔しいならはじめから発言しなけりゃよかったじゃないw
だって
>>601 でしょ?w
しなくていいレスだしよw
>>604 5行目の下りが理解できない上に6行目とどう繋がるかは判りませんが。
例えば仮に、getPixel()がconst Pixel *を返すのであれば、
const Pixel * pix = pGrp->getImg(index)->getPixel(x,y);
pix->getColor()->getR();
とすればいいと言う話なのですか?
>>606 私はそんな括弧の内側を空けるなんて歯の抜けた老人のような無様なコードは書きませんが、
括弧の外側も空けないような寸詰まりのコードも書きません。
TestFunc(hoge1, hoge2, 23, NULL, NULL); これを TestFunc(hoge1,hoge2,23,NULL,NULL); と書く人。
また、算術演算子の両側にスペース入れない人。
クラスのプライベートメンバ変数,関数に一々m_つける人って ダサくない?w ぱっとみmが多くて初心者っぽいw 男ならプライベートメンバ変数,関数にはアンダーバー(_)だけだろw
616 :
デフォルトの名無しさん :2006/08/01(火) 01:08:30
ぱっと見て下手なコードとコーディングスタイルの区別がついてないなぁあと思うレス
618 :
デフォルトの名無しさん :2006/08/01(火) 01:10:01
だけどヘタなのには変わりわないw
夏厨厨だとか言われようがあえて言うぞ。 夏だなぁ、と。
やっぱりstringとかvectorとかを再開発しちゃってるコードでしょう。 もう遅いわ不安定だわで見て欄内
MSの事かー!
空白がどうとか、名前付け規則がどうとかにケチをつけるヤツはヘタなコード書くよな
>>595 >setterとかgetterは使うべきでなく↑のようにすべきだろう
意味不明。setterやgetter、実装してるじゃん。こいつアホ?
空白はともかく、名前付け規則は重要じゃね?
俺流のスタイルに凝り固まってしまっているから 他のスタイルを許容できないし他人のコードを読んで よい所を取り入れたりといったことを出来ないんだろうな。
>>625 ほほう。privateメンバ変数のプレ、サフィックスがm_か_かが重要だと?
一人の馬鹿の釣りに、釣られまくるお前ら
>>627 ああ、そういう意味か。誤読してた。スマソ。
m_でも_でも良いが、メンバ変数とグローバル変数を同じにしてはいかんと思ただけ。
まあ、以下のように書く奴が大部分なんだがな。 if (hoge == 1 && hage == 2) {
空白に拘るアホはスルーした方がいいよ。 こいつは聞く耳持つことが出来ない思考硬直バカだから。
"()"の内側にスペースを入れない人が多いのを、心理学用語で何とかって いうというのをどこかで見たんだけど、なんだっけ?
ザヴァン症候群だな
あー、ゲシュタルト崩壊ってやつの意味がやっとわかったw
() の両側のスペースは () のフォントの問題じゃないかな。たいていのフォントでは 両方スペースなしにすると外側が狭すぎに見えるし両方スペースありにすると内側が広すぎに見える。
m_ でも _ でも構わないんだが、 その開発環境のベストプラクティスとして推進するつもりなら 入力補完で便宜図って欲しいよ。 hoge-> // この段階で入力候補が出る hoge->m // これを打ったと同時に hoge->m_ // ここまで埋まる(mで始まって次の文字が_になるメンバが居なければ)
俺、変数の型なんて変数名に反映しなくていいと思う。 でもメンバかローカルか引数かスタティックかグローバルかはパッとみてわからないといらつく。 //メンバ mUnko; //ローカル unko; //引数 aInUnko; aOutUnko; //スティック sUnko; //グローバル gUnko; 俺、オススメ。
不器用どもが美しいと思うコードはやっぱり汚いんですね。
>>619 夏に限った事じゃない。殊更、このスレでは。
644 :
デフォルトの名無しさん :2006/08/01(火) 13:12:23
//プライベートメンバ(あまり参照されないようにするためアンダーバー1つ _test; //ローカル test; //引数 test; //ステタィック test; //グローバル(中々参照されないようにするためアンダーバー2つ __test; でしょ。
>>644 > //グローバル(中々参照されないようにするためアンダーバー2つ
> __test;
アンダーバー2つを含む名前は C++ で予約されてる識別子。
C でも先頭についてるのは予約されてる。ダメ。
646 :
デフォルトの名無しさん :2006/08/01(火) 13:29:08
いま板で一番勢いのあるスレ(笑)
この板宗教論争ネタ放り込めばすぐ炎上するからな
648 :
デフォルトの名無しさん :2006/08/01(火) 13:55:29
__でも被んなかったら問題なし
これはひどいえさですね
650 :
デフォルトの名無しさん :2006/08/01(火) 14:03:46
何でもかんでもインライン指定(inline or __forceinline)するコード。 リリースビルドに時間かかんだよヴァケ
>>648 被らないことを保障できるの?予約されてるんだから守ろうよ。
ツレター
C++で/**/のコメントを使っているコードだな。
constのものをconstじゃなくキャストしてるコード。 まず設計自体間違ってそう
*サビを最後に3度上に転調して繰り返してるコード。古いだろw *必ずCかAmで始まるコード。 *セブンスばっか多用しているコード。実は分かってないのが多い。
657 :
デフォルトの名無しさん :2006/08/01(火) 14:45:13
下手 = 初心者っぽい ですか?やっぱり
const汚染を引き起こすC++の仕様がヘタクソ
659 :
デフォルトの名無しさん :2006/08/01(火) 14:47:36
でもあらゆる関数、変数をconstでがっちり固めてるコードも、あれ?ってなる
だからといって、全くconstを使わなかったり、一貫性のないconstの使用はヘタクソ
ここってネタスレじゃなくてネタ投稿した奴を煽りまくるスレな訳かい
662 :
デフォルトの名無しさん :2006/08/01(火) 21:31:19
自分が一番上手なコード書くんだよゴミどもというお方達の貶しあいなだけ
下手と一目でわかるネタを投下する奴の方が悪い
break 使いたいので、do { ... } while (0) 使ってるんだけど、だめか?
潔くgoto使うのもひとつの手。
おとなしく関数分割しとけよ
667 :
デフォルトの名無しさん :2006/08/01(火) 23:13:37
捨てたいっく と読めるな
やらねぇよそんな変な処理
俺もやだな。 ループの意図を含まないのに見た目ループっぽいのが激しく香ばしくウンコ
そして朗らかでたくましいウンコ
むしあつくて蒸れるうんこ↓
後の秀吉である。
家康うんこもらしたんだよな お前も真似したら400年支配できるようになるぞ↓
ms-its:mhtml:file://c:\[
正直LinuxやApatchのソースとか見てしまうと、 コーディングスタイルなんぞでコードの質を判断してる奴を 見かける度に和んでしまう。
Perlはソースも汚いのか。
見ればわかるんじゃね
apatchのソースとか覗く気力が無い
Rubyはソースが綺麗だって言う話聞いたけど、どう?
>>679 apacheのどのバージョンのどのソースのことを言ってるのかしらんが、
最近のは綺麗なもんだぞ。
socket周りはとくに汚い
689 :
デフォルトの名無しさん :2006/08/02(水) 03:01:04
GCCはキレイだぞ。
>>328 自演してるおまえら自分のレスのHTMLソース見てみろ
みたらなんかわかるんか?
フィンローダのより千言万語が読みたい
今はinlineあるから使わないけど、Cでマクロ書くときにwhile(0)使うしかないときってある
linux のカーネルだってRubyソースだって do { ... } while (0) を大量に使ってる. OSとか言語処理系とか速度が重要な場合には独立した関数にできなくてマクロ使うしかない時がある. #define HOGE(...) do { ... } while (0) とやるのは常套手段じゃない?
ぱっと見て「ヘタだなぁ」と思う教え方。 それじゃ夏厨に理解してもらうのは難しい。
マクロにdo whileを使うのはまた別の話だろ。
>>695 いや、694はへたじゃない。
linux やRuby でも使っていると権威付けすれば、納得するだろw
夏厨に「理解」してもらう必要はない。
よりによってRubyかよw
それはたまたまRubyの話が出てたから例に出しただけで 他の言語処理系についても大抵使われてるよ
>>686 Rubyは文法のせいもあってなのかパーサや評価器が凄いことになってる
ruby-*.tgz 落としてとりあえず展開だけしてみたらいい。 100近いファイルがトップディレクトリ直下にあるのを見て 何を思うかはあなたの勝手だが。
>702 rubyってフォルダを経由して目的のファイルにアクセスするわけじゃないから 高速化に役立つよな
aIntegerとかaObjectってのをみると、ちょっとイラっと来る。 けど、表には出さないようにしてる、 こないだアメリカ人が書いたソースでaObjectを見てからは…
冠詞のつもりではないんじゃないか? 二つめや三つめが bObject cObject かもしれない。
>>707 それなら objectA, objectBというふうにするんじゃない?
感心できないことには変わりがないが。
何らかの水平座標を表す変数、 hogeX か xHoge か、今でも時々悩む。
漏れだったら素直に構造体かクラス作るね
>>710 で、そのメンバ変数の名前を hogeX にするか hageX にするか悩むと。
メンバならx,yでいいから、って話だよな?
? hage が笑い所なのでしょうか…?
hage_x とかにしてる
Entry entrys[]; Box boxs[]; Node childs[]; datasは微妙。 matrixesとかindexesは、もっと微妙。 matrices, indicesじゃ臭いし。
配列変数名を複数形にしていないのは論外。 もちろん、複数形じゃなくてもSomeArrayとかSomeListとか複数であることをimplyする名前ならOK
まぁ論外と完全に言い切るアホも論外なんだけどね
>複数であることをimplyする名前 >複数であることをimplyする名前 >複数であることをimplyする名前 >複数であることをimplyする名前 >複数であることをimplyする名前
>>715 こういう英語のミスやスペルミスはそれ自体頭悪いが、
指摘したとき「それがどうした。コードの本質には何も関係ない」と開き直ると頭悪さ倍増。
こういうことにぞんざいなやつは、得てしてコードの内容に対してもぞんざいなものだ。
720 :
デフォルトの名無しさん :2006/08/04(金) 10:58:08
配列にsつける香具師なんて初めて見たw
今日も夏厨が己の経験・知識不足を晒すスレになっとるな
単数複数両方の変数(item, items[])を使い分けるようなクラスを 年に1回くらい作りたくなる衝動に駆られるがヘタっぽいので堪える。
>>715 「誤り」を「微妙」、「正解」を「臭い」と表現する
ユニークな感性をお持ちですね。
ぬるぽ
725 :
デフォルトの名無しさん :2006/08/04(金) 14:40:32
/*┌─────────────────────────────────── ┌┼─────────────────────────────────── ┌┼┘ ◆ library name ver0.3.2 ◆ 2007年8月4日 └┘━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━-*/ #include <stdio.h> /*━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━☆ ┃hogehoge ┃ ☆━━★━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━★ ┃説明┃ほげほげ ┃ ★━━☆━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━☆ ┃書式┃BOOLhogehoge(HANDLEhdr,INTnum) ┃ ☆━━★━━☆━━━★━━━━☆━━━━━━━━━━━━━━━━━━━━━★ ┃パラメータ ┃hdr ┃HANDLE ┃hdrの説明 ┃ ┃ ┃num ┃INT ┃numの説明 ┃ ★━━━☆━★━☆━☆━━━━☆━━━━━━━━━━━━━━━━━━━━━☆ ┃戻り値 ┃BOOL ┃戻り値の説明 ┃ ☆━━━★━━━★━━━━━━━━━━━━━━━━━━━━━━━━━━━━*/ BOOL hogehoge( HANDLEhdr, INTnum ) { …こんなの、見たらどうする?
>>725 そんなもの作ってる暇があったらソースを書けと
すげー 漏れも今度からAAでコメント入れてみよう
コメントに顔文字使ってるソースなら見たことある。 検索しやすいからなんだって。
/* ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ( ´∀`) ( ´ー`) ( `∀´) ( ゚ ∀゚ ) ( ^∀^) ( つ┳∪━━∪━∪━━∪━∪━━∪━┳⊂ つ | | | ┃◆ library name ver7.7.4 ◆ .┃ | | | | | | ┃ Last update 2007.8/4 ..┃ | | | (__)_) ┻━━━━━━━━━━━━━━━┻ (__)_)*/ #include <stdio.h> /* ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 〜′ ̄ ̄( ゚Д゚)< hogehoge だゴルァ UU ̄ ̄ U U .\_________________ ―――――――――――― 説明:ほげほげ __ __ .r――――――――――――――――――― ∨ |書式:BOOL hogehoge( HANDLE hdr, INT num ) 日 凸 U | ______ ≡≡≡≡≡| / .∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ U ∩ [] ∨% (゚Д゚ ;) < パラメータ __ ∧∧___ .∧∧|つ∽)_ | hdr HANDLE hdrの説明 ( ,,)日 ( ,,)∇ | num INT numの説明 ― / | ――.../ | ―――.| 戻り値 \(__.ノ \(__.ノ | BOOL 戻り値の説明 ━┳━ ━┳━ \___________*/  ̄ ┻  ̄ ̄ ̄┻ ̄ ̄ ̄ ̄ BOOL hogehoge( HANDLE hdr, INT num ) {
ぱっと見て「夏だなぁ」と思うスレ
>>731 ぱっと目に付く範囲でとりあえずAAラス一行コメントアウト漏れでエラー
"等速フォント"に該当するページが見つかりませんでした。 検索のヒント * キーワードに誤字・脱字がないか確かめてください。 * 違うキーワードを使ってみてください。 * より一般的な言葉を使ってみてください。
等則フォント の検索結果 約 84 件中 41 - 49 件目 (0.45 秒)
等幅フォントで揃えられてないコード見ると微妙に感じる 等幅フォント用に揃えたコードをPフォントで見てるくせに 揃ってないねとか文句言われるのは腹が立つ
Bjarne Stroustrup 先生はプロポーショナルフォントお勧めですよ。
742 :
デフォルトの名無しさん :2006/08/05(土) 01:56:26
コメントがもりもり(囲っちゃったりして)書いてあると 「どうですかっ!?大学でちゃんと勉強してきましたよ!!」 みたいな感じがして…少年刑務所卒の俺はよく嫉妬する。
一行ごとにコメントついてるの見ると頭弱いのかと思う。
不慣れでヘタな奴には strcpy(s, "// 文字列をコピー"); でさえ重要な情報だ。
ヘタとか言う問題じゃねーな
結局ヘタってのは文法・ライブラリ・設計等々に対する理解の浅さからくるものだからな。
>文法・ライブラリ・設計等々 なにか、とても大事なものが抜けているような気がする、なぜだろう
つ 747の国語力
引数が20個以上ある関数。 構造体使ってポインタで渡せよって言いたくなったw
>>738 バッファオーバーラン起こすような間抜けを対象に書かれていますから。
どんなサンプルでも完全なエラーチェックを要求する融通のきかないタイプだな
マニュアル人間。
>>753 argcはひどすぎるだろ。
中途半端に3だけチェックしてるし。
ホント融通きかね〜なw
>>752 エラーチェックを省略してるってより、バグだよな。
こんな短いコードなのに、コーディングスタイルが統一されてないし。
ぱっとみてへたくそって思わせるコード。
どこのスレでも得々とサンプルの揚げ足取りする輩がいてネタ的におなか一杯
ヘンに抽象的な話とか、あまりなさそうな例とかで話をしても面白くないだろ。
20行以上あるコードは大抵ケチつけようがあるからなw 誰から見ても完璧なコードなんて、ケチつけてる本人も書いて無い癖にw
分かってるやつが簡潔にするために省略して書いてるのと、 下手なヤツが書いたコードの見分けがつかないやつも、下手なんだろうな。
オプソ物のソース眺めるとヘタというか雑で汚いのが多いな。
サンプルコードは変に書くと、書き手の地力がばれるな。
>>762 客に納品するわけじゃないし、てきとーでいいでしょ。
とりあえず規約が統一されていないものが一番醜悪に感じる 何年も保守してるとかならともかく、 3000行程度の小規模プログラムで統一されてないコード見ると失禁しそうになる
,. -ー冖'⌒'ー-、 ,ノ \ / ,r‐へへく⌒'¬、 ヽ {ノ へ.._、 ,,/~` 〉 } ,r=-、 /プ ̄`y'¨Y´ ̄ヽ―}j=く /,ミ=/ ノ /レ'>-〈_ュ`ー‐' リ,イ} 〃 / / _勺 イ;;∵r;==、、∴'∵; シ 〃 / ,/ └' ノ \ こ¨` ノ{ー--、〃__/ 人__/ー┬ 个-、__,,.. ‐'´ 〃`ァーァー\ . / |/ |::::::|、 〃 /:::::/ ヽ / | |::::::|\、_________/' /:::::/〃 ! l |::::::| ` ̄ ̄´ |::::::|/ ノ\ |::::::| |::::::|
これはつまり、一番醜悪なのは、お前の容姿だ、ってことだろう
ぽっ
>752 とりあえずCなのに行番号は止めて欲しいなw
771 :
770 :2006/08/05(土) 19:42:13
釣りでしたw 釣られてやんのバーカw
顔が赤いよ
>>752 十六進数の文字列を数値に変換するところからおかしなわけだが・・・
774 :
770 :2006/08/05(土) 23:17:58
>771 こんばんわ漏れ。 どこの誤爆だい?
>>752 >>757 正常終了時の戻り値が 0 っつーものあれだな
このソースのスペースの空け方も違和感あるし
多分VB中毒者なんじゃないかと思わせるね
>>775 >正常終了時の戻り値が 0 っつーものあれだな
お、C言語の最初の一歩から否定しちゃったよこいつw
馬鹿丸出しw
もしかしてシェルと混同してない?
>>777 お前UnixとWindowsで使われてるCを否定する気か。
つpthread
おまいら printf の戻り値見てるか?
stdio なんてつかってるやつはばかです
>>782 printf の戻り値をみるコード…
ぱっと見ただけじゃよくわからんコードになりそうだ。
int const static hoge;
int const long static unsigned volatile long hoge;
constかつvolatileな変数は存在しうる。
馬鹿か
ぱっと見て「必死だなぁ」と思う粘り方。
相手が必死に見えるのって、自分の心理状態の投影なんじゃないの? とりあえず「馬鹿か」とくらいしかコメントできないとか。
>>789 =792
791が自分宛てと思ったんだろ?
それって必死って自覚してる訳じゃん。
で、馬鹿と指摘されても、自分の愚考を省みない馬鹿か。
>mainの先頭で、argcをチェックして、3以外だったら抜ければいいのに、
>中途半端に途中でチェックしてるのっておかしくね?
お前、コマンドライン引数の数によって処理分けるとかしないのか。
いかにも普段書きなれてないやつが煽ってるって感じだよな。
ろくにサンプルソース推敲しないで記事うpったってだけだろ。 他にネタもないし不毛だろうが好きにやっとけ。
>>789 前半はどうでもいいが
>いかにも普段書きなれてないやつが書いてるって感じだよな。
ここは激しく胴衣
そうだよ?
まあ、確かに制御構文と ( の間にスペース書かないのは素人って感じがするな
800取れないお前見たいなど素人はな↑
if ( ↑これか? 雑魚ーでぃんぐにしか見えんが別に叩くもんでもない
if( a ) if (a) if(a)
その昔、ifと'('の間に空白を入れる理由は関数と区別するため、 とか書かれた書籍を読んだ記憶があるが、 痛い子向けの書き方なんだなぁと思った。
K&Rはif (a)で書かれてるな 真似てもれは読んでんだぜ すげーだろ自慢したいんだろうな スペースうんぬんでヘタとかは どうでもいいがやはりループするなw
return (0) って言うコードも一時期よく見かけたな。
巧いとか下手とか、書きなれてるとか書きなれていないかは別にして、 mainと同じ行に"{"を書く奴を、俺は今までに見たこと無い。
Cの話ですが。
んなもん化んけ内
ゼロから書き始める場合は同じ行に{書いちゃいそうだな、俺は。 大抵、IDEとかが勝手に付加するから自分で書くことは無いんだけど。
ああ、「
>>789 のリンクを開いての感想」ってのが抜けてました。
まず強烈な違和感を受けたのが、mainの行に"{"があったこと。
hello.c main(){puts("hello, world");} というテストコードは今まで20回くらいは書いたな。 だからどうってことでもないんだが。
それはさておき、行番号は別にして、あのコードをコピペしてコンパイル できないのがまずいな。 あの手のサイトとしては致命傷だろう。
>>813 いやまあ、君が違和感を感じないんならいいんだ。
俺は感じたということだから。
お前はスレタイ100回読んであと半年ROMっとけ
>>814 だな。信頼度が一気に低下する。(IPAというのがどの程度の信頼度があるのか知らんが)
>>814 おお、ほんとだ。
どういう経緯でこのコード載せたんだ?
記事の内容よりまず、バグを取る演習だったんだよ
>>810 そういうのを書き慣れていないと言うんだろうな
この手の、コード例を解説する記事に出てくるコードはたいていそういうワナが仕掛けられている。 それはレベルの低い読者や、読み方がいいかげんな読者をひっかけるため。 この業界の知識本にはよくあること。
セントラル・コンピュータ・サービス株式会社がウンコということは分かった
んなわけあるか
コンパイル出来ない糞コードのせてるんじゃねー、というメールを送った 夢を見た。
まだやってんのかよ・・・
また来たのかよw
>>822 セントラル・コンピュータ・サービス株式会社の中の人、ご苦労様です。
サイトのねたがさめないうちに /* */コメントうぜぇ
初心者じゃないんだから、コピペは無いだろ。
あー、IPAのコードの話か? コンパイルもできないようなクソコードをのせることを擁護したいのかな?
社員乙としか言えない
まぁ特定の会社批判はしたくないんだが、件の会社は社内のコーディング標準も なければ、レビュー文化もないんだろうな。チェックしなかったIPAも糞だが。 でも、こんな会社多そうだ。
社員なら、こんな自社の評価を貶めるようなコードをネット上から廃棄、あるいは修正するよう、 関連部署に連絡しとけ。
vcでコンパイルしてみたが、snprintfが定義されてないってのと、 コロンが何故か存在しないってだけじゃん。 コロンは多分何かで変換した際に飛んだんじゃないかね。 こんなことでここまで批判するって、なんつーかスゲーな。
javadoc は /** doc */ なんてハンパなスタイルにせずに どうせ新しい言語なんだし、と割り切ったスタイルを提案して欲しかった。 個人的には perl の pod 形式みたいなやつが良かった。
なんでこのスレにそんな愚痴を吐いてんだ? Javaの愚痴ならJavaスレいけ。
>>838 お前みたいな奴が、手元でテストしたコードと、リリースビルド用のコードのリビジョンが違ったとか、
あとで騒ぐんだと思うよ。
#include <iostream> class Main { public: Main() { std::cout << "hello" << std::endl; } } program; int main () {}
>>838 コンパイル出来ないコードが書籍のサンプルとして載ってたら批判するくせに。
>>843 コンパイルしてみたけど、なんで警告出ないんだ・・・
>>846 は?正常なコードなんだから出るわけないだろアホ。
>>849 擁護?何いってんの?
こんなことでここまで批判するって、なんかすげーなって言っただけじゃん。
847はオレに意味不明の非難したからだろ。
少しは頭使えよ。
>>838 あのさー、公開したコードにバグがあるだけでも恥ずかしいのに、
コンパイルすら出来ないというのは、万死に値する恥ずかしさだよ。
>>850 は?「なんで警告出ないんだ・・・」への模範的解答ですが?
>>853 あのコードは「下手なコード」として出した、ということですね?
>>854 は?なんで出したのが俺になるんだよ。ははー、さてはバカですね?
HTMLでコード公開してるところで、 全てコンパイル通るってところの方が少ない気がするけど。 しかし、善意でコード公開はしちゃダメだなw 揚げ足とろうと虎視眈々と狙ってる人が居るからw
つーか社員って、そもそも何の社員だってのw
冬だなぁ
>>859 セントラル・コンピュータ・サービス株式会社。
あまり取り繕わないほうがいいよ。墓穴掘るだけだし。
なんで糞コードを擁護するのか理解不能。 このスレは糞コードを批判するスレだろ?
本気で社員扱いだw まぁ、論理的な反論を思いつかないバカの常套手段として 2chの名物ではあるがw
>>838 コンパイル出来ないということは、あのページにあるスクリーンショットの元ソースでは無いということだ。
ただそれだけで、説得力が大きくマイナスされる。
それから、何段階かあるはずのチェックが、全くなされていないように見えることも批判されてしかるべき。
>>865 擁護も批判もしないなら、発言すんな、馬鹿
i<size が ilt;sizeになってるトコロも皆万死に値するよなw
>>866 社員乙厨乙
>>867 擁護はしてないが、馬鹿なお前の批判はしてるよ馬鹿w
>>868 擁護も批判もしないなら、発言すんな、馬鹿
最後には同じことしか言えなくなる馬鹿のタイプか…。
まあ、何というか、説明のためのコードがコンパイル出来ないことぐらい たいしたことじゃないというのであれば、議論は平行線ですな。 コンパイル出来ないことをどう思うかは、人それぞれってことで。
>>871 お前が一体どのような主張をこのスレでしたというのだ?
また突然意味不明なことを口走ってる。もう末期か。
お前がな、だってw
>>857 Webでコードを公開している人は、注意深くコンパイル可能であることをチェックしてると思うけど。
素人が趣味で公開しているならともかく。
コンパイル出来ない件を、くだんの会社にメール送っといたから、 やる気があればコンパイルできるコードに差し替わるでしょう。
誰もセキュリティについては一言も言及しないんだなw 字面以上に踏み込むのは難しすぎますかw
強いて言えば、下手と手抜きはまったく別の問題だ。
wつけてる奴って馬鹿ばっか(実はひとり?)
教科書に載ってるコードがコンパイルできないなんて珍しくもない。
>>884 wの個数
バカ指数[%] = ───── × 100
全体の行数
コンパイルできない中途半端なコード載せるくらいなら、 擬似コード載せたほうが良心的だ。
ここは今日もサンプル貶すのが精一杯な方々の集うスレですねw
今日もキチガイが常駐するの?
>>885 活字を使う場合は、しかたないとも言える。
が、Webでは痛い。
あまりにこだわりすぎると本人かと思ってしまう
他のIT情報系のコード例も結構間違いが多い。 フィードバックを受け付けているページだと指摘できるのだが・・・
サ ン プ ル し か 話 題 に 出 来 な い ゴ ミ グ ラ マ w
及び、煽るしか出来ないクズ
897 :
896 :2006/08/07(月) 19:12:11
サンプルくらいコンパイルせんでもうごけるのかけるんだよ低脳ども といいがら実はできてないという事実がサンプルコード
実行例がどこから出て来たのか気になる
実行例のスクリーンショット取った後で、ソースが入ってる全PCのHDDが飛んだため、 記憶でワープロで書いたんだよ、きっと。
さあ、スレ違いの話題をあと100回続けよう ゴールは目前だ、がんばれw
>>900 だからそもそもセキュリティ推進サイトが
復元可能なバックアップすら取ってないことが(ry
>>903 元々不要だと考えればリスクマネジメント的にもおk
そして趣味で書き直したと。
ってか粘着しすぎ。
ふーん 趣味で書き直したソースをあげるんだ
BOOL値かどうかを明確にしたいときに 変数名の先頭にbを付けるのってヘタですか? bSucceedとか
そうすることによって何かの役に立っているならば、それでいいんじゃないか。
VC++ 使っての Win32 開発ならやってもいい。 理由はリファレンスコードがそうなっちゃってるから。 それが(昔の)MSのプラクティスである以上、 従ってしまった方が問題が起こりにくい。 それ以外ではやらない方がいい。と思う。 宣言部見れば分かるものを、わざわざ名前に埋め込む必要が無い。
>>906 bだとbinaryとかと勘違いしやすいので
boolSucceedとする。
それだったらisSuccessfulでいいんでない?
規約に従うことにうまいもヘタもねーよ
912 :
デフォルトの名無しさん :2006/08/08(火) 11:10:17
俺なら is_success とするな
check_xxxという名前で真偽値を返すコードを見ると結構もにょる。
is〜の形式で書きたくても英語があれなんでうまく書けないことが結構ある。 isgetとかisrewriteとか。
check_xxxという名前でIOアクセスのあるコードを見ると禿る
>>914 それ日本語で言うと、なんというのをネーミングしたかったんだ?
(過去に)取得したことがあるか (過去に)再書き込み済みか こんな感じかな?
[is_|has_been_]retrieved [is_|has_been_]rewritten
dispatched
再書き込みが、上書きというニュアンスならoverwrite(overwritten)も 考えられるな。
914 の命名から逆想像したわけだけども、先の isget 相当: (過去に)取得したことがあるか は、別のものを意図しているかもしれんね。 # 自分のケースでは、そのような内容を求めるシーンに当たったことないので… 後の isrewrite 相当: (過去に)再書き込み済みか については、ぼちぼち出会うことあるけど。
それをネーミングするなら、iswrittenだろ
isget . . . m9(^Д^)プギャー
>>917 >(過去に)取得したことがあるか
fooを取得したか→has_foo()
>(過去に)再書き込み済みか
これは再書き込みでどんなstateが有効・無効になったかを表す関数名の方が
いいんじゃないか(foo_enabled()とか)
forとかwhileループ { if (条件) { 数十行 } } せめて条件逆にすればインデントが浅くなるのになぁ。 forとかwhileループ { if ( ! 条件) { continue; } 数十行 }
927 :
デフォルトの名無しさん :2006/08/09(水) 19:10:03
>>927 おにーたんではないが、「数十行」部分のインデント。
>>926 インデントの深さより、仕様に従った判断を優先しちゃう。
仕様が「(条件)なら(数十行)の処理をする」となっていれば、
上の形にするのが自然かと。逆にその仕様に対して下のように
書くのは良くないことなんじゃないかな、って思う。
>>926 俺ならそもそも
関数一つで数十行もあるってだけでヘタに見えてしまう。
そんなに長いならもちっと細かく関数に切り出したくなる。
931 :
927 :2006/08/09(水) 21:00:06
>>928 あー・・なるほど。
>>930 そこかよっ
まぁバラバラにしすぎても見づらくなりそうだけどな
インデント嫌ってcontinueは結構使うな。 逆にリソースリークを防ぐ為にこういう深いインデントのコードも書いたり。 if(init1()){ if(init2()){ if(init3()){ execute(); done3(); } done2(); } done1() }
自分の場合だとCならgoto様の出番だな。C++だとRAIIで行くけどな。 if(!init1())goto ERR0; if(!init2())goto ERR1; if(!init3())goto ERR2; execute(); done3(); ERR2: done2(); ERR1: done1(); ERR0:;
if(!init1()) return; if(!init2()){ done1(); return; } if(!init3()){ done2(); done1(); return; } ... はヘタだなぁと
continueはそもそもあまり使ってる場面すらほとんど見かけないな。 名前がよくないと思う。PerlやRubyだと相当物がnextで分かりやすい んだが。
#define next continue
うっほ
>>936 やばいw
ifとかforに手を出しそうだw
盲目的アンチgoto厨乙
#define next continue ; ; /* link list */ typedef struct node{ struct node *next; int data; } node_t; ; ; アーー!
>>933 これはそんなに悪くないと思うな。
doneとかexcuteの部分が関数や2~3行のコードに限るなら。
goto文ってだけで毛嫌いする香具師が見たらすぐ捨てるだろうな
逆に、goto使うのってこの場合だけちゃうん
馬鹿に対して、下手に「gotoも有用なケースがある。」なんて教えると とんでもないところで使うようになるかる。 それならいっそ、gotoを完全悪にしてしまって、基地外が素晴らしいコードを生成する余地もない世界を作ってしまおう。 gotoの有用さに気付けない人間は、やはりgotoを有用に使うことなど出来ないのだから。 ここは一つ、その愚か者どもに心の底からgotoを嫌ってもらおうじゃないか。 本質を見抜けないマヌケどもは、この宗教をマヌケどもに説き、広め、 その有益さを見抜ける一部の人間だけがgotoを使う世界になればいいのだ。 ―goto絶対悪教 開祖(独身)
実コードでgoto悪用しているはベーマガ以外で見た事ないんだがな。
>>946 Cだと関数の最後にある後処理へ飛ぶ goto って普通に見かけるが。
悪用だろ あちこちとびまくるやつ
949 :
デフォルトの名無しさん :2006/08/10(木) 00:10:28
gotoじゃなくgosubならDr.Dも許してくれるさ。
大丈夫、奴は既に死んだ。これからはgotoを心置きなく使えるさ。
ネストしたループからの脱出に限りgotoを許容する。
後藤さん、後藤さん
953 :
後藤 :2006/08/10(木) 00:43:02
('A`)
ぱっとみて「GOTO文スレ」と思うスレ
一気にループを2つ抜けるbreakとかあればいいのになぁ
その発想がヘタクソ
JavaやPerlには普通にあるね、ラベル付脱出文。
>>956 がヘタクソだと見た。
>>957 8年もプログラムを組んでいるがそんなもんが必要だと感じたことは一度もねぇw
必要かどうかが問題ではない。有用なものは取り入れられる。 ラベル付脱出分が採用されたのは、 可読性を損なわず、余計なフラグや比較演算なしで多重ループを制御できるから。 Loop: while(<IN>){ foreach my $b(@b){ last Loop if $b->hoge($_); }}
>>959 関数にわけてreturnで抜けろよw
可読性上がるぞw
Perlで可読性とかいってる時点でギャグだと気づけよw
>>960 典型的なヘタクソのコードだな。
ムダに行数が増える上に余計な比較演算が増えて、
しかも本人は構造化したつもりになってる。
ラベル付breakがあれば簡潔に書ける場合がある、は真実。
しかし CやC++ にはそれがないので、
gotoで代用するか
>>960 のようにするしかない。
>>956 のような発想をしてしまうのは
「Cの書き方でもキレイだ」ということにしたいからで、
それは一種の職業病と言える。
今の C,C++がベストだ、という思い込みの一種。
多重breakかラベルつきbreakには同意するが、>962には同意しかねる。 関数分けても比較演算は増えないと思うのだが。 いや寧ろ、関数を分けて比較演算が増えるようならそれこそ関数分割が下手なのだろう。 どうせ関数呼び出しのコストはコンパイラが何とかしてくれる。
ぱっと見ていつもの宗教論争スレ
mallocしてfreeしてないコードはヘタだなぁと思う。
>>965 演算は増えないな。C99かC++なら。
しかし無闇に関数に分けて「可読性があがる」は間違いだと思う。
構造化する時はまず変数の管理を考えないといけないが、無闇に関数分割すると手間が増える。
多重ループが絡むケースはたいてい使ってる変数が多いからなおさらだ。
>>967 わざとfreeしないものを除けば、それはヘタというよりバグ。
関数切り分けに失敗したのか 無計画な拡張を続けた結果なのか知らんが どの関数にも特定のコードがコピペしまくってあるのを見ると これはもう長くないだろうなって思う
一、二文字の変数がたくさんある。
>>970 複数の関数にコードコピペが散在しているのは、明らかに関数化をサボった結果だな。
関数内コピペは、気持ちはわからんでもない、ということもある。
メジャー言語でローカル関数が使える言語はそんなに多くないからな……。
変数名だけでなく関数名にまでハンガリアン記法を徹底しているコード
int iSomeFunc(int iFoo, char* pszBar);
typedef struct {...} STRUCT_T;
void vOtherFunc(STRUCT_T *pstHoge);
(ハンガリアン記法自体の是非はスルーで。
>>970 元のソースをいじるとバグが出るからって
ほとんど同じ処理をコピペする人がいる。
その部分の仕様変更があると大変だからと言っても全然聞かないし。。
ハンガリアンの悲しい歴史はJoel on Softwareで知った。 どんなコーディングルールも最初は「よかれ」と思って作られるのであって、 決してプログラマを苦しめようとしてるんじゃない。でも……
T_T
errordef.h: MSG(NO_ERROR, "no errors"), MSG(xx_NOT_FOUND, "not found"), ... errors.h: enum ErrorCode { #define MSG(e, m) e #include "errordef.h" #undef MSG }; errors.c: #include "errors.h" const char *Messages[] = { #define MSG(e, m) m #include "errordef.h" #undef MSG };
それがDRY(Don't Repeat Yourself)ってやつだな! 違うような気が……
>>977 gcc のソースで大量に見た覚えがある。
gcc死ね ・・・あ、俺使ってたわ
for(;i==j;) {...}
>>982 コードの話じゃないが、ターゲットがピンポイントで渋いDLLでワロタw
よく見たら「ヘタだなぁ」と思ったコード その1
COMを使っていてReleaseが出てくるコード。 自作でもなんでもいいからスマートポインタ使えよと思う。
>>988 やっぱり「ヘタだなぁ」と思う。
まずC++使えよと。
990 :
デフォルトの名無しさん :2006/08/11(金) 13:50:54
先祖代々の家訓でC++だけには手を出しちゃいけない
だからってObj-Cに手を出さなくても
Fileを使っていてcloseが出てくるコード。 自作でもなんでもいいからスマートポインタ使えよと思う。
mallocを使っていてfreeが出てくるコード。 自作でもなんでもいいからスマートポインタ使えよと思う。
それは、スマートポインタ使えるならnewしろ、だな。
主和ね
次スレあったっけ
#include <stdio.h> int main(int ac, char *av[]) { __int64 a = 2981335618776963; printf("%s", &a); return 0; }
ゲト
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。