今までみた絶望的なソースコード [転載禁止]©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
66デフォルトの名無しさん
垢版 |
2015/05/10(日) 11:59:03.70ID:x043ivF3
#本当はうごかないはず
67デフォルトの名無しさん
垢版 |
2015/05/14(木) 19:48:56.69ID:KwWkhxua
行数が多すぎてコンパイルできない。
2015/05/14(木) 20:03:23.27ID:I7g8lu0W
なんだそれ
2015/05/15(金) 19:31:56.50ID:WZ+HCGJP
どうみても間違っているソースだな
明らかに昨日要件とは違う実装
数週間前に別のやつが触っているのに誰も申告しない

後から知ったが、彼奴にあてがえば、そこも直した上で機能変更も設計変更もやってくれる
と考えた仕打ちだそうです。

安くて真面目に仕事して、能力あると思われると、死ぬまで仕事が降ってくる。
2015/05/16(土) 00:20:16.24ID:cD0zsv9F
今悩まされてるのが同じロジック別モジュール
作成者が統一化に猛反対
馬鹿は本当に死んでくれ
2015/05/16(土) 01:05:34.17ID:atT3KGbX
>>70
既存に似たものあるから統合するって感じ?
作成者は少々いじられるのも嫌と?
可能な限り共通化して分離必要な箇所はインターフェース化して個別実装だな
ソースコピペとかは技術者を名乗ってはいけない
2015/05/16(土) 01:51:37.25ID:+UC07Y5W
>>70
ロジックが同じかどうかでまとめるのではなくて、
役割で考えないとダメだよ。

同じロジックであってもまとめるべきではないこともたまにある。

例えばTwitter APIとAWS APIの内部で同じ処理をやっていたとしても、
役割はそれぞれ別なので分けるべきだろう。

もちろん汎用モジュールに分けられるようなものであれば
分けた方がいい。
2015/05/16(土) 06:32:17.99ID:y0uxq7/N
自動車の大規模リコール騒ぎを見てれば
なんでも共通化すればいいってもんじゃない
ということは言える
2015/05/16(土) 09:42:11.75ID:T8dXcHE3
同じロジックでも制御対象が別ならコピペして分けておく
現在たまたま同じロジックで済むだけだから
2015/05/16(土) 10:51:43.92ID:atT3KGbX
>>74
分ける必要が出た時に差分を個別実装すればいいだけ
コピペされたコードなんて誰もメンテしないぞ
特に他社のコード引っ張って来たら絶対触れない
不具合出ても一方は修正されたのに一方は修正されない
客からしたら不具合治ってないとクレーム
それが続けば信用問題にもなりかねない
月日が経てばもはやどっちがオリジナルか判別不明
2015/05/16(土) 11:56:34.39ID:cD0zsv9F
>>71が正解
日付け事にコピペしてんだよ!!
モジュール統一化してパラメーター渡しにしたらえらく御立腹w
2015/05/16(土) 12:13:54.92ID:SZ2m/aFp
要するに自分の管理外にコードが出ていくのが嫌なのね
気持ちは分からんでもないけど、そいつテスト書いてないだろ
2015/05/16(土) 13:13:51.56ID:RLs2q5hO
コードは自分以外が読むものとして書くべき。
2015/05/16(土) 15:16:33.13ID:cD0zsv9F
>>72>>74と仕事すると大変だろうな
2015/05/16(土) 15:20:46.44ID:CnFMKOW2
>>79と仕事するほうが大変だろw
理由はわかっている人には明らかだらあえて言うまでもないが。
81デフォルトの名無しさん
垢版 |
2015/05/16(土) 15:32:07.60ID:/LBMRGuE
同じコードだからって領域が違うものをまとめるのはアホ。
コピペの方がまだマシ
2015/05/16(土) 15:57:15.01ID:SZ2m/aFp
たぶんここから濃厚な罵倒合戦の火蓋が切って落とされると思うんですけど
83デフォルトの名無しさん
垢版 |
2015/05/16(土) 16:13:02.95ID:EsD9+D7Y
結果的に同じものができたから、一つにするという考えは間違っている。

共通モジュールは設計段階で考えることで、実装段階で考えることではない。

ましてや他の機能やシステムとの間で共通化することなどありえない。

汎用モジュールとして使うとしてもパッケージソフトくらいにしか適用できない。
2015/05/16(土) 17:41:36.12ID:atT3KGbX
>>82
禿同w

