今までみた絶望的なソースコード [転載禁止]©2ch.net

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん2015/04/17(金) 23:00:30.63ID:55USvuES
今井氏:ソースコード公開は、社長のティム(*2)の意向です。彼はバリバリのプログラマーで、初期の「Unreal Engine 1」を
1人で書いた人ですが、若い時に雑誌に載っていたコードを書き写して勉強したそうです。それで今の若い人にも、プロのソー
コードとはこういうものだというのを見せたいという願いがあって、ソースコードを公開しています。本当に今のゲーム業界の
事情を憂いてる1人だと思います。(*2)Epic Gamesの創業者兼CEOであるTim Sweeney氏

出村氏:読みやすいコードですよ。「C++」というのは、黒魔術(高度な計算)が多くなりがちな言語ですが、
そういうこともなく、すっきりしていて目的の機能も探しやすい。解読しやすいコードなので、確かにお手本になると思います。

僕は初代のゲームボーイからプレイステーション 2の頃くらいまでゲームプログラマーだったのですが、ゲームプログラミングでは
必ず数学が出てきます。行列とか三角関数とか。もちろん今でもまったく不要になったわけではありませんが、そういう知識の
重要性は薄れてきていると思います。「Unreal Engine」では特にそうです。
http://game.watch.impress.co.jp/docs/interview/20150417_698349.html

初級者から中級者へ昇格する時期は、ほぼどのようなソースコードでも読める程度にプログラミング言語に精通し、
また偉いプログラマーの提唱したデザインパターンも一通り理解したくらいの時期である。

すると、プログラミング言語の持つあらゆる機能と、偉いプログラマーの提唱するあらゆる技術を使わねばならない
という思い込みが発生する。そしてHello Worldにまで崇高なオブジェクト指向や壮大なデザインパターンを
適用しようとしだすのである。

その結果、
* 大量のクラス
* 迷路のような変数渡し
* 底なしに深いネスト
などといった凄いものが生まれる。また、条件分岐に三項演算子を乱用するなどの症状も多く見受けられる。
最終的には第三者にとって読みにくい保守性の悪いスパゲッティコードが生成されることになる。
http://monobook.org/wiki/%E4%B8%AD%E7%B4%9A%E8%80%85%E7%97%85

921デフォルトの名無しさん2018/10/14(日) 21:13:04.73ID:WLfX4fFS
解けない因数分解ω

922デフォルトの名無しさん2018/10/14(日) 21:14:53.44ID:TkD6W0eM
>>920
まずユニットテスト書いてリファクタ

923デフォルトの名無しさん2018/10/14(日) 21:20:05.33ID:b97yHnkE
古いコードを延々と残しておくのをやめてほしいな。
ソースコードの半分以上が使われてないコードだったりして見通しが悪いったらありゃしない。
その割に修正履歴はクソの役にも立たないコメントが付いてる。

924デフォルトの名無しさん2018/10/14(日) 21:21:59.05ID:SE0u9ZQa
>>923
使われとらんのやったら消せばいいやろ
消さないおまえが悪い

925デフォルトの名無しさん2018/10/14(日) 21:25:39.07ID:WLfX4fFS
めっちゃ長いネストをプリントアウトして一生懸命読んでたら
コメントだったでござる

926デフォルトの名無しさん2018/10/14(日) 21:29:08.49ID:SE0u9ZQa
未だに紙出ししてコード読むおじいちゃん居るんかよw

927デフォルトの名無しさん2018/10/14(日) 21:35:16.62ID:TkD6W0eM
画面に収まりきらないとかメモ書き込んだりするならやるけどな

それだけ元がひどいんだろ

928デフォルトの名無しさん2018/10/14(日) 21:41:26.50ID:SE0u9ZQa
画面に収まりきるコードてHello, Worldかなw

929デフォルトの名無しさん2018/10/14(日) 21:50:49.34ID:TkD6W0eM
ずいぶん狭い画面だね

930デフォルトの名無しさん2018/10/14(日) 21:55:26.77ID:SE0u9ZQa
>>929
画面に収まるコードて25行以下のことやぞw
今どきのディスプレイにあわせて制約ゆるく解釈てんじゃねーよタコwww

931デフォルトの名無しさん2018/10/14(日) 21:57:38.53ID:TkD6W0eM
それ何か面白いの?

