今までみた絶望的なソースコード [転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
今井氏:ソースコード公開は、社長のティム(*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 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 メソッドに抽出したりcontinue,break,returnで浅くする工夫なら普通はやるわな もうさぁ・・・一般的に言われてるソースじゃなくて、実際の仕事で見たソースの話してくんない?
本でよく見るような話いらんわ。しょうもない。 中国やアメリカで仕事して日本に帰ってくると
未だにメールでやり取りしてて心を痛める毎日 >>905
アメリカはSlack
中国はQQとWeChat(日本のLINEみたいなやつ)
中国は一般人でもメールはほとんど使わない
あとは何でもQRコードで電子決済
道路の両脇に並んでる崩れ落ちそうな肉まん屋ですら電子決済に対応してる
自転車乗るのはスマホ3タッチするだけ
深センあたりに行けば分かるがもう日本は完全手遅れ そんなにちがうものだろうか
国は嬉しいかもしれんが個人は Methodオブジェクトパターンかメタプログラミング文脈ならありえる >>911-913←なかなかの絶望的なコーダーwwww バクレポ「機能しない 」
中身
{
;//ここに実装する
} >>916
それみて思い出したのがあったw
BOOL xxx(xxx)
{
// なんかコンパイル通らないのでコメントアウト
/*
:
*/
return TRUE;
} int func(prm1,prm2, …中略…,prmN)
{
//
// 色々処理する(見通し悪い1400ライン)
//
return 0;
} 修正に修正を重ねて稼働し続けてきたリソース。
ソース分析しろ言われて開いたらネストが13以上… 古いコードを延々と残しておくのをやめてほしいな。
ソースコードの半分以上が使われてないコードだったりして見通しが悪いったらありゃしない。
その割に修正履歴はクソの役にも立たないコメントが付いてる。 >>923
使われとらんのやったら消せばいいやろ
消さないおまえが悪い めっちゃ長いネストをプリントアウトして一生懸命読んでたら
コメントだったでござる 未だに紙出ししてコード読むおじいちゃん居るんかよw 画面に収まりきらないとかメモ書き込んだりするならやるけどな
それだけ元がひどいんだろ 画面に収まりきるコードてHello, Worldかなw >>929
画面に収まるコードて25行以下のことやぞw
今どきのディスプレイにあわせて制約ゆるく解釈てんじゃねーよタコwww 25行っていつの話だω
縦400しかない頃か
90年代初頭でも480のハイレゾで30行くらいは行けたぞ インデックスが一つも無いオラクルのシステム
しかもパッケージだからイジるなと・・・
検索に何分かかってるんだよ >>919
voidが無かった時代もあるんだわ
え、そんな問題じゃない? >>941
voidが無くてもva_listはあっただろ ↓経験10年以上の奴のプログラムがこれwwww
bool Hoge::isExistElement() const
{
int cnt = 0;
for (int i = 0; i < m_ElemList.size(); i++) {
++cnt;
}
return (cnt > 0)? true : false;
}
データ量が増えるとめちゃ遅くなるので、原因を調べたら
この関数がループの中で繰り返し呼ばれてたwwww return m_ElemList.size() > 0;
あるいは
for(int i = m_ElemList.size(); --i >= 0;) return true;
return false;
なんかの罠か?
全力で釣られてやったぞ 不要な行は消せば良い言う人いるが、
消したくても消せない環境があるのよ…
クソコード × クソ規約 でお腹いっぱいぱい おれが昨年作った糞コードを張りたいけど、
死ね!と言わない? ムチャクチャだとされるCのコード
#include <stdio.h>
#include <stdlib.h>
// 構造体の宣言
typedef struct {
int num;
char *str;
} strct;
int main(void) {
// 実体を生成
strct *entity;
// 動的メモリの確保。確保したメモリをstrct型ポインタにキャスト。
entity = (strct*)malloc(sizeof(strct));
// メンバの初期化
entity->num = 0;
entity->str = (char*)malloc(sizeof(32));
// メモリに文字列を代入
sprintf(entity->str, "%s %s!", "Hello", "World");
printf("%s\n", entity->str);
// メモリの解放
free(entity->str);
free(entity);
return 0;
} >>953
sizeof(32) が怪しいくらいじゃね?
個人的には main(void) も気になるけど、どの辺がムチャクチャ? typedefで小文字とstlctって名前も少々気持ち良くない レス数が950を超えています。1000を超えると書き込みができなくなります。