>>76見ると日付毎言うてるから相当悲惨と思われる
俺はオブジェクトのシリアライズでバージョン毎に完全に分けられてて泣いた
どうせフィールド追加しただけなのに全部コピーするから一万行超えてたwww
差分だけ追加するようにしたら200行…
2015/05/16(土) 18:21:40.06ID:UflOEuuo
このスレの誰と仕事すると大変か、という問いに関しては
「土曜の昼日中に2chやってる奴」が答え
2015/05/16(土) 18:30:16.32ID:cD0zsv9F
ソースのコピペを肯定する人多いのか
>>84状態なんだがw
2015/05/16(土) 19:03:32.28ID:0p3VeBPS
同じ処理が複数箇所に書いてあるなんぞあり得ない。
88デフォルトの名無しさん
垢版 |
2015/05/16(土) 20:12:39.41ID:sArM/Yx9
>>87
アフリカの猿とアマゾンの猿は、同じに見えるかもしれませんが、別物です。
初心者にはわからないかもしれませんが。
2015/05/16(土) 20:18:53.90ID:O24SflU+
そこでOOPですよ
90デフォルトの名無しさん
垢版 |
2015/05/16(土) 20:31:58.78ID:/LBMRGuE
oop厨ってアホだな。
共通化してはいけないものをなんとか共通化したいのならアスペクトだから。
91デフォルトの名無しさん
垢版 |
2015/05/16(土) 20:54:20.49ID:0p3VeBPS
>>88
「同じに見える」んじゃなくて「同じもの」なら共通化して当たり前。
92デフォルトの名無しさん
垢版 |
2015/05/16(土) 21:03:55.92ID:/LBMRGuE
その理屈でいうとforで0から順にインクリメントするものも関数化しないとな。
DoForZero2(100,print)

おー、短くなった。
流石プロですねー
93デフォルトの名無しさん
垢版 |
2015/05/16(土) 21:13:10.81ID:0p3VeBPS
つーか毎回同じコードコピペしてんの? まじで?
94デフォルトの名無しさん
垢版 |
2015/05/16(土) 21:18:26.81ID:0p3VeBPS
それ、IT業界の中でも特定の業種だよね。
メーカーの内製でそんなことしないだろ?
2015/05/16(土) 21:19:35.97ID:UflOEuuo
>>92
アホは喋るの止めた方がいいよ
帯域も容量も地球の資源ももったいない
2015/05/16(土) 21:23:40.37ID:SZ2m/aFp
というか、pythonのrangeをmapで使おうとすると
まさにそんな感じのコードですわ。
視野の狭い人ね。
2015/05/16(土) 22:42:32.71ID:pszRfElg
>>82
2015/05/17(日) 02:35:55.03ID:c3gAm3/x
>>85
>このスレの誰と仕事すると大変か、という問いに関しては
>「土曜の昼日中に2chやってる奴」が答え

18:21:40.06 ID:UflOEuuo

書き込めるまで我慢してたんだろな〜www
2015/05/17(日) 04:53:31.15ID:gpE1Sl6q
>>86
>>71 だと実装の継承しようとしてるので、OOP 的には >>72 >>74>>83 みたいな反論は普通出てくる
ただ >>76 見るに相当ひどいみたいだし、何か特別な理由があるんじゃないかと

頻繁に特定の日付時の状態にバイナリ互換で戻すとか?あるかそんな事
2015/05/17(日) 09:05:05.05ID:5hOzuN4k
例えばヤフーのようなIDでログインさせるAPIを他社に提供することを考える
この場合ログイン処理をクラスとして切り出ししそのインスタンスのログイン処理をコールしてもらえるように設計するだろう
つまりヤフーも他社も同じクラスのインスタンスを持ちそのログイン処理を共有する

他社がヤフーのログイン処理を実装したりヤフーが提供先ごとにログイン処理を実装することがあるだろうか?
1つの処理もまた1つのオブジェクトだよ
2015/05/17(日) 09:18:21.06ID:c3gAm3/x
>>99
スレタイ嫁
特別な理由はそういうコード書く人物が存在する事だろ
2015/05/17(日) 09:56:39.55ID:CzRQDZeG
>>100
>つまりヤフーも他社も同じクラスのインスタンスを持ちそのログイン処理を共有する

そのやり方だとセキュリティがザルになるけどね。
2015/05/17(日) 09:59:30.81ID:eUJr406l
コピペするに足る理由がある時はいいんだよね?
例えばFlashがリテンションしてプログラムの一部が読めなくなった時でも
最低限人が死なない程度に制御するためにバイナリレベルで多重化するような場合とか
2015/05/17(日) 10:30:23.26ID:CzRQDZeG
>>99
一昔前のCOBOLでなら、聞いたことはある。
2015/05/17(日) 11:57:01.86ID:c3gAm3/x
>>103
それをソースコードのコピペと呼ぶのか
2015/05/17(日) 12:12:04.44ID:nE1QdxB9
>>61
逆にこういう例ってどうするのが正解なの?
2015/05/17(日) 15:27:46.20ID:wvzPz3Ba
絶望を与えるのに間違ってる必要性はないんだ
2015/05/17(日) 16:14:09.30ID:nE1QdxB9
すごく納得した
109デフォルトの名無しさん
垢版 |
2015/05/17(日) 20:54:56.74ID:8eviomzT
変数の取り違えに気づき、途中で値の交換を行ってたコード
110デフォルトの名無しさん
垢版 |
2015/05/17(日) 20:58:00.05ID:8eviomzT
if文でどんどん分岐し、重複ロジックを大量に書いてあったプログラム。
2015/05/17(日) 23:28:50.20ID:c3gAm3/x
>>107
≫≫110とリンクするな(笑)
112デフォルトの名無しさん
垢版 |
2015/05/18(月) 00:27:44.33ID:R6qIQaEG
派遣先で部下というか新しいメンバーにコード書かせたら恐ろしいコードよこしやがった。

ifのネストじゃなくて、同じifの判定をこれでもかってくらい繰り返してんの。

もうそこやめるからテスト通して放置。
2015/05/18(月) 00:59:25.35ID:92QLSF+E
てーへんっすね
(大変ですねと、そんなレベルの低い人間と働かなきゃいけないなんて
あなたもやはり底辺の住人ですね、を掛けている)
2015/05/18(月) 04:23:14.79ID:eg26D6LT
>>112
飛ぶ鳥跡を濁さず
知ってて放置は良くないぞ

>>113
同じ会社でも個々の能力はピンキリだろ
とくに大きい会社になるほど色んな奴と出会う
115デフォルトの名無しさん
垢版 |
2015/05/18(月) 06:10:30.81ID:2t3/vjAH
コードソムリエ。
2015/05/18(月) 06:12:37.96ID:ezOKhhiH
>>114
> 飛ぶ鳥跡を濁さず

濁してるのは、飛ぶ鳥の方じゃないですからw
117デフォルトの名無しさん
垢版 |
2015/05/18(月) 06:44:46.92ID:2t3/vjAH
飛ぶ鳥を落とすため、最高のライフルをご用意いたしました。
2015/05/18(月) 07:08:35.97ID:hxINsIbc
>>114
ことわざ間違えるのは恥ずかしいから
119デフォルトの名無しさん
垢版 |
2015/05/18(月) 12:17:01.94ID:NlgV+Pgh
同じifの判定ってどういうこと?
if(a == 1) print "1";
if(a == 1) print "1";
if(a == 1) print "1";
なわけないよな?

if(a == 1) print "1";
if(a == 2) print "2";
if(a == 3) print "3";
って感じか?
2015/05/18(月) 12:21:28.58ID:ndOcmHbS
>>118
知って飛び去るのはよくないっていうことでは?逃げるが勝ちの方がふさわしいと思うが。
2015/05/18(月) 14:17:46.16ID:oJXHJ+WI
>>120
http://kotowaza-allguide.com/ta/tatsutoriatowonigosazu.html
2015/05/19(火) 20:48:19.66ID:goeUU+n9
お前らが管理しているソースで一番古いのっていつ頃のソース?

俺は1997年作成って言うソースが一番古い(C++)
かなりいろんな人がバグ修正、機能追加していて3K程のソース。

それ以外にも2004年以前のソースが20本位ある(これもC++)

仕様書もソースも追加修正だらけで、作り直したいけど、動いているソースなんで勝手に修正するなって
言われていて作り直すわけにもいかなくて困ったもんだ状態だわ
2015/05/20(水) 00:15:49.66ID:mFPTvTAh
>>122
ボトルネックなんかが明確なら再作成ありだが、ただコードを綺麗にしたいってのはただのマスターベーションだしな
2015/05/20(水) 07:37:13.08ID:VJuVsJlg
まあ動作実績のあるコードは触らないのが鉄則だからな
仕様変更を待つしかないね
2015/05/20(水) 08:43:49.75ID:do2GoB8K
>>122
そのコードが今でも頻繁にメンテされているならありだが、特に問題がなく、今後も大きな拡張が見込めないなら何もしないほうがいい。きもちは痛いほど分かるけどね。
2015/05/20(水) 17:56:58.18ID:qzEPJuIN
念の為に言っておくと、開発効率が悪いから
不具合が発生するリスクが高いから
という理由でコードを綺麗するのは重要なこと
2015/05/20(水) 18:25:43.60ID:zgEA4FV1
開発側の100%負担なら誰も反対しないだろうが、オナニしたいから開発費用を払って!
と言われて金を出す奴がいるとすれば、ただの鴨と鵜飼
2015/05/20(水) 18:41:48.75ID:qzEPJuIN
ムダに高い金を払っているってことを
知らせない、知らないほうがお互い幸せだからなw