932デフォルトの名無しさん2018/10/14(日) 21:58:28.19ID:SE0u9ZQa
>>931
おまえの無知がおもろいんやけどw

933デフォルトの名無しさん2018/10/14(日) 21:58:53.76ID:TkD6W0eM
よかったね

934デフォルトの名無しさん2018/10/14(日) 22:00:41.53ID:SE0u9ZQa
>>933
残念やったねwww

935デフォルトの名無しさん2018/10/14(日) 22:16:44.48ID:BqZmi47p
なんでお前ら揉めてんねん

936デフォルトの名無しさん2018/10/14(日) 23:22:10.76ID:CcpM1t8g
みんな糞コードが悪いんや。

937デフォルトの名無しさん2018/10/15(月) 04:30:42.78ID:0W4mw5Ny
25行っていつの話だω
縦400しかない頃か

90年代初頭でも480のハイレゾで30行くらいは行けたぞ

938デフォルトの名無しさん2018/10/15(月) 04:50:52.67ID:/DZZgAIK
目糞鼻糞

939デフォルトの名無しさん2018/10/15(月) 07:29:09.96ID:iWG64tv6
どっちがおじいちゃんかわからないねwww

940デフォルトの名無しさん2018/10/15(月) 08:16:17.00ID:ugWChiCs
インデックスが一つも無いオラクルのシステム
しかもパッケージだからイジるなと・・・

検索に何分かかってるんだよ

941デフォルトの名無しさん2018/10/15(月) 08:23:23.46ID:ugWChiCs
>>919
voidが無かった時代もあるんだわ
え、そんな問題じゃない?

942デフォルトの名無しさん2018/10/15(月) 10:35:12.32ID:/DZZgAIK
ハイレゾにモードチェンジするコマンド名忘れたな

943デフォルトの名無しさん2018/10/15(月) 10:36:16.16ID:/DZZgAIK
>>941
voidが無くてもva_listはあっただろ

944デフォルトの名無しさん2018/10/15(月) 11:38:50.62ID:RUpsnhtW
↓経験10年以上の奴のプログラムがこれwwww

bool Hoge::isExistElement() const
{
  int cnt = 0;
  for (int i = 0; i < m_ElemList.size(); i++) {
    ++cnt;
  }
  return (cnt > 0)? true : false;
}

データ量が増えるとめちゃ遅くなるので、原因を調べたら
この関数がループの中で繰り返し呼ばれてたwwww

945デフォルトの名無しさん2018/10/15(月) 17:39:03.89ID:HKiVHmTj
return m_ElemList.size() > 0;
あるいは
for(int i = m_ElemList.size(); --i >= 0;) return true;
return false;

なんかの罠か?
全力で釣られてやったぞ

946デフォルトの名無しさん2018/10/15(月) 20:01:02.54ID:gXcd9TOh
不要な行は消せば良い言う人いるが、
消したくても消せない環境があるのよ…
クソコード × クソ規約 でお腹いっぱいぱい

947デフォルトの名無しさん2018/10/16(火) 03:33:36.46ID:t3pQN/xM
トンキン試合ぶち壊しω最低だなωω

948デフォルトの名無しさん2018/10/20(土) 16:35:46.84ID:4GOhJijx
wをωかくのキモいね

949デフォルトの名無しさん2018/10/21(日) 20:00:18.61ID:0rXyRLVH
もまいらが優秀だと思う著名なプログラマーは誰?

950デフォルトの名無しさん2018/10/21(日) 20:20:22.20ID:Oh4Mk/D5
おれが昨年作った糞コードを張りたいけど、
死ね!と言わない?

951デフォルトの名無しさん2018/10/21(日) 21:04:49.37ID:it9nlgqU
死んでる物体に死ねとは言わないでしょ普通

952 ◆QZaw55cn4c 2018/10/21(日) 21:37:32.52ID:gNVlu9Yw
>>950
いわないから見せて!
https://ideone.com

953名無しさん@そうだ選挙に行こう! Go to vote!2018/10/22(月) 09:23:43.91ID:3+JbbVPy
ムチャクチャだとされるCのコード

#include <stdio.h>
#include <stdlib.h>

// 構造体の宣言
typedef struct {
int num;
char *str;
} strct;

