今までみた絶望的なソースコード [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
今井氏:ソースコード公開は、社長のティム(*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 「datas」って英語圏でも使ってるの見るね。間違いではないのかな? int a[10]; int b[10]; int c[10]; があったとき、 a, b, c をまとめると datas それぞれは data だっていうのを聞いたことがある 信じるか信じないかはあなた次第 datumは見たことあるな miceとかも見たことあるな indicesを最近まで知らずにindexesって書いてたわ railsみたいにそういうの判っててindexesにしてるケースもある 2400bpsの通信速度のコンソールに9600bpsの通信回線の通信ログを吐き出すプログラム C#で、糞長いメソッド内の処理を、意味のある単位にregionで囲ってるの見ると、切り出したくてムラムラする。 担当が逃げて押し付けられた、こんなコードに責任は持ちたくない でも読まなきゃいけない読めなきゃいけない… その妥協点がregionなのさ ドキュメンテーションコメントに嘘書くのやめろよ! 嘘になっちゃうような修正をするなら、コメントもちゃんと見直してくれや 仕事でFORTRAN77の年代物の科学技術計算コードを最適化(並列化含)したことあるんだがあれはひどかった。 この世の糞が全て詰まってたコードだった。誇張抜きで #regionて、IDEで見る以外に意味ないんだよね? c++のコード引き継いだら #define private public てのを見たことある。 逆に新鮮だった。 もちろんこの行は消した。 >>806 unit test でもやってたんじゃね? #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 + Your joke is not Coooool!!! 情報エキスパートしか知らないのか、入門書を真に受けたのか 受注クラスに受注のすべてが書いてあった // よくここで止まっていた(いつの間にか何故か解消しました) >>822 それそれ 自分が書いたかどうかすら忘れて今っているので、今必死に読んでいるんだが、まるで人のコードを読んでいる気分だ >>804 シングルタスク(CPU1個)処理しか古い計算ソフトでは使えない。 並列化の描き方とは違う技術が必要。 逆に、当時のコンピューターに並列化したソースを読ませるとかなり遅くなる。 いや保守運用を全く考えない使い捨てレベルの俺俺コードを保守させられたって話だろ 素人が描いたVBAに対する愚痴と大して変わらん 一年前の自分のソースを見たときの俺 _ □□ _ ___、、、 //_ [][]// ,,-―''':::::::::::::::ヽヾヽ':::::/、 誰 書 こ // \\ // /::::::::::::::::::::::::::::::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| >>822 それは自分のスキルが上がったらそう思うんだよ(震え声) cでもなくc++ でもないみたいなソース渡された時はcの仕事受けるのやめようと思った cメインで書いてる癖に難しい処理で半端にc++ に逃げるくらいなら最初から全部c++ で書けよと vector<int> v(2); v[0]=1; v[1]=2; >829 betterCとしては想定内の使い方なんじゃないの? 簡単なコマンドラインツールなんかを c で書いてて map 使いたい時なんかはそんな風になるな。 だからって printf を cout で書き直したりはしない C#ってどんなだったか 結局printfの書式文字列がオーパーツすぎた 江東区立深川図書館特殊 銅和加配 奇声あげて人をボコボコにぶんなぐってもOK お咎めなし 被害者が警察を呼んでくれと何度も言っているのに公務員は無視し続けてた 幼児が歓声上げて走り回る 見ぬふり 小学生が歓声上げて走り回る 見ぬふり 中学生が大声で談笑して走り回る 見ぬふり 高校生が閲覧机で談笑雑談 見ぬふり 公務員による恣意行為 etc なんのための施設か? →特殊な関係用 翌日、被害者を公務員が脅していた ファイルローカルか公開へッダかでだいぶ違うが、後者だろうな ソースコード自体じゃないんだが、俺が抜けた後にそのプロジェクトの保守になった人の運用方法が…… /source_new /source_new2 /source_new3 /source_new_rXXXX /source_new_rXXXY ... ってディレクトリがいつの間にか、各リビジョン毎に出来てて、中身丸々コピーして書き換えてる かつ、ソースのコメントには // リビジョンXXXXでの変更です! とだけ書いてあり、更に元々は // 下記の条件を満たす // 詳細は○○の仕様書を参照 みたいに書いてあったところがことごとく // リビジョンXXUU以前での変更です! というコメントに書き換えられて行ってるんだが…… ※なお、このプロジェクトはSVNでバージョン管理されている 俺が見た中で最凶。C言語。 len = strlen(hoge); strncpy(piyo, hoge, len); ソースファイルがコメント含めて 12669行 このファイルで 最大のメソドがコメント含めて 1109行 メソド引数が 36個 非スタティックメソドにフィールド値を ref渡し -->MS純正 創業者のコードが汚いって従業員から言われていたからな 【悲報】Fラン大学生「説明会どこも満席やんけ…せや!ソースコード見たろ!」→学歴フィルターの存在がバレる [973639274] https://leia.5ch.net/test/read.cgi/poverty/1523795256/ 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 95649 Web系だとJavaScriptの広告スクリプトはインデントもなく難読化していてgoto文に似た 身近なクソコードの代表例といえるだろう。 おいらが見た最悪のコードはN88BASICをQuickBASICに書き直したの古い計算コードで、 行番号のN88BASIC構文と構造化(プロシージャ使用)が混載して併記され、プロシージャ 内部からいきなりサブルーチンコールし、すべてリターン値はグローバル変数、コメント無し、 goto文多用、マルチラインetc、行番号を模したラベル等々、などで書かれたソース。 これで難しい多項式計算していた。誰も保守できない年代物。 >>637 その気持ちは非常に理解出来るが、最終的に宗教論争になるから面倒臭い話になる。 え、 if(kinoko == stick){ } else{ } 普通こうじゃねえの?2つとも気持ち悪いんだけどw 宗教戦争なら俺も参加するぞ if(kinoko == stick) { } else { } 宗教戦争なら俺も参加するぞ if(kinoko == stick) { } else { } function { if () { } else { } } つかどんな言語であれ その言語を代表するフレームワークとかで コーディング規約として明示されてるから それを守ればいいだけ 頭が悪いやつほど俺々ルールを作ろうとする プロジェクトによっては整形ツールの設定やlintのルールが決まってたりするからな >>857 その書き方は、ぶら下がりif文が書ける言語でぶら下がりif文を検出するためだけに意味があっただけ。 最近の言語は1行が長い場合が多いから、1行1文字でスカスカなコードはかえって読みづらい。 と、俺は思うのだが。 なんで同じソースましてや関数内にブレスの開始が違うものが混在してるのかが不思議、開始と終了は揃えたい 99%の凡人は可能な限り独自の書き方は避けて 優秀な人間の考えたフレームワークやライブラリのコーディング規約に倣うべし 過去の財産に倣うというのはプログラマに必要な資質の1つ 過去の財産に倣うというフレーズに資質とゆう単語を繋げてしまうと この人は抽象化して考えるくせがないんやなと思われてしまうで プログラマーに重要な資質の一つが欠けとるな、と ノンプログラミングのBIツールを700万で導入 GUIで作れる優れもの 入れた奴はプログラマの人件費が浮くから長期的に安いと息巻いてた でも現在管理してるのは派遣プログラマの俺 VBAと違ってネットに情報無いから詰んでる >>869 よかったな めっちゃ費用浮いてるやん! 会社が ノンプログラミングツールだからってプログラムの技量が低くていいってことにはならない やっぱり知識も注意力もいる ノンプログラミングツールのいいところは それに従事した人間が、汎用的な知識を得ることなく そのツール以外のことができない役立たずになることだ その会社とその仕事に依存せざるを得ないからずっと安くこきつかえる やったね! >>871 汎用的な知識を持って初めてノンプログラミングツールだよな 知らない人間がやったらソフトウェア開発失敗の歴史を一通り体験することになる フレームワークとかでも一緒 フレームワークの使い方は少し知ってても 言語の仕様をろくにしてない馬鹿とかザラにいる 潰しがきかないというか、お前は一生そのフレームワークで食っていくつもりなのかとw そりゃIT土方にもなりますわ プログラマになった時点で なんぼ汎用的でも所詮は人のつくったオモチャの知識で 頭埋め尽くされてるんやで… >>875 コンピュータサイエンスの研究して提案してる側でないとそうなるよね >>874 それでもフレームワークはコミュニティが存在して詰まるポイントは情報交換してるから良い 弱小ベンダが作った独自ノンプログラミングツールはサポートも含め使い方解らない 某一部上場企業に出向してた時がcobolをラップした日本語でプログラミングする企業だったな。 もう史上最低レベルでわからんかった。それで皆やってたから俺の応用力がないんだろうけど。 プログラミングじゃなくてコピペで作る積み木をやってる感覚だった。ベースのソースファイルなんか1つで100万行超えてたからな・・・ >>880 しかも単体テストが出来ないから結合テストの時まで目視。作った段階じゃ動くかどうかもわからない。 本番環境じゃなくてテスト環境なのに、テストする為だけにプロセスコンパイル申請して(自分で勝手にコンパイル出来ない) リンカが動いてる時はなんと100人近いプログラマが一切動けない。だからバグ頻発させる案件担当は恨まれる。 1箇所でも変数やバグ修正する度に、修正した変数が使われてる関数全ソースを「紙に出力」して案件担当に報告する。 無論その関数も二段組で10枚を超えるようなものもザラ。 ソースも絶望だったが会社そのものも絶望だった・・・これで一部上場企業でISO取得してるってんだから 世の中狂ってると思ったわ。今もあんなんやってんだろうか・・・ ある有名大学を卒業した若手女子プログラマーが書いていたもの if for if else if else if >>4 else //上書き result 再帰n個まで対応として同じ処理をネストで内部にたくさん継ぎ足すのはなかなか ネストが4階層以上あるコードが頻出してるかどうかで プログラマとしてのセンスの9割以上が分かると思う ネストの4階層はよく言われてる事だろ ネストの深さは闇の深さってな ネストの深さで分かるのは無能である事だけやぞ? センス関係ないやんw てか無能はコード見るまでもなく一言話せば分かるしw 迸っとるからな無能がwおまえらみたいにw ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる