[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 23:09 / Filesize : 223 KB / Number-of Response : 992
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミングの下手な奴の特徴 0x01



1 名前:仕様書無しさん [2009/11/23(月) 23:18:49 ]
どんなに努力しても予習しても
アイツは速さも技術も成長しない・・・
そんな相手がいるはずです。

そんな人達と一般人と、一体何が違うのか。
考えてみても分からない。


418 名前:仕様書無しさん mailto:sage [2010/06/14(月) 01:45:28 ]
>>416
まあそだね、厳密に言えばプログラミングできないわけじゃないね。
でもプログラミングにおいて演算子は使う頻度高いし、
俺めっちゃ低学歴で素数わからない系だったけど
論理演算はエンジニアになってすぐ自分で調べた

419 名前:仕様書無しさん mailto:sage [2010/06/14(月) 01:45:44 ]
> ○○大大大好きな○○オタク募集!
って書いてあるんだから、○○が好きじゃないんならお断りした方がいいかと。
好きならあとは条件面の交渉だけだな。

420 名前:仕様書無しさん mailto:sage [2010/06/14(月) 01:50:19 ]
>>419
そうだね好きだしいいかな。条件面で判断する事にするよありがとう。
気になったのは兵隊として一時的に雇われる結果になると怖いなと。
PLやPMへの展開は期待できないのかなあって。

421 名前:仕様書無しさん mailto:sage [2010/06/14(月) 02:25:58 ]
>>420
キャリアとしては大して意味のない一兵卒としての仕事でも、
何もしてないよりは遙かにマシだしな。

422 名前: ◆HoaeMW/Ya2 mailto:sage [2010/06/14(月) 04:47:38 ]
>>416
お前がまず勘違いしてる。(笑)
論理演算使ったプログラム(笑)の(笑)サンプル(笑)貼り付けてみろよ(笑)

どんだけ車輪の(笑)再発明が(笑)好きなんだ(笑)
笑わせんなよ?(笑)

423 名前:仕様書無しさん mailto:sage [2010/06/14(月) 04:58:47 ]
>>422
だから知らなくてもプログラミングはできるって言ってるだろw
文句は>>413に言ってくれ。

424 名前:仕様書無しさん mailto:sage [2010/06/14(月) 05:45:18 ]
>>423
何も文句言われる内容書いてはいないんだけど、
論理演算できなくたって充分プログラミングはできるよ。
ただ、知ってればと言うか知っていた方がいいのは間違いない。
他のスレで書いたけど逆に素数なんて知らなくても良いと思う。

結局実際仕事で使う大体のプログラミング(WEBだらけなので)は、MVC分離の理解、
TCP/IPの技術だったり、OOPの知識だったり。
後は勢いと努力。DeNAの川崎なんてまじ低脳なのに大金手に入れたから天才とか言われてるし。

425 名前:仕様書無しさん mailto:sage [2010/06/14(月) 06:05:28 ]
>>424
>>423>>422に対する煽りだから弾よけにされて気に障ったんならすまんかった。

426 名前:仕様書無しさん mailto:sage [2010/06/14(月) 07:37:42 ]
>>425
こちらこそすまんかった。
なんか実績ガンガン残してるのに、正社員に手柄持ってかれまくってる
現実が最近見えてきて腹たってた部分があった。
フリー偽装で食ってたせいなのか正社員の書類選考落ちばかり続いていらだっていた。



427 名前:仕様書無しさん mailto:sage [2010/06/14(月) 08:07:58 ]
一度フリーに落ちたら正社員には這い上がれない

428 名前:仕様書無しさん mailto:sage [2010/06/14(月) 09:28:22 ]
偽装の正社員(特定労働者派遣?)っぽいとこはガンガンスカウト来るけどな。

429 名前:仕様書無しさん mailto:sage [2010/06/14(月) 21:54:53 ]
論理演算を何となくしか理解していないやつってのは以外といる
だから条件を整理できなくて、ものすごく長ったらしいif文とか書くんだけど
自分でもよく分からなくなってしまう。

↓こんなif文とかもたまに見かける
if( hoge ) {
/* 何もしない */
} else {
....
}

430 名前:仕様書無しさん mailto:sage [2010/06/14(月) 22:09:50 ]
>>429
条件が成立する場合の考慮漏れではなく、
考慮の結果、条件が成立する場合は何もしなくてよい
ってことを示したいときに、そういう書き方をすることはよくある。

431 名前:仕様書無しさん mailto:sage [2010/06/14(月) 22:16:42 ]
何もしないってコメント書いてあるなら別にいいだろ。
論理演算を理解していない奴の例にそれを出してる時点でアホ決定。

432 名前:仕様書無しさん mailto:sage [2010/06/14(月) 22:40:51 ]
つーか俺含めてPG全員アホだろ

433 名前:仕様書無しさん mailto:sage [2010/06/14(月) 22:44:06 ]
PG以外も全員アホだろ

434 名前:仕様書無しさん mailto:sage [2010/06/14(月) 22:45:54 ]
基本アホな集まりですから

435 名前:仕様書無しさん mailto:sage [2010/06/14(月) 22:46:29 ]
すべての集団の9割がアホだ

436 名前:仕様書無しさん mailto:sage [2010/06/14(月) 22:47:34 ]
アホちゃいまんねんパーでんねん



437 名前:仕様書無しさん mailto:sage [2010/06/14(月) 22:57:29 ]
さ ぁ 盛 り 上 が っ て ま い り ま し た

438 名前:仕様書無しさん mailto:sage [2010/06/14(月) 23:22:01 ]
理系に対して劣等感をもつ奴が多いな

439 名前:仕様書無しさん mailto:sage [2010/06/14(月) 23:24:01 ]
金勘定しか出来ないからでしょ

440 名前:仕様書無しさん mailto:sage [2010/06/14(月) 23:44:18 ]
>>429
それならまだいい方。
何もしない部分にとりあえずなんか処理書いちゃう奴もいるんだからマジで。
if( hoge ) {
/* 2008.0908 バグ修正の為削除 */
} else {
....
}

441 名前:仕様書無しさん mailto:sage [2010/06/15(火) 00:14:03 ]
とある一連の関数名でhoge_init/hoge_start/hoge_pause/hoge_stop
ってのがあったんだが、よくよく処理を読んでみると
hoge_start  →リソース初期化
hoge_init   →処理開始
hoge_pause →で処理終了
hoge_stop  →でリソース後始末
ってのがあったのだが、これを書いた人間は何が欠落しているんだろうか

442 名前:仕様書無しさん mailto:sage [2010/06/15(火) 00:22:06 ]
まともにソースレビュー受けた事無いんだろ。だから命名が適当なんだよ。
一度ガッツリと教えればその程度の問題はすぐに解決する。
しかしお前らの文句ってほんと低レベルだなぁ。

443 名前:仕様書無しさん mailto:sage [2010/06/15(火) 00:29:51 ]
と言いつつもその程度は教えなくても上手い事やれよという気持ちは分かる。

444 名前:仕様書無しさん mailto:sage [2010/06/15(火) 00:51:48 ]
>>440
実はいらなかったとか、バグ修正のため別の場所で処理するなんていうのはよくあるだろ。

445 名前:仕様書無しさん mailto:sage [2010/06/15(火) 01:03:58 ]
ネストのネストのネストの.......
って言うコードは真面目に読むのめんどくさいし
もうちょい書き方変えて欲しいもんだね。

446 名前:仕様書無しさん mailto:sage [2010/06/15(火) 01:39:33 ]
富士山インデントはやめてください



447 名前:仕様書無しさん mailto:sage [2010/06/15(火) 01:55:38 ]
うちの会社ではそういう深いネストを「越すに越されぬ田原坂」と・・・

448 名前:仕様書無しさん mailto:sage [2010/06/15(火) 13:50:44 ]
429も440も何がいけないんだかさっぱり。
あえてそのように書く必要は全然無いけど、書いてあって何か問題あるのかな

449 名前:仕様書無しさん mailto:sage [2010/06/15(火) 15:00:11 ]
>>448
単純にな
if ( 1 == 2 ) {
}else{
実際にやりたい処理
}

if ( 1 != 2 ) {
実際にやりたい処理
}

もっともっと言うと
unless( 1 == 2 ){
実際にやりたい処理
}

って事だから条件の書き方位考えろって事
きちんと理解していればelse書く意味がない不毛、無意味、アホって繋がる

450 名前:仕様書無しさん mailto:sage [2010/06/15(火) 15:04:50 ]
もっともっと細かい事言うとだな
コンパイラ又はインタプリタが条件を2回処理する事になるんだ。
負荷が極端に高い場合こんな書き方をすれば処理速度がやや落ちるわけだ。
ただ、今は鯖性能がいいから問題はないっちゃないけれどって話に繋がってくると
結論どーでもいい。

451 名前:仕様書無しさん mailto:sage [2010/06/15(火) 15:06:47 ]
>コンパイラ又はインタプリタが条件を2回処理する事になるんだ。
>負荷が極端に高い場合こんな書き方をすれば処理速度がやや落ちるわけだ。


452 名前:仕様書無しさん mailto:sage [2010/06/15(火) 17:04:05 ]
>>450
> コンパイラ又はインタプリタが条件を2回処理する事になるんだ。
> 負荷が極端に高い場合こんな書き方をすれば処理速度がやや落ちるわけだ。
だいぶ前から、そんな腐ったバイナリ吐くコンパイラは見たことない。
どのコンパイラつかってんのか言ってみなよw

453 名前:仕様書無しさん mailto:sage [2010/06/15(火) 22:23:06 ]
2回評価する意味がわからん。どんなにしょぼいコンパイラでも一回で済むと思うんだが。。

454 名前:仕様書無しさん mailto:sage [2010/06/15(火) 22:34:07 ]
まあ、必然性のあるコーディングならいいんだが
普通にNotとった方がわかりやすいだろうって条件を
わざわざ難しく書くとかはやめてほしい

455 名前:仕様書無しさん mailto:sage [2010/06/15(火) 22:34:17 ]
一つのifでも複雑な条件式を書けばアセンブリ言語レベルでは何十命令にもなるんだから、
評価の回数なんて気にする意味なし。

456 名前:仕様書無しさん mailto:sage [2010/06/15(火) 22:41:11 ]
評価の回数とか細かいことはコンパイラの最適化に任せればいいんだよ
ロジックレベルでおかしな事やってない限りうまくやってくれる
コード上ではわかりやすさ、保守のしやすさを最優先

昔、数千行に及ぶ関数とかがあって
ほぼすべての変数がグローバルにあって
ループ変数が複数の関数を渡り歩きながら増減するとかいう
とんでもないコードを保守する事があったなぁ・・



457 名前:仕様書無しさん mailto:sage [2010/06/15(火) 23:19:16 ]
それCOBOLERが書いたコードだろ

458 名前:仕様書無しさん mailto:sage [2010/06/15(火) 23:23:28 ]
>>429
俺も何もしないアピールは結構使う
別にわからないわけじゃないよw

459 名前:仕様書無しさん mailto:sage [2010/06/15(火) 23:55:40 ]
>>457
おそらくそうだな。あ、これはCね。
しかも、大本のコードにバグがたくさんあって
複数の人が直そうと手を入れて何とかしようとしたが
途中で挫折した感じのコメント付きつぎはぎ修正がいっぱいあったりと
とっても歴史を感じさせてくれるコードだった。

460 名前:仕様書無しさん mailto:sage [2010/06/16(水) 00:50:02 ]
どうでもいいレベルの内容でグダグダ言いすぎ。使えないプログラマの特徴が良く出てるスレだな。

461 名前:仕様書無しさん mailto:sage [2010/06/16(水) 00:54:39 ]
おまえもな

462 名前:仕様書無しさん mailto:sage [2010/06/16(水) 05:20:39 ]
>>453
たぶん、「1個余分にジャンプ命令を吐くことになる」と言いたかったのでは・・・
20年前ぐらいのMS-Cは、空のthen句の最後でelse句をスキップするためにjmpしてた。
ここ10年ぐらい、そんなショボいコンパイラ見たことないけどな。

463 名前:仕様書無しさん mailto:sage [2010/06/16(水) 05:29:09 ]
unlessとか鯖とか言ってるから、Perlの話だと思うんだけどなぁ

464 名前:仕様書無しさん mailto:sage [2010/06/16(水) 08:26:47 ]
Perlのインタプリタはそんなアホじゃない。というか、JITコンパイラに近い実装。

465 名前:仕様書無しさん mailto:sage [2010/06/17(木) 05:25:29 ]
Perlの話だとすると、ますます二度評価の意味がわからんな。

466 名前:仕様書無しさん mailto:sage [2010/06/17(木) 05:28:41 ]
読んだ人の脳みそ(インタプリタ)での評価回数のことだろ
としか思えない



467 名前:仕様書無しさん mailto:sage [2010/06/17(木) 05:58:02 ]
二度も評価する処理系があったら、条件式に副作用があった時に恐しいことになるぞ・・・


468 名前:仕様書無しさん mailto:sage [2010/06/17(木) 05:59:21 ]
わかった。

if ( expression ) {
} else {
  do(something);
}
これを、
if ( expression ) {
} elif ( True ) {
  do(something);
}
に「最適化」する処理系があるに違いない。
誰かさんの脳内に。

469 名前:仕様書無しさん [2010/06/18(金) 14:54:54 ]
エンターキー強打
マウスで机をカンカン叩く

470 名前: ◆naAw11FwqU mailto:sage [2010/06/19(土) 03:49:28 ]
>>441
それはゲームプログラミングの命名規則
つうかちゃんと設計されてるゲームのソース見たことある奴ならすぐそのくらいわかるのに
自分の知らない世界だからって欠如とかよくそんなこといえるな
お前の知識が欠如してんだよクズ

471 名前:仕様書無しさん mailto:sage [2010/06/19(土) 07:36:10 ]
>>470
俺はゲームプログラマじゃないので知らないが、
その書き込みが真実だとすれば「ゲーム屋ってのは英語知らない馬鹿だらけなんだな」としか思わない

472 名前:仕様書無しさん mailto:sage [2010/06/19(土) 08:08:04 ]
まあゲームだったら別に英語を知ってる知らないは関係ないからねぇ

473 名前:仕様書無しさん mailto:sage [2010/06/19(土) 08:46:20 ]
英語くらい読めないと使いものになりませんが。

474 名前:仕様書無しさん mailto:sage [2010/06/19(土) 09:19:56 ]
今回関わった糞なプログラムの特徴はこんな感じ

・if ほにゃららだったら というのがあっちこっちにある。またifの階層が深い。
・ある動作をするところがあっちこっちにある。
・本人になんでこんなことしてんのと聞いても即答出来ない。どうしてか忘れましたとか普通。基本的に作ったものの構造を自分自身把握してない。
・クラスは使ってるが基本的にオブジェクト同士の関係がスパゲティ。クラス分けの単位がセンスない。
・命名規則とかがぶれぶれ。型ハンガリアンっぽいとこもあればローカルなのに大文字スタートしてるとこもあったり。
・隠すべきところを晒してあっちこっちでいじってるから挙動を把握できてない。
・全般的に残念。センスがない。

とりあえずほぼ全面的にリファクタと称して作り直させていただきました。
あいつに給料を払ってる意味があるのか激しく疑問。

475 名前:仕様書無しさん mailto:sage [2010/06/19(土) 10:18:36 ]
>>470
ゲームプログラミングかかわってたが、
>>441が「ゲームプログラミングの命名規則」のようには思えないw

あ、initは使ってたか、昔の話だがw

476 名前:仕様書無しさん mailto:sage [2010/06/19(土) 10:23:07 ]
>>474
「センスがない」とか下手な奴の特徴なのかどうかおいておいて

> ・本人になんでこんなことしてんのと聞いても即答出来ない。
むしろできるならすごい。

俺、3カ月前に作ったプログラムとかもう赤の他人だわ。すぐ忘れるぞ
複雑な式なら計算過程ドキュメントで残したりとか、
何故こうしたかとかコミットログやチケットのログにしっかり書かないとダメだわ
でないと後で見てももう全然わからなくなる


if使うのは別にいいと思うが、階層深いってどのくらいだろ?



477 名前:仕様書無しさん mailto:sage [2010/06/19(土) 10:41:59 ]
>>476
それは単にコードを読む力が足りないだけ。

478 名前:仕様書無しさん mailto:sage [2010/06/19(土) 10:50:19 ]
>>474
そんなのでも雇わなければならないような糞会社にいるやつが何言ってるんだ。

479 名前:仕様書無しさん mailto:sage [2010/06/19(土) 10:57:24 ]
>>476
俺はほとんど覚えてるわ。三カ月前ならコード見なくても言えるくらい。
他人が考えた設計を内容理解してなくて実装したコード
設計しなくて何となく書いたらできちゃったコード
なら無理だけど。

480 名前:仕様書無しさん mailto:sage [2010/06/19(土) 13:24:14 ]
急にネットワークに回されることになりました…
皆さらば!

481 名前:仕様書無しさん mailto:sage [2010/06/19(土) 17:51:28 ]
こんなifを見たことがある
if( hoge > fuga1 ) {
...
} else if( hoge <= fuga1 && hoge > fuga2 ) {
...
} else if( hoge <= fuga2 && hoge > fuga3 ) {
....
コードレビューで突っ込んだら
こっちの方が分かりやすいからとかなんとか

482 名前:仕様書無しさん mailto:sage [2010/06/19(土) 18:01:56 ]
>>481
別によくね?
11〜20
21〜30
31〜40
とかそーゆーのでしょ?

483 名前:仕様書無しさん mailto:sage [2010/06/19(土) 18:20:59 ]
uint16_t hoge = 0x12345;
まあ、このぐらいならやってしまうことあるだろう

この点についてコードレビューで突っ込んだときの応答
「しまった、これだと0xffffで処理されてしまうな」
Σ(゚Д゚)・・・気を取り直して
「ってか、ワーニング出るでしょ?ちゃんと、、」
「なんだか分からなかったので見てない」
ΣΣ(゚Д゚)

484 名前:仕様書無しさん mailto:sage [2010/06/19(土) 18:24:18 ]
>>481
一瞬で何がしたいのか判断できないコードは嫌いだ。
目茶苦茶下手な奴の特徴だと思う。

485 名前:仕様書無しさん [2010/06/19(土) 19:31:53 ]
>>481みたいなのは不等号の向きは小なりで統一すべきだと思うんだが…
その方がパッと見で値の大小関係が理解出来るだろう。
滅茶苦茶に書いてる奴見ると死んでくれと内心思う。

486 名前:仕様書無しさん mailto:sage [2010/06/19(土) 19:35:12 ]
はぁ?



487 名前:仕様書無しさん mailto:sage [2010/06/19(土) 19:37:05 ]
何がどうはぁ?なのか言ってもらえるとうれしいな

488 名前:仕様書無しさん mailto:sage [2010/06/19(土) 19:38:16 ]
>>481

if( hoge > fuga1 ) {
...
} else if( hoge > fuga2 ) {
...
} else if( hoge > fuga3 ) {
....

これでええやん


489 名前:仕様書無しさん mailto:sage [2010/06/19(土) 19:41:38 ]
なるほどよく見たらその通り。>>481の意図が読めてなかった。

490 名前:仕様書無しさん mailto:sage [2010/06/19(土) 19:51:02 ]
if (a > b) {
 ...
}
...
if (b >= a) {
 ...
}
...
if (a >= b) {
 ...
}

こんなの読みにくくてかなわないがこういう話ではないよな。まさかな。。

491 名前:仕様書無しさん [2010/06/19(土) 19:54:58 ]
何となく料理の下手な奴は味見しないっていうのと何か共通点があるような

492 名前:仕様書無しさん mailto:sage [2010/06/19(土) 19:57:52 ]
またわけのわからんことを

493 名前:仕様書無しさん mailto:sage [2010/06/19(土) 21:24:08 ]
うん。コンパイルも通さずにコミットするのはやめてくれ。

494 名前:仕様書無しさん mailto:sage [2010/06/19(土) 21:43:54 ]
>>481
ちなみに、このコードはfugaの部分はマクロになっていたのだが、そのマクロ自体を間違っており、
一個のif文だけなら間違っているとは判別しがたいバグ持ちでしたとさ

495 名前:仕様書無しさん mailto:sage [2010/06/19(土) 22:12:20 ]
>・本人になんでこんなことしてんのと聞いても即答出来ない。どうしてか忘れましたとか普通。基本的に作ったものの構造を自分自身把握してない。
設計に関わったか関わってないかで違うだろ。

設計にも関わった奴は説明できないといかんが、
関わってない奴はしょうがない気もする。
オレなんて昔は先輩が事前に作ってくれたコードを
ペタペタコピペしてただけだぞ。

496 名前:仕様書無しさん mailto:sage [2010/06/19(土) 23:17:23 ]
>>488
俺はif文の順番に依存してるelse以外の文が嫌いだから
ちょっと>>481の記述を書く奴の気持ちがわかってしまうんだぜ



497 名前:pure ◆vCtiwSWdZQ mailto:sage [2010/06/19(土) 23:31:22 ]
>>496
順番に依存って(笑)

任意のelseifを切り出したときでも、評価式が意図した結果を返すのがいいわけ?

きもちわるw
可読性の向上に全く寄与しない、ただただ冗長なコードw

498 名前:仕様書無しさん mailto:sage [2010/06/19(土) 23:46:28 ]
冗長というより、条件が変わったときに全部書き直すことになりそうなので嫌だな。
どのブロックも実行されないという分かりにくいバグにもつながりそう。

499 名前:仕様書無しさん mailto:sage [2010/06/19(土) 23:51:50 ]
>>497
例えばよ
>>488って

if( hoge > fuga1 ) {
...
} else if( hoge > fuga3 ) {
....
} else if( hoge > fuga2 ) {
...
こうなっとおかしくなんじゃん?
else ifが1000行ぐらい続くソースとかあるわけよ
そんときに条件式の順番に依存してっと上から読んでいかなきゃいけないから面倒なわけよ
それとこんな↓
if( hoge > fuga1 ) {
...
} else if( hoge > fuga3 ) {
....
//2010/04/21 H.Hashimoto cmt:うんこなんでうんこうんこにしておいた
--修正ソース--
} else if( hoge > fuga4 ) {
....
//2010/04/21 end
} else if( hoge > fuga2 ) {
...
みたいな挿入型の修正多くてif文の順番とか多少違っても動くソースを書くように染み付いた

500 名前:仕様書無しさん mailto:sage [2010/06/19(土) 23:54:31 ]
うーん低レベル

501 名前:仕様書無しさん mailto:sage [2010/06/19(土) 23:55:50 ]
>>500
低レベルだろうがなんだろうが実際ぶち当たったら解決策これっきゃねーだろマジで
順番に依存してっと上からなでないといけないんだぞ

502 名前:仕様書無しさん mailto:sage [2010/06/19(土) 23:55:56 ]
>>499
>else ifが1000行ぐらい続くソースとかあるわけよ
この時点でどうかしてんだろ

503 名前:仕様書無しさん mailto:sage [2010/06/20(日) 00:00:13 ]
>>502
仕方ねーじゃん
DBの項目でそれぞれ型が違うとか客の要望聞いてとある条件のときに数字の後に「T」つけてとか
「G」つけてとか2000項目以上の内容のこまごまとした要望をプログラムで延々書いてあるんだから・・・
一括でできない部分ってあるもんだよ

504 名前:仕様書無しさん mailto:sage [2010/06/20(日) 00:03:30 ]
>>503
俺はおまいのいうこともわかるぞ

505 名前:仕様書無しさん mailto:sage [2010/06/20(日) 00:03:50 ]
ぶっちゃけ動けばどうでも良い、と最近思うようになってきた。
どんなに素晴らしい物作っても評価されないしな…

506 名前:仕様書無しさん mailto:sage [2010/06/20(日) 00:08:28 ]
>>503
開腹はしたけど何もせず閉じるしかなかった医者の心境だよな。



507 名前:仕様書無しさん mailto:sage [2010/06/20(日) 00:09:38 ]
> どんなに素晴らしい物作っても評価されないしな…

それ辛いよな…
保守性やロジックの美しさなんて客には関係ないから、客から感謝されなくてもまあ仕方ないが、
せめてだれか技術のわかる人に評価してもらいたいよな

508 名前:仕様書無しさん mailto:sage [2010/06/20(日) 00:14:05 ]
逆に保守性高すぎてその後他社にシステム持っていかれるくらいなら
多少苦労しても自分のとこでずっと保守した方が金取れるし。

509 名前:仕様書無しさん mailto:sage [2010/06/20(日) 00:24:17 ]
条件分岐が延々と続く場合はこんな感じだな。

if(条件1){
処理1
}
if(条件2){
処理2
}
if(条件3){
処理3
}

実行速度が気になるようであれば、処理の最後でreturnするか
終了処理までgotoさせる。

510 名前:仕様書無しさん mailto:sage [2010/06/20(日) 00:55:30 ]
正直高負荷サイトでは自然とベストコード書かないと、サーバー1台増やすとかの話になる。

511 名前:仕様書無しさん mailto:sage [2010/06/20(日) 01:19:33 ]
>>481
こういう if-else は数直線上で hoge が左から右に進むイメージ。

if (hoge <= fuga3) {
 ...
} else if (hoge <= fuga2) {
 ...
} else if (hoge <= fuga1) {
 ...
} else {
 ...
}

最初の (hoge <= fuga3) の部分は、たとえ処理が何もなくとも
書いておくのがポイント。何もしないことをコメントで書いておく。

512 名前:仕様書無しさん mailto:sage [2010/06/20(日) 01:37:53 ]
>>481
ネーヨと思ったら手元にあった。
当時は条件が不連続になるからって書いたんだっけな。駄目だなあ

513 名前: ◆XSwpGtlyYo mailto:sage [2010/06/20(日) 01:38:37 ]
case hoge
 when fuga2..fuga1
   ...
 when fuga3..fuga2
   ...
end if hoge > fuga1


まじお前たちがかわいそうになってくる・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・



514 名前:511 mailto:sage [2010/06/20(日) 01:40:25 ]
483=481 なのかな?
uint16_t って書いてあるが、それなら < を使えるように fuga1, 2, 3 を定義することを考える。
離散変数 x の範囲による条件分岐を書くなら、左閉半開区間、つまり
 [a, b) = { x | a <= x < b }
の形で書き下すのが基本。

この問題のポイントはこの辺までなんじゃないかな。

各条件節に両側の条件を明記するか
 (fuga3 < hoge && hoge <= fuga2)

その場合の不等号の向き
 (hoge > fuga3 && hoge <= fuga2)

なんてのは、まあどっちでもいい。
このあたりは本人のコードの中で統一されていれば、どっちにしろ「読める」から、
そんなに目くじら立てて気にするほどのことじゃない。

515 名前: ◆XSwpGtlyYo mailto:sage [2010/06/20(日) 01:51:06 ]
>>471
>>475
www.google.co.jp/search?hl=ja&q=pause+init+stop+start%E3%80%80%E3%82%B2%E3%83%BC%E3%83%A0&aq=f&aqi=&aql=&oq=&gs_rfai=
ぐぐればでてくる

おそらく今までゲームしか作ったこと無い人が
無理して普通のプログラムを書いた結果がそれ

516 名前:511 mailto:sage [2010/06/20(日) 01:52:25 ]
>>513
そのコードは今まで出てる中で一番駄目。

> when fuga2..fuga1
>   ...
> when fuga3..fuga2

こういう書き方をするなら、hoge = fuga2 の境界がどちらに入るのかは
when の順序によらず一意に決まるように読めないと混乱する。

if (fuga2 <= hoge && hoge <= fuga1) {
 ...
} else if (fuga3 <= hoge && hoge <= fuga2) {
 ...
}

こんなコード最悪だろ。

もう一点、その言語をよく知らないが、
そういう賢い case-when を使えるんだとしたら最後まで
 when fuga1..MAX_INT
とでも書きたい。
区間を扱いながら inf を表現できないんだとしたら、それは片手落ちだ。



517 名前: ◆i2ZQ1YyKNQ mailto:sage [2010/06/20(日) 02:20:49 ]
Ruby

Rubyしらないとかwwwwwwwww
あうあうwwwwwwwwwwwwwwwwwwwwwwww

コードのセキュリティを高めるなら
when fuga3..fuga2 を
when fuga3...fuga2  だね


そういや
C++使ってた頃は、範囲オブジェクト使えないから
tokushunaIF( x , 200 , 300 ) {
}
とか、マクロ作ったりしてた
範囲IFはあるべきだよ
&& <= || は可読性下げる

518 名前:仕様書無しさん mailto:sage [2010/06/20(日) 02:51:38 ]
#define betweenGtLt(x, a, b) (((a) < (x)) && ((x) < (b)))
#define betweenGeLt(x, a, b) (((a) <= (x)) && ((x) < (b)))
#define betweenGtLe(x, a, b) (((a) < (x)) && ((x) <= (b)))
#define betweenGeLe(x, a, b) (((a) <= (x)) && ((x) <= (b)))

キモイ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<223KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef