X



今までみた絶望的なソースコード [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
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
0699デフォルトの名無しさん
垢版 |
2016/01/10(日) 13:12:39.79ID:/ndDSiBm
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

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

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

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

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

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

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

電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない
0700デフォルトの名無しさん
垢版 |
2016/01/11(月) 07:33:36.74ID:+0r+kZff
>>685
funcX(){
funcAB()
funcC()
}

funcAB(){
if
A
else
B
retuen
}

funcC(){
C
}

ってことなんじゃねーの。funcCが、funcABの動作に影響しないんであれば、
テストパターンは減らないけど、テストパターンごとの確認観点が減るんじゃない?
0701デフォルトの名無しさん
垢版 |
2016/01/11(月) 17:12:25.34ID:L4NGHVvd
ABとCが常にセットにして呼ばれる仕様だとしたら、
関数が増えて見通しが悪くなるだけな気がするけど
ユニットテスト利用する場合ってこうするほうがいいの?
0702デフォルトの名無しさん
垢版 |
2016/01/11(月) 17:25:55.13ID:WtkSn+b8
ソースコード見て問題なければテストする必要ないと思うの
0703デフォルトの名無しさん
垢版 |
2016/01/11(月) 17:50:15.50ID:d9M93+6h
完璧なプログラムを書けばテストは必要ない。
テストに頼るのは甘え。
0704デフォルトの名無しさん
垢版 |
2016/01/11(月) 18:22:50.45ID:zdgy9eHJ
プログラムが完璧でもコンパイラがバグっていて間違った実行ファイルができることもよくある
0710デフォルトの名無しさん
垢版 |
2016/01/12(火) 07:53:31.84ID:fdNSnT90
16bit系組み込みCで
配列の要素数が16bitに制限されるのを
無視したコード渡されてバグってた事あるな
コンパイラからの警告一切無し
0711デフォルトの名無しさん
垢版 |
2016/01/12(火) 08:05:23.03ID:fZplAbze
配列の添字が汎用レジスタのサイズ(≒int)の範囲に制限されるのは仕方ない
でもまともなコンパイラなら制限事項として明記してある
0719デフォルトの名無しさん
垢版 |
2016/01/13(水) 18:29:02.62ID:IMboGSkT
>>717
Cの標準ライブラリが無いってことは最近では非常にマレ
ROM容量の関係で使えないことはある
これを無いって言うなら無い
デカいのはprintfとか
あとはfloat, double, long longもROM容量の関係で使えないことも
0720デフォルトの名無しさん
垢版 |
2016/01/13(水) 18:32:38.56ID:IMboGSkT
標準ライブラリを使うのをためらうくらいの規模なら、当然ヒープも使わない
当然OSレスで、シングルタスク+割り込みのみ

もっと小さく、時計レベルのコードになると、そもそもコンパイラを使わない
0721デフォルトの名無しさん
垢版 |
2016/01/13(水) 20:04:23.38ID:AxNHdrPg
>>719
printf使えなかったらデバッグできないじゃん!
0722デフォルトの名無しさん
垢版 |
2016/01/13(水) 21:23:08.94ID:VbVWsLR9
>>721
リアルタイム性が不要ならICE(デバッガ)が使える
動かしながら変数の読み書きが出来るヤツもある

原始的なのだとポートを上げ下げしてオシロスコープで見るとか、LEDを点灯したりとか
0725デフォルトの名無しさん
垢版 |
2016/01/13(水) 21:58:56.38ID:AxNHdrPg
>>722
すごい世界
0726デフォルトの名無しさん
垢版 |
2016/01/13(水) 21:59:40.92ID:4t9WgEvh
putsどころかそもそも標準入出力ないからな
汎用ポートの空いてるピン使うか
JTAG使ってICEか計測器繋ぐかだな
0728デフォルトの名無しさん
垢版 |
2016/01/14(木) 00:28:34.09ID:qww60aj8
組み込みは感心する反面潰しきかないのがなんとも言えねぇ
組み込みは程々にした方がいいぞ
0729デフォルトの名無しさん
垢版 |
2016/01/14(木) 00:37:39.18ID:Xzg+p3Xe
シリアル入出力はよく使うけど、....
規模が小さいとデバッグ用だけにわざわざシリアルドライバを書かなかったり
そもそもシリアル用ハードが無かったり使えなかったり

非常にリアルタイム性が要求されるDSPプログラミングとかだと割り込みなんか使いたくないし、
小型マイコンだとバッファ用にメモリが割けなかったり

まあ物によってデバッグ方法もいろいろ
0731デフォルトの名無しさん
垢版 |
2016/01/14(木) 15:09:22.15ID:h8CGsofL
低速マイコンでRAMも使わずにCPUも占有せず、場合によってはポートも使わないでソフトUARTか
頑張って作ってね
0733デフォルトの名無しさん
垢版 |
2016/01/14(木) 20:34:54.74ID:1Js/RlWK
>>730
割り込み禁止にしてCPUサイクルでクロック作るのか
タイマ割り込み駆使してクロック作るのか
どっち?
0734デフォルトの名無しさん
垢版 |
2016/01/14(木) 20:44:59.00ID:Xzg+p3Xe
もう一個位は方法があるけど...
まあ普通はそんなことはせずもっと普通の方法を使う

スローCPU、RAM使えず、ピンが足りない、パフォーマンスがシビア
とかだと使えないし
0735デフォルトの名無しさん
垢版 |
2016/01/14(木) 20:46:17.30ID:Xzg+p3Xe
自分の主張を通す為に手段はどうでも良くなってるカワイソウな人は放っておこう
0736デフォルトの名無しさん
垢版 |
2016/01/14(木) 21:41:12.92ID:fK8eMzuy
なんでマイコン1個でやろうとすんだよ
そんな後付け条件出すなら信号垂れ流し用と信号待ち受け兼UART出力用のマイコン2つ使えばいいだろアホが
0737デフォルトの名無しさん
垢版 |
2016/01/14(木) 21:47:03.21ID:fK8eMzuy
>>732
AVRやLPC810とかなら知ってるけど?
つーか米粒の6ピンすらソフトで全二重UARTぐらい実装できるだろ
アホが
0738デフォルトの名無しさん
垢版 |
2016/01/14(木) 21:56:18.73ID:fK8eMzuy
>>733
ソフトUARTつても実装は色々あるからな
その全部かな
つーかアホはオシロやロジアナも使えないのか
0739デフォルトの名無しさん
垢版 |
2016/01/14(木) 22:09:04.91ID:Xzg+p3Xe
>>736
いや、マイコンの規模によって、いろんなデバッグ方法があるって話だが

デバッグ用にわざわざマイコンを積むのか?
金をかけて
組み込みはコストが非常に重要だったりサイズが非常に重要だったりするんだけど
で、複数マイコンを積んだとして、マイコン間の通信はどうする?
デバッグじゃなくてシリアル通信が目的になってないか?
0741デフォルトの名無しさん
垢版 |
2016/01/14(木) 22:21:14.63ID:fK8eMzuy
というか組み込みでデバッグ大変だわーで釣ってる奴が気に入らないわ
肝心なコアをMSに握られてるWindowsアプリのデバッグ考えるとただの愚痴にしか見えないんだわ
0743デフォルトの名無しさん
垢版 |
2016/01/14(木) 22:38:04.92ID:fK8eMzuy
>>742
誰が悪って言うならデバッグ方法いろいろとか書いといて具体的な方法は何一つ提示しないアホが悪いなんじゃないの?
組み込みはこういう口ばっかの奴が多くてうざいわほんと
0746デフォルトの名無しさん
垢版 |
2016/01/14(木) 22:40:31.37ID:fK8eMzuy
そういやここ絶望的なコードのスレなんだが
そもそも組み込みで絶望的な事なんてあるか?
作った品が売れないとかか?
0748デフォルトの名無しさん
垢版 |
2016/01/14(木) 22:43:01.11ID:fK8eMzuy
>>745
>>721は別のIDだしお前の発言かなんてわかんねーよ
ID:Xzg+p3Xeで具体的なこと何も書いてねーなーってことだよ
IDも判らないアホだって言いたいのか?
0749デフォルトの名無しさん
垢版 |
2016/01/14(木) 22:43:56.17ID:Xzg+p3Xe
>>746
いくらでもある
組み込みも規模はいろいろ
時計や簡単なオモチャレベルからWindowsを積んだようなものまで
0752デフォルトの名無しさん
垢版 |
2016/01/14(木) 22:46:09.80ID:fK8eMzuy
>いろいろある
>いくらでもある
吹いた
組み込み業界はこんなんばかりでまさに絶望的だな!
0756デフォルトの名無しさん
垢版 |
2016/01/14(木) 22:50:03.06ID:fK8eMzuy
組み込みって一人で何でもやるような商売だから
人とのコミュ力が試されるなー
0760デフォルトの名無しさん
垢版 |
2016/01/14(木) 22:58:47.53ID:Xzg+p3Xe
>>758
わざわざUARTを使う理由はいろいろある
UARTを使わない理由もいろいろある

使わない理由は既にいろいろ書いた

使う理由は、
ログをテキストで(簡単に)残せる
PCからいろいろな制御が出来る
テストの自動化がやり易い
などなど

デバッガはデバッガで便利だが、シリアルデバッグもいろいろと便利
0761デフォルトの名無しさん
垢版 |
2016/01/14(木) 23:00:29.70ID:y5xIxK0W
まあ>>726は俺なんだけど
>>727に言いたいのは
printfもどき作る暇があったらICE使ってステップ実行した方が効率的だってこと
0763デフォルトの名無しさん
垢版 |
2016/01/14(木) 23:13:33.49ID:y5xIxK0W
こういうこと言うのもアレだけど
JTAGとかLFASTがシリアルじゃないとでも?
プログラムトレースとかデータトレースはリアルタイムで吐かせようよ
どうせ周辺のIPが勝手にやっといてくれるんだし
ログっておいて後でデバッガで再生すりゃいいんだからさ
0765デフォルトの名無しさん
垢版 |
2016/01/15(金) 00:04:58.75ID:zaUY/8Xo
>>764
なんで追えないの?
検索機能とか知らないの?

膨大なログを出すだけの実行コード行を
ステップで一行一行実行していく気?w
0767デフォルトの名無しさん
垢版 |
2016/01/15(金) 08:33:23.10ID:3+jxxZHF
膨大と言ってもせいぜい数百MB程度だから検索できない訳がない
printf使ったって結果はファイルにリダイレクトするだろ
同じようなもんだ
0768デフォルトの名無しさん
垢版 |
2016/01/15(金) 11:05:47.01ID:qP185FEX
       ロギング

  ∧_∧          __
 ( ・∀・)         | i \ \
 ( U U          | i  l =l
 と_)_) ____     | |__ノ  ノ
       | i(;;)H|   | ̄ ̄| ̄ ̄|
0770デフォルトの名無しさん
垢版 |
2016/01/15(金) 12:55:53.08ID:0fhpXD7V
そもそも、小さいマイコンじゃそんなに多量には吐けない

ブロッキングだと動作速度が大きく変わり
ノンブロッキングだと間引かれる
0774デフォルトの名無しさん
垢版 |
2016/01/16(土) 14:50:47.80ID:OsKsEu35
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

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

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

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

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

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

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

電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない
0777777
垢版 |
2016/01/16(土) 18:26:19.06ID:XWGZA0lu
777げっち(´・ω・`)b
0778デフォルトの名無しさん
垢版 |
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的に分散され、特定のサーバーに依存しません
0780デフォルトの名無しさん
垢版 |
2016/05/01(日) 18:06:50.36ID:XA7YY+e1
>>778
絶望的なコードの紹介?
0785デフォルトの名無しさん
垢版 |
2016/06/03(金) 12:08:02.65ID:cGjwwdHV
Enumを文字列のコード値にswitch文で変換して、それをswitch文で別のEnumに変換する
ってのがいろんな所に書いてあった
0786デフォルトの名無しさん
垢版 |
2016/06/05(日) 02:49:12.74ID:b0qHmmcL
いまどき変数名が衝突して不具合を生じてたとか馬鹿な報告を上げてくる下請け
0789デフォルトの名無しさん
垢版 |
2016/06/06(月) 05:03:16.22ID:QbKl1YZH
>>787
納品前の結合環境のバグだよ
まともなフェーズ管理のある環境で働いたことのないガキは引っ込んでろ
0792デフォルトの名無しさん
垢版 |
2016/06/22(水) 09:59:00.26ID:t1NluOvj
int a[10];
int b[10];
int c[10];

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

信じるか信じないかはあなた次第
0797デフォルトの名無しさん
垢版 |
2016/07/04(月) 21:58:16.57ID:0RWmorvn
2400bpsの通信速度のコンソールに9600bpsの通信回線の通信ログを吐き出すプログラム
0799デフォルトの名無しさん
垢版 |
2016/07/12(火) 09:09:02.35ID:GUx/gdNo
C#で、糞長いメソッド内の処理を、意味のある単位にregionで囲ってるの見ると、切り出したくてムラムラする。
■ このスレッドは過去ログ倉庫に格納されています

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