今までみた絶望的なソースコード [転載禁止]©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
2016/01/15(金) 08:33:23.10ID:3+jxxZHF
膨大と言ってもせいぜい数百MB程度だから検索できない訳がない
printf使ったって結果はファイルにリダイレクトするだろ
同じようなもんだ
2016/01/15(金) 11:05:47.01ID:qP185FEX
       ロギング

  ∧_∧          __
 ( ・∀・)         | i \ \
 ( U U          | i  l =l
 と_)_) ____     | |__ノ  ノ
       | i(;;)H|   | ̄ ̄| ̄ ̄|
2016/01/15(金) 12:53:25.95ID:0fhpXD7V
>>764
追えるようにログを吐くんだよ
2016/01/15(金) 12:55:53.08ID:0fhpXD7V
そもそも、小さいマイコンじゃそんなに多量には吐けない

ブロッキングだと動作速度が大きく変わり
ノンブロッキングだと間引かれる
2016/01/15(金) 13:43:20.23ID:zaUY/8Xo
なんでノンブロッキングだと間引かれるんだよw
2016/01/15(金) 18:16:06.18ID:9X5/eWgr
小さいマイコンはバッファを大きく取る余裕がないから
2016/01/15(金) 18:16:55.68ID:9X5/eWgr
いっぱい出せばすぐにあふれる
2016/01/16(土) 14:50:47.80ID:OsKsEu35
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

強烈加齢臭
メール見ない メール無視
ドキュメント見ない ドキュメント無視
説明聞かない 説明無視
話聞かない 話無視
ガム→むっちゃー むっちゃー むっちゃー むっちゃー
煎餅→バリバリバリバリバリバリ
菓子パン→モグモグモグモグモグモグモグモグモグモグ
カップアイス→むっちゃー むっちゃー ペロペロペロペロ

フロアすべてに響き渡る 超ばかでかいくしゃみ 当然手でおさえない

異音と異振動
ドスーン!ドスーン! ドカーン!ドカーン! バコーン!バコーン! ズドン!ズドン!
机が近いとマウスポインターが飛ぶ 誤操作誘発
書類だしたりしまうだけでドカンドカン

30秒ごとに口と鼻から異音
ふんっっ!    ふんっっ!   

備品破壊 貸与P C 破壊 他人のもの破壊

奴の作ったスクリプトとプログラムは使えない バグ製造機

電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない
2016/01/16(土) 18:22:51.71ID:wGXFO9/q
社員として使えないなら切れ
使えるなら我慢しろ
2016/01/16(土) 18:23:39.03ID:wGXFO9/q
せんべいはおれも食べる
ダメ?
777777
垢版 |
2016/01/16(土) 18:26:19.06ID:XWGZA0lu
777げっち(´・ω・`)b
778デフォルトの名無しさん
垢版 |
2016/05/01(日) 10:15:32.72ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
2016/05/01(日) 12:38:30.64ID:5H9PV7Hp
死ねカス
780デフォルトの名無しさん
垢版 |
2016/05/01(日) 18:06:50.36ID:XA7YY+e1
>>778
絶望的なコードの紹介?
2016/05/02(月) 16:33:40.01ID:aR8AOrvI
今までみたことのない糞レス
2016/05/22(日) 02:09:26.70ID:PykTFw3U
変数名 data
2016/05/22(日) 12:11:03.96ID:hKJLLsJo
凝集度をあげてほしい
2016/06/02(木) 23:05:04.71ID:ZNUdZI3k
♥
2016/06/03(金) 12:08:02.65ID:cGjwwdHV
Enumを文字列のコード値にswitch文で変換して、それをswitch文で別のEnumに変換する
ってのがいろんな所に書いてあった
2016/06/05(日) 02:49:12.74ID:b0qHmmcL
いまどき変数名が衝突して不具合を生じてたとか馬鹿な報告を上げてくる下請け
2016/06/05(日) 12:52:01.08ID:sTpf+U42
>>786
釣りかもしれんが
納品検収テストで見つけられない発注元の方に絶望するわ
2016/06/05(日) 13:12:06.06ID:OYIyvlQD
国や公務員からしてそんなことやってるから三菱になめられるんだよ
2016/06/06(月) 05:03:16.22ID:QbKl1YZH
>>787
納品前の結合環境のバグだよ
まともなフェーズ管理のある環境で働いたことのないガキは引っ込んでろ
2016/06/21(火) 23:08:20.65ID:GMAXhxXB
>>782
使い所によるのでは?
2016/06/22(水) 08:46:39.65ID:MtYOmoik
「datas」って英語圏でも使ってるの見るね。間違いではないのかな?
2016/06/22(水) 09:59:00.26ID:t1NluOvj
int a[10];
int b[10];
int c[10];

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

信じるか信じないかはあなた次第
2016/06/22(水) 11:15:52.48ID:DmPvlaR4
datumなんて見たことすらないしな
2016/06/22(水) 11:55:36.82ID:yBOVYSwe
datumは見たことあるな
miceとかも見たことあるな
2016/06/22(水) 21:58:10.88ID:aSQEHncx
indicesを最近まで知らずにindexesって書いてたわ
2016/06/23(木) 11:49:21.94ID:332nxUAD
railsみたいにそういうの判っててindexesにしてるケースもある
2016/07/04(月) 21:58:16.57ID:0RWmorvn
2400bpsの通信速度のコンソールに9600bpsの通信回線の通信ログを吐き出すプログラム
2016/07/05(火) 23:20:03.68ID:kKcHGrML
んー、ちょっとスレの趣旨と違うかな。
2016/07/12(火) 09:09:02.35ID:GUx/gdNo
C#で、糞長いメソッド内の処理を、意味のある単位にregionで囲ってるの見ると、切り出したくてムラムラする。
2016/07/12(火) 12:22:44.71ID:DRheqrQu
担当が逃げて押し付けられた、こんなコードに責任は持ちたくない
でも読まなきゃいけない読めなきゃいけない…
その妥協点がregionなのさ
2016/07/13(水) 22:27:12.90ID:cbsCrAwe
読まずに保守するテクニックを身につけないと辛いよ
2016/07/15(金) 09:11:47.85ID:RfCrCFKv
ドキュメンテーションコメントに嘘書くのやめろよ!
嘘になっちゃうような修正をするなら、コメントもちゃんと見直してくれや
2016/07/31(日) 13:48:17.71ID:kJ3Jsux+
forの中が1000行以上・・・
2016/08/29(月) 07:53:30.56ID:7JUajOeD
仕事でFORTRAN77の年代物の科学技術計算コードを最適化(並列化含)したことあるんだがあれはひどかった。

この世の糞が全て詰まってたコードだった。誇張抜きで
2016/09/01(木) 16:00:38.67ID:G1V/juoY
#regionて、IDEで見る以外に意味ないんだよね?
2016/12/08(木) 09:16:13.50ID:FEYStmIt
c++のコード引き継いだら

#define private public

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

もちろんこの行は消した。
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
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 +
2017/01/01(日) 19:19:04.92ID:HLv5dR03
https://code.hackerearth.com/7b7b82s
https://code.hackerearth.com/431130T
一生懸命に12時間もかかって書いたのにあまりウけませんでした
2017/01/01(日) 21:15:21.45ID:9MvoRZrQ
センスのかけらもない
2017/01/03(火) 18:26:56.42ID:kDLE0pJc
>>812
センスとはどういうことをさすの?
2017/01/04(水) 20:28:14.83ID:EyqoOVTu
エレガンス
2017/01/06(金) 12:03:13.07ID:Iab1DByP
>>813
2017/01/06(金) 12:11:20.90ID:5QBUIDnx
>>815
今ならクーラーではないか?
2017/01/06(金) 14:20:26.76ID:NYT/unlz
>>816
それはシロッコファン
2017/01/06(金) 15:24:21.81ID:XtKi9eaG
Your joke is not Coooool!!!
2017/02/06(月) 19:10:19.87ID:P0M4N+3Y
https://code.hackerearth.com/7b7b82s
https://code.hackerearth.com/431130T
自信作です評価してください
2017/02/07(火) 11:04:23.35ID:hm/AHdrI
情報エキスパートしか知らないのか、入門書を真に受けたのか
受注クラスに受注のすべてが書いてあった
2017/02/24(金) 06:22:47.09ID:8ATozeRB
// よくここで止まっていた(いつの間にか何故か解消しました)
2017/02/27(月) 12:20:37.06ID:GGu6vxcV
一年前の自分のコード
2017/04/08(土) 18:56:00.33ID:O01wSTFq
>>822
それそれ
自分が書いたかどうかすら忘れて今っているので、今必死に読んでいるんだが、まるで人のコードを読んでいる気分だ
824デフォルトの名無しさん
垢版 |
2017/05/06(土) 09:46:21.28ID:Xeh+WPsq
>>804 
シングルタスク(CPU1個)処理しか古い計算ソフトでは使えない。
並列化の描き方とは違う技術が必要。

逆に、当時のコンピューターに並列化したソースを読ませるとかなり遅くなる。
2017/05/06(土) 10:40:45.49ID:RxOQwEqu
いや保守運用を全く考えない使い捨てレベルの俺俺コードを保守させられたって話だろ
素人が描いたVBAに対する愚痴と大して変わらん
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|
2017/05/25(木) 01:23:57.90ID:hLFywp3s
>>822
それは自分のスキルが上がったらそう思うんだよ(震え声)
2017/05/26(金) 15:58:13.06ID:IgcvauO6
まだ衰えを知らんと見える
829デフォルトの名無しさん
垢版 |
2017/06/11(日) 18:40:50.70ID:WvFJ2VIF
cでもなくc++ でもないみたいなソース渡された時はcの仕事受けるのやめようと思った
cメインで書いてる癖に難しい処理で半端にc++ に逃げるくらいなら最初から全部c++ で書けよと
2017/06/11(日) 19:15:52.72ID:sCflcWBm
GDIplusですね判ります
2017/07/04(火) 10:13:42.35ID:hs91NIe1
vector<int> v(2);
v[0]=1;
v[1]=2;
2017/07/16(日) 15:02:14.04ID:pSlhsdXG
>829
betterCとしては想定内の使い方なんじゃないの?
2017/07/19(水) 09:35:02.32ID:q1yo5LZE
簡単なコマンドラインツールなんかを c で書いてて map 使いたい時なんかはそんな風になるな。
だからって printf を cout で書き直したりはしない
834デフォルトの名無しさん
垢版 |
2017/07/19(水) 11:32:18.81ID:+fK80sDM
cout使いにくすぎる
2017/07/22(土) 02:05:47.41ID:ynJS6V/x
C#ってどんなだったか
結局printfの書式文字列がオーパーツすぎた
836デフォルトの名無しさん
垢版 |
2017/12/16(土) 10:53:17.72ID:gY8Oz9or
江東区立深川図書館特殊

銅和加配

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

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

翌日、被害者を公務員が脅していた
2018/01/20(土) 14:52:43.07ID:gdCBjjap
俺のなかでは>>806が最狂
2018/02/06(火) 13:41:29.39ID:b4eIkJtx
ファイルローカルか公開へッダかでだいぶ違うが、後者だろうな
2018/02/07(水) 11:16:22.68ID:mhmm9auu
https://github.com/oreilly-japan/deep-learning-from-scratch/blob/master/ch04/gradient_simplenet.py
https://github.com/oreilly-japan/deep-learning-from-scratch/blob/master/common/functions.py
https://github.com/oreilly-japan/deep-learning-from-scratch/blob/master/common/gradient.py
2018/02/14(水) 23:21:09.68ID:Ch48e2Ug
ソースコード自体じゃないんだが、俺が抜けた後にそのプロジェクトの保守になった人の運用方法が……

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

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

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

※なお、このプロジェクトはSVNでバージョン管理されている
2018/02/14(水) 23:43:27.72ID:0BZdrCiI
コメントに勢いがあってよろしい
2018/02/16(金) 14:51:35.99ID:dBpGhFbZ
!とか?とかか
2018/02/19(月) 23:12:20.19ID:oh22XJYs
俺が見た中で最凶。C言語。

len = strlen(hoge);
strncpy(piyo, hoge, len);
2018/02/25(日) 15:48:10.58ID:zMzuH2DP
ソースファイルがコメント含めて 12669行
このファイルで
最大のメソドがコメント含めて 1109行
メソド引数が 36個
非スタティックメソドにフィールド値を ref渡し

-->MS純正
2018/02/25(日) 16:45:59.94ID:bfs3ZT86
創業者のコードが汚いって従業員から言われていたからな
2018/03/16(金) 13:22:49.42ID:iQOXhM1r
hello Cで書いといて
847デフォルトの名無しさん
垢版 |
2018/04/16(月) 07:14:25.33ID:mCdEMxnL
【悲報】Fラン大学生「説明会どこも満席やんけ…せや!ソースコード見たろ!」→学歴フィルターの存在がバレる [973639274]
https://leia.5ch.net/test/read.cgi/poverty/1523795256/
2018/04/24(火) 18:20:16.99ID:L4B9HbPY
",".join(tokens)
849デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:46:52.59ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

95649
2018/05/24(木) 10:56:26.89ID:cPlRxlDn
95649
2018/06/17(日) 12:09:14.85ID:eEWfV0tw
Web系だとJavaScriptの広告スクリプトはインデントもなく難読化していてgoto文に似た
身近なクソコードの代表例といえるだろう。

おいらが見た最悪のコードはN88BASICをQuickBASICに書き直したの古い計算コードで、
行番号のN88BASIC構文と構造化(プロシージャ使用)が混載して併記され、プロシージャ
内部からいきなりサブルーチンコールし、すべてリターン値はグローバル変数、コメント無し、
goto文多用、マルチラインetc、行番号を模したラベル等々、などで書かれたソース。
これで難しい多項式計算していた。誰も保守できない年代物。
2018/06/17(日) 13:25:48.64ID:wUKxAbyR
test
2018/06/25(月) 01:09:11.76ID:0fvqZlTl
>>637
その気持ちは非常に理解出来るが、最終的に宗教論争になるから面倒臭い話になる。
854デフォルトの名無しさん
垢版 |
2018/06/25(月) 14:40:31.63ID:tpBtUwyy
>>637
同意
2018/06/25(月) 15:37:18.94ID:Hg3UIOsE
え、
if(kinoko == stick){


}
else{

}
普通こうじゃねえの?2つとも気持ち悪いんだけどw
2018/06/26(火) 08:50:23.13ID:yMm+llWk
宗教戦争なら俺も参加するぞ
if(kinoko == stick) {

} else {

}
2018/06/26(火) 20:56:53.52ID:U8uJnyaI
宗教戦争なら俺も参加するぞ
if(kinoko == stick)
{

}
else
{

}
2018/06/26(火) 21:23:05.10ID:2pQhxa7B
{}だけの行やめろ
2018/06/26(火) 22:50:54.21ID:QkHrlT54
詰めて書くの嫌い
2018/06/29(金) 17:48:57.75ID:zrWbD+LP
function
{
  if () {

  } else {

  }
}

つかどんな言語であれ
その言語を代表するフレームワークとかで
コーディング規約として明示されてるから
それを守ればいいだけ

頭が悪いやつほど俺々ルールを作ろうとする
2018/06/29(金) 19:08:43.50ID:mF6xIVde
プロジェクトによっては整形ツールの設定やlintのルールが決まってたりするからな
862デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:08:32.84ID:gFgZc5FG
X69
2018/07/05(木) 16:33:12.12ID:AeL6VB/V
X69
2018/07/09(月) 22:05:35.39ID:JZ4qv3b5
>>857
その書き方は、ぶら下がりif文が書ける言語でぶら下がりif文を検出するためだけに意味があっただけ。
最近の言語は1行が長い場合が多いから、1行1文字でスカスカなコードはかえって読みづらい。

と、俺は思うのだが。
2018/07/10(火) 08:55:02.87ID:OdsbRLtu
なんで同じソースましてや関数内にブレスの開始が違うものが混在してるのかが不思議、開始と終了は揃えたい
2018/07/10(火) 09:31:12.22ID:Bom3LCGb
担当が代わったんじゃね
■ このスレッドは過去ログ倉庫に格納されています