int main(void) {
// 実体を生成
strct *entity;

// 動的メモリの確保。確保したメモリをstrct型ポインタにキャスト。
entity = (strct*)malloc(sizeof(strct));

// メンバの初期化
entity->num = 0;
entity->str = (char*)malloc(sizeof(32));

// メモリに文字列を代入
sprintf(entity->str, "%s %s!", "Hello", "World");
printf("%s\n", entity->str);

// メモリの解放
free(entity->str);
free(entity);

return 0;
}

954名無しさん@そうだ選挙に行こう! Go to vote!2018/10/22(月) 09:39:27.73ID:1/yFf04Z
>>953
siseof(32)ってなんだろ?

955名無しさん@そうだ選挙に行こう! Go to vote!2018/10/22(月) 09:53:43.00ID:YaHJAE+1
数値リテラルは大抵intかな

956名無しさん@そうだ選挙に行こう! Go to vote!2018/10/22(月) 10:05:30.30ID:XZ32Z+1r
>>953
sizeof(32) が怪しいくらいじゃね?
個人的には main(void) も気になるけど、どの辺がムチャクチャ?

957名無しさん@そうだ選挙に行こう! Go to vote!2018/10/22(月) 10:33:20.99ID:1/yFf04Z
typedefで小文字とstlctって名前も少々気持ち良くない

958デフォルトの名無しさん2018/10/22(月) 23:15:17.28ID:tG7xaI7F
sprintf で思いっきりバッファオーバーフローしとる

959デフォルトの名無しさん2018/10/23(火) 01:03:56.45ID:d4On2qFi
>>958
そりゃsizeof(32) の指摘に含まれてるからあえて言う必要は無いんじゃね

960デフォルトの名無しさん2018/10/23(火) 12:33:21.37ID:klyqqLAB
なぜ誰もfreeに突っ込まない?おまえら初心者ばかりか?

961デフォルトの名無しさん2018/10/23(火) 14:07:56.51ID:hMZ53Rau
えっ…

962デフォルトの名無しさん2018/10/23(火) 14:25:23.38ID:yFsvvFWj
freeなんて飾りです

963デフォルトの名無しさん2018/10/23(火) 16:20:31.77ID:fVBjYNqz
おいおい

964デフォルトの名無しさん2018/10/23(火) 23:23:13.96ID:U+Jl4m6O
初心者さん、言葉がでない

965デフォルトの名無しさん2018/10/24(水) 09:09:08.71ID:vJ0gepnW
free不要論争勃発

966sage2018/10/24(水) 15:23:23.13ID:wUNs4a59
sejuku が話題になってるスレがあったけど見つからねぇ
長野透とかいうひとのソースを分析してみた
最近の C というか ideon のメモリ割り当てって安全なのか?
#include <stdio.h>
#include <string.h>

int main() {
char s1[7] = "hello "; // taken 0x10 bytes
char s2[19] = "world! long length"; // taken 0x20 bytes
char s4[16] = "ABCDEFGHIJKLMOP";
char *s3;

s3 = strcat(s1, s2);
printf("%08x[%s]\n", s1, s1);
printf("%08x[%s]\n", s2, s2);
printf("%08x[%s]\n", s4, s4);
printf("%08x[%s]\n", s3, s3);
return 0;
}
https://ideone.com/58GHMk

967デフォルトの名無しさん2018/10/28(日) 12:22:39.71ID:Ujmok0wr
>>966
auto の話ならたまたま

968 ◆QZaw55cn4c 2018/10/28(日) 15:14:32.11ID:0CAv0Ngu
>>966
>strcat(s1, s2);
これは決定的にあかん奴やね…

969デフォルトの名無しさん2018/10/28(日) 19:14:51.01ID:h5ZEQ7FS
memcpyだよな

970デフォルトの名無しさん2018/10/30(火) 14:36:53.65ID:p4LrBCE7
解読不能

今起こり猿馬見れんだろ大会なの小倉の
日のお風呂中日本中4代目の枕にメール
お願い泊なっている心も離れてない練習
ご紹介私の命の言葉としての勉強

971デフォルトの名無しさん2018/12/07(金) 02:37:05.58ID:Hbbkocqb
昔の翻訳ソフトってこんな感じだった

新着レスの表示
レス数が950を超えています。1000を超えると書き込みができなくなります。
レスを投稿する