金を払う方は金を払って、作る方は残業して。
こんなに苦しい物が実は無駄なんてw
2015/05/21(木) 00:32:12.22ID:l4RR4WuM
この手の議論は請負系と自社開発とで考え方が変わってくるな。
2015/05/21(木) 08:11:01.01ID:Tg0bXDwp
請負なら検収さえ通ればゴミ納品してもいいしな
2015/05/22(金) 00:19:08.23ID:vgLs0WMP
>>125
ボトルネックがあると書いとるだろw
2015/05/22(金) 00:43:49.77ID:2YhMDzu7
>>131
どこに?
133デフォルトの名無しさん
垢版 |
2015/05/26(火) 17:31:46.23ID:/aaRFu7k
>>130
空のCD-Rで納品したことあるわ
134デフォルトの名無しさん
垢版 |
2015/05/27(水) 22:40:06.08ID:nLndRoUd
プログラムできないけど、上司に取り入る事だけ
上手い営業みたいなサーバ管理者が、
プログラマの俺が居るのに、
「ノンプログラミングでデータベースを自在に閲覧出来る
BIツールを買えば、見える化が促進できる!
プログラマをリストラすれば十分ペイ出来る」と、
偉い人に取り入って、システムを導入したんだ。

蓋を開けたら、データ取り込みから定義作成まで
BIツール謹製のSQLやロジックを書かないといけない
絶望的な代物だった。

結局、俺が書いてる。。。
135デフォルトの名無しさん
垢版 |
2015/05/27(水) 22:41:00.34ID:nLndRoUd
簡単なサンプルは、ドラッグアンドドロップで
ポンポン作れるんだけど、いざ実務に即したものを
作ろうとすると、その単純さが仇となって、
猛烈に長いコードを書く羽目になった。

さらに、デバッグなんて機能が無いから、
結果が想定と違っていても、原因の切り分け方法が
無いときてる。

もう、苦行としか言いようが無い。
2015/05/27(水) 22:42:28.66ID:1SVgoR5i
クビにならなくて良かったろw
137デフォルトの名無しさん
垢版 |
2015/05/27(水) 22:45:36.49ID:nLndRoUd
>>136
XAMPPで簡単に出来ることが
根本的に無理になったり、激ムズになったりしてる。

単純な四則演算で変な結果が出た時には
固まった。

そんなドマイナーなノンプログラムのプログラムなんて
身にならないし、もう辞めたい。

俺が辞めたら、確実に死蔵されるだろうな。アレ。
138デフォルトの名無しさん
垢版 |
2015/05/27(水) 22:48:33.04ID:nLndRoUd
絶像的なノンプログラミングのプログラマになれば、
長い間、飯の種になるかも知れない。

求人かけても、ドマイナーなシステムのプログラムなんて、
誰も解らんだろうし。。。
139デフォルトの名無しさん
垢版 |
2015/05/27(水) 22:59:10.90ID:nLndRoUd
BIツールの特性を知った上で使うなら、
効果的に使えると思う。

でも、高いシステムを買ったんだからと、
複雑な要件を盛り込むと、途端に破たんする。

そして、専門外の偉い人は、
複雑な要件を盛り込みたがる。

世の中、そんなもんだって感じで、
達観するしか無い状態。
140デフォルトの名無しさん
垢版 |
2015/05/27(水) 23:04:37.21ID:lx8cNW16
BIツールってコンサルタントのただの商品だからな。
2015/05/28(木) 00:33:54.59ID:odZ+ejWb
銀行系SEをリストラされた親戚がマイナーなサーバー管理ツールを使ってたな
本人はapacheのマニュアルすら読んだことないんだと
2015/05/28(木) 07:17:10.11ID:4DphScwy
>>141
なんか可愛そうだよね。
多くの時間を、他の会社では使えない知識を
学ぶのに使ってしまうのって。
2015/05/28(木) 08:38:16.04ID:nbjUOWor
目的と観点を明確に使っているかだろ
ツールのいいなりじゃどうしようもないが、そこがわかっていれば他のツールも直ぐに使いこなせる。


問題は、そういう機能も出力もないツールを掴まされて使う必要があるとき
ワンオフのシステムによくある、
2015/05/28(木) 14:04:48.55ID:+z3HE+1N
パフォーマンスの点から見て絶望的なのに無理やり二分木を使ったプログラム
頭が湧いてるんじゃないかと思う
2015/05/28(木) 14:59:54.71ID:xfxVVPCq
>>141
さすがにサーバー管理をやっているなら自分でapacheくらい勉強するだろう。リストラされても仕方がない。
146デフォルトの名無しさん
垢版 |
2015/05/28(木) 17:13:30.69ID:lDPgwgfB
>>145
元銀行のSEだぞ?
2015/05/28(木) 18:11:36.01ID:QUSVe/9V
cobol製webサーバーとかあんのかな
俺は業界門外漢だから知らね
2015/05/28(木) 18:30:03.55ID:BS3T4776
銀行系専門がOSSなんてさわったらジンマシンに襲われるんじゃね
2015/05/28(木) 19:37:07.34ID:UEKaugFR
>>145
ないない、そもそも銀行で apache なんて使わない
Oracle Application Server とか IBM Http Server とかだよ
まあ、中身は... だけどね w
150デフォルトの名無しさん
垢版 |
2015/05/28(木) 20:25:43.64ID:+ywrUonY
>>149
Apacheがないところなんてないと思うが。
2015/05/28(木) 20:52:15.94ID:6zahNw0I
>>150
> まあ、中身は... だけどね w
の意味わかってないのか?
極論すれば中身なんてどうでもいいんだよ、なんかあった時に Oracle とか IBM の名前が出せることが重要
マジで OSS なんて使ったら死ぬぞ w
152デフォルトの名無しさん
垢版 |
2015/05/28(木) 21:06:20.31ID:+ywrUonY
>>151
おまえの立場が分からん。
2015/05/28(木) 21:13:13.15ID:gPuaPwC0
銀行のWebサーバなんて9割IISだぞ。
apacheなんて趣味用のサーバ使うわけがないだろ。
2015/05/28(木) 21:40:46.65ID:6zahNw0I
>>152
金融機関に納入したことあるベンダーなら誰でも知ってることだよ
155デフォルトの名無しさん
垢版 |
2015/05/28(木) 21:44:24.23ID:pwrXSWWR
>>147
汎用機のウェブサーバはあるけどな。
156デフォルトの名無しさん
垢版 |
2015/05/28(木) 22:04:08.01ID:+ywrUonY
>>154
おまえプログラマじゃないじゃんw
2015/05/28(木) 22:18:52.11ID:6zahNw0I
>>156
なにを根拠に言ってるのかわからん w
2015/05/28(木) 22:20:00.42ID:xfxVVPCq
>>146
銀行だからとか関係ない。
159デフォルトの名無しさん
垢版 |
2015/05/29(金) 00:06:10.68ID:9CwBFM33
プロなら普通、日立のミドルウェアで揃えるよな
160デフォルトの名無しさん
垢版 |
2015/05/29(金) 08:50:56.33ID:93alEFrQ
自分のいる現場が標準だと言ってるやつは何なの?
2015/05/29(金) 09:03:15.45ID:KVqhIdpV
今までみた絶望的なスレの流れ
2015/05/29(金) 09:08:21.83ID:1xJgnWA+
ここだと言いたいのかテメェはよ
2015/05/29(金) 12:58:09.22ID:08TmNpAe
>>158
それは銀行系を知らなすぎる
2015/05/29(金) 13:05:36.51ID:eZjwWKWh
銀行系と勘定系って違うの?
2015/05/29(金) 15:43:25.62ID:psnfn6m+
>>163
銀行系だからとか関係ない。そんな銀行しかわからん技術者だからリストラされるんだよ。それが嫌なら常に独学でも学び続けるか、管理する側に回るしかない。IT系では特に重要なこと。
2015/05/29(金) 21:18:39.98ID:H91kCqGL
>>164
銀行の中に勘定系と情報系がある
厳しいのは当然金を扱う勘定系
下手すると新聞沙汰になる
ただし情報系が甘いわけじゃないので、OSS なんて入れるアホは滅多にいないと思う
まあ、地方の信金とかは知らんけど w

>>165
銀行だけとは言ってない
銀行(メガバン)ではって話だよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況