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

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

792デフォルトの名無しさん2016/06/22(水) 09:59:00.26ID:t1NluOvj
int a[10];
int b[10];
int c[10];

があったとき、 a, b, c をまとめると datas
それぞれは data だっていうのを聞いたことがある

信じるか信じないかはあなた次第

793デフォルトの名無しさん2016/06/22(水) 11:15:52.48ID:DmPvlaR4
datumなんて見たことすらないしな

794デフォルトの名無しさん2016/06/22(水) 11:55:36.82ID:yBOVYSwe
datumは見たことあるな
miceとかも見たことあるな

795デフォルトの名無しさん2016/06/22(水) 21:58:10.88ID:aSQEHncx
indicesを最近まで知らずにindexesって書いてたわ

796デフォルトの名無しさん2016/06/23(木) 11:49:21.94ID:332nxUAD
railsみたいにそういうの判っててindexesにしてるケースもある

797デフォルトの名無しさん2016/07/04(月) 21:58:16.57ID:0RWmorvn
2400bpsの通信速度のコンソールに9600bpsの通信回線の通信ログを吐き出すプログラム

798デフォルトの名無しさん2016/07/05(火) 23:20:03.68ID:kKcHGrML
んー、ちょっとスレの趣旨と違うかな。

799デフォルトの名無しさん2016/07/12(火) 09:09:02.35ID:GUx/gdNo
C#で、糞長いメソッド内の処理を、意味のある単位にregionで囲ってるの見ると、切り出したくてムラムラする。

800デフォルトの名無しさん2016/07/12(火) 12:22:44.71ID:DRheqrQu
担当が逃げて押し付けられた、こんなコードに責任は持ちたくない
でも読まなきゃいけない読めなきゃいけない…
その妥協点がregionなのさ

801デフォルトの名無しさん2016/07/13(水) 22:27:12.90ID:cbsCrAwe
読まずに保守するテクニックを身につけないと辛いよ

802デフォルトの名無しさん2016/07/15(金) 09:11:47.85ID:RfCrCFKv
ドキュメンテーションコメントに嘘書くのやめろよ!
嘘になっちゃうような修正をするなら、コメントもちゃんと見直してくれや

803デフォルトの名無しさん2016/07/31(日) 13:48:17.71ID:kJ3Jsux+
forの中が1000行以上・・・

804デフォルトの名無しさん2016/08/29(月) 07:53:30.56ID:7JUajOeD
仕事でFORTRAN77の年代物の科学技術計算コードを最適化(並列化含)したことあるんだがあれはひどかった。

この世の糞が全て詰まってたコードだった。誇張抜きで

805デフォルトの名無しさん2016/09/01(木) 16:00:38.67ID:G1V/juoY
#regionて、IDEで見る以外に意味ないんだよね?

806デフォルトの名無しさん2016/12/08(木) 09:16:13.50ID:FEYStmIt
c++のコード引き継いだら

#define private public

てのを見たことある。
逆に新鮮だった。

もちろんこの行は消した。

807デフォルトの名無しさん2016/12/09(金) 22:56:12.00ID:Pi2Dlq3z
>>806
unit test でもやってたんじゃね?

808デフォルトの名無しさん2016/12/22(木) 11:56:29.60ID:/ytrOsGa
>>807
何の弁明にもならん

809デフォルトの名無しさん2016/12/22(木) 12:31:28.47ID:mlmgTnRW
phpのecオープンソースmagento

810デフォルトの名無しさん2016/12/29(木) 21:32:42.78ID:P8hgWrsI
#if true
string TestFilter=" AND ET000.ID > 8023354 "; // 開発専用。まともに回すととても遅いので…こんなのやりたくないっす
#else
string TestFilter="";
#endif
string Filter=" ET000.c_flg=1 AND ET000.memo LIKE '%start:2012/01%' " + TestFilter;
string Sql = " SELECT * " + CONST_NEW_LINE +
" FROM ET000 " + CONST_NEW_LINE +

811デフォルトの名無しさん2017/01/01(日) 19:19:04.92ID:HLv5dR03
https://code.hackerearth.com/7b7b82s
https://code.hackerearth.com/431130T
一生懸命に12時間もかかって書いたのにあまりウけませんでした

812デフォルトの名無しさん2017/01/01(日) 21:15:21.45ID:9MvoRZrQ
センスのかけらもない

813デフォルトの名無しさん2017/01/03(火) 18:26:56.42ID:kDLE0pJc
>>812
センスとはどういうことをさすの?

814デフォルトの名無しさん2017/01/04(水) 20:28:14.83ID:EyqoOVTu
エレガンス

815デフォルトの名無しさん2017/01/06(金) 12:03:13.07ID:Iab1DByP
>>813

816デフォルトの名無しさん2017/01/06(金) 12:11:20.90ID:5QBUIDnx
>>815
今ならクーラーではないか?

817デフォルトの名無しさん2017/01/06(金) 14:20:26.76ID:NYT/unlz
>>816
それはシロッコファン

818デフォルトの名無しさん2017/01/06(金) 15:24:21.81ID:XtKi9eaG
Your joke is not Coooool!!!

819デフォルトの名無しさん2017/02/06(月) 19:10:19.87ID:P0M4N+3Y

820デフォルトの名無しさん2017/02/07(火) 11:04:23.35ID:hm/AHdrI
情報エキスパートしか知らないのか、入門書を真に受けたのか
受注クラスに受注のすべてが書いてあった

821デフォルトの名無しさん2017/02/24(金) 06:22:47.09ID:8ATozeRB
// よくここで止まっていた(いつの間にか何故か解消しました)

822デフォルトの名無しさん2017/02/27(月) 12:20:37.06ID:GGu6vxcV
一年前の自分のコード

823 ◆QZaw55cn4c 2017/04/08(土) 18:56:00.33ID:O01wSTFq
>>822
それそれ
自分が書いたかどうかすら忘れて今っているので、今必死に読んでいるんだが、まるで人のコードを読んでいる気分だ

824デフォルトの名無しさん2017/05/06(土) 09:46:21.28ID:Xeh+WPsq
>>804 
シングルタスク(CPU1個)処理しか古い計算ソフトでは使えない。
並列化の描き方とは違う技術が必要。

逆に、当時のコンピューターに並列化したソースを読ませるとかなり遅くなる。

825デフォルトの名無しさん2017/05/06(土) 10:40:45.49ID:RxOQwEqu
いや保守運用を全く考えない使い捨てレベルの俺俺コードを保守させられたって話だろ
素人が描いたVBAに対する愚痴と大して変わらん

826デフォルトの名無しさん2017/05/24(水) 05:02:46.93ID:f/qUGphe
一年前の自分のソースを見たときの俺



    _ □□    _      ___、、、
  //_   [][]//   ,,-―''':::::::::::::::ヽヾヽ':::::/、  誰  書   こ
//  \\  //  /::::::::::::::::::::::::::::::i l | l i:::::::ミ  だ  い   の
 ̄      ̄   ̄/ /:::::::::,,,-‐,/i/`''' ̄ ̄ ̄ `i::;|  あ  た   汚
―`―--^--、__   /:::::::::=ソ   / ヽ、 /   ,,|/   っ  の   い
/f ),fヽ,-、     ノ  | 三 i <ニ`-, ノ /、-ニニ' 」') !! は   ソ
  i'/ /^~i f-iノ   |三 彡 t ̄ 。` ソ ハ_゙'、 ̄。,フ | )          |
,,,     l'ノ j    ノ::i⌒ヽ;;|   ̄ ̄ / _ヽ、 ̄  ゙i )        ス
  ` '' -  /    ノ::| ヽミ   `_,(_  i\_  `i ヽ、 ∧ ∧ ∧ ∧
     ///  |:::| ( ミ   / __ニ'__`i |  Y  Y Y Y Y
   ,-"        ,|:::ヽ  ミ   /-───―-`l  |  //     |
   |  //    l::::::::l\    ||||||||||||||||||||||/  |     // |
  /     ____.|:::::::|    、  `ー-―――┴ /    __,,..-'|
 /゙ー、,-―'''XXXX `''l::,/|    ー- 、__ ̄_,,-"、_,-''XXXXX |
/XX/ XXXXXXXXXX| |         _,  /ノXXXXXXXXXX|

827デフォルトの名無しさん2017/05/25(木) 01:23:57.90ID:hLFywp3s
>>822
それは自分のスキルが上がったらそう思うんだよ(震え声)

828デフォルトの名無しさん2017/05/26(金) 15:58:13.06ID:IgcvauO6
まだ衰えを知らんと見える

829デフォルトの名無しさん2017/06/11(日) 18:40:50.70ID:WvFJ2VIF
cでもなくc++ でもないみたいなソース渡された時はcの仕事受けるのやめようと思った
cメインで書いてる癖に難しい処理で半端にc++ に逃げるくらいなら最初から全部c++ で書けよと

830デフォルトの名無しさん2017/06/11(日) 19:15:52.72ID:sCflcWBm
GDIplusですね判ります

831デフォルトの名無しさん2017/07/04(火) 10:13:42.35ID:hs91NIe1
vector<int> v(2);
v[0]=1;
v[1]=2;

832デフォルトの名無しさん2017/07/16(日) 15:02:14.04ID:pSlhsdXG
>829
betterCとしては想定内の使い方なんじゃないの?

833デフォルトの名無しさん2017/07/19(水) 09:35:02.32ID:q1yo5LZE
簡単なコマンドラインツールなんかを c で書いてて map 使いたい時なんかはそんな風になるな。
だからって printf を cout で書き直したりはしない

834デフォルトの名無しさん2017/07/19(水) 11:32:18.81ID:+fK80sDM
cout使いにくすぎる

835デフォルトの名無しさん2017/07/22(土) 02:05:47.41ID:ynJS6V/x
C#ってどんなだったか
結局printfの書式文字列がオーパーツすぎた

836デフォルトの名無しさん2017/12/16(土) 10:53:17.72ID:gY8Oz9or
江東区立深川図書館特殊

銅和加配

奇声あげて人をボコボコにぶんなぐってもOK お咎めなし
被害者が警察を呼んでくれと何度も言っているのに公務員は無視し続けてた
幼児が歓声上げて走り回る       見ぬふり
小学生が歓声上げて走り回る     見ぬふり
中学生が大声で談笑して走り回る   見ぬふり
高校生が閲覧机で談笑雑談      見ぬふり
公務員による恣意行為
etc

なんのための施設か? →特殊な関係用

翌日、被害者を公務員が脅していた

837デフォルトの名無しさん2018/01/20(土) 14:52:43.07ID:gdCBjjap
俺のなかでは>>806が最狂

838デフォルトの名無しさん2018/02/06(火) 13:41:29.39ID:b4eIkJtx
ファイルローカルか公開へッダかでだいぶ違うが、後者だろうな

839デフォルトの名無しさん2018/02/07(水) 11:16:22.68ID:mhmm9auu

840デフォルトの名無しさん2018/02/14(水) 23:21:09.68ID:Ch48e2Ug
ソースコード自体じゃないんだが、俺が抜けた後にそのプロジェクトの保守になった人の運用方法が……

/source_new
/source_new2
/source_new3
/source_new_rXXXX
/source_new_rXXXY
...

ってディレクトリがいつの間にか、各リビジョン毎に出来てて、中身丸々コピーして書き換えてる

かつ、ソースのコメントには
// リビジョンXXXXでの変更です!
とだけ書いてあり、更に元々は
// 下記の条件を満たす
// 詳細は○○の仕様書を参照
みたいに書いてあったところがことごとく
// リビジョンXXUU以前での変更です!
というコメントに書き換えられて行ってるんだが……

※なお、このプロジェクトはSVNでバージョン管理されている

841デフォルトの名無しさん2018/02/14(水) 23:43:27.72ID:0BZdrCiI
コメントに勢いがあってよろしい

842デフォルトの名無しさん2018/02/16(金) 14:51:35.99ID:dBpGhFbZ
!とか?とかか

新着レスの表示
レスを投稿する