今井氏:ソースコード公開は、社長のティム(*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
今までみた絶望的なソースコード [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2015/04/17(金) 23:00:30.63ID:55USvuES424デフォルトの名無しさん
2015/10/29(木) 12:56:10.88ID:ywbX+Z6L でもどこが邪悪なのか言えない?
425デフォルトの名無しさん
2015/10/29(木) 13:15:18.74ID:l+jiBzQW426デフォルトの名無しさん
2015/10/29(木) 14:23:06.65ID:ywbX+Z6L それは最適化じゃなくてバグだろ
427デフォルトの名無しさん
2015/10/29(木) 18:25:23.55ID:jIkfL+wY マイナンバークラスから氏名クラスへの変換関数が存在した場合の問題点。
428デフォルトの名無しさん
2015/10/29(木) 19:45:11.73ID:lCX/HIGL 適用日付も引数にほしい
429デフォルトの名無しさん
2015/10/29(木) 20:06:17.64ID:K+6ZCqNU 期間持つのと、変換日時を任意に設定出来ることが最低条件かな。
変換ではなく、取得クラスになるだろうけど。
変換ではなく、取得クラスになるだろうけど。
430デフォルトの名無しさん
2015/10/30(金) 16:02:41.19ID:ZjC0FpzU >>409
0すら定数定義させられた事があったわー
0すら定数定義させられた事があったわー
431デフォルトの名無しさん
2015/10/30(金) 20:53:45.70ID:gPbmFrsE #define NULL 0
432デフォルトの名無しさん
2015/10/30(金) 21:45:25.79ID:eJ2e2Hn1433デフォルトの名無しさん
2015/10/30(金) 22:31:55.26ID:gPbmFrsE たとえばVBAの話になるが、VBAからシートの特定のカラムのセルを参照するには
Cells(行, カラム)やRange("行:カラム")のように指定する
これはカラムの配置を変えただけでプログラムが破綻することを意味する
さてExcelにおいてカラムの配置を変えたいことは良く思うことである
そこで1行目のヘッダとなる名前とカラム番号を連想配列に登録しておき
名前でカラム位置を特定するという方法がある
こういった対策をしとかないとVBAはマジックナンバーだらけのコードになる
対策したコードは処理の最初に名前から番号への変換のコストが発生するが
それは些細なコストである
・・・わかったかね
Cells(行, カラム)やRange("行:カラム")のように指定する
これはカラムの配置を変えただけでプログラムが破綻することを意味する
さてExcelにおいてカラムの配置を変えたいことは良く思うことである
そこで1行目のヘッダとなる名前とカラム番号を連想配列に登録しておき
名前でカラム位置を特定するという方法がある
こういった対策をしとかないとVBAはマジックナンバーだらけのコードになる
対策したコードは処理の最初に名前から番号への変換のコストが発生するが
それは些細なコストである
・・・わかったかね
434デフォルトの名無しさん
2015/10/30(金) 22:32:38.22ID:eJ2e2Hn1 長い
435デフォルトの名無しさん
2015/10/30(金) 22:34:14.14ID:WJjMGMJs その値が何を意味してるのかを定義して同じ意味のものをまとめるだけ
もともと可読性と変更に強くするためにしてるのだから
あとdefineはundefで消すこともできるため難解コードは解析しづらい
定数もしくはenumを使うのがいい
もともと可読性と変更に強くするためにしてるのだから
あとdefineはundefで消すこともできるため難解コードは解析しづらい
定数もしくはenumを使うのがいい
436デフォルトの名無しさん
2015/10/30(金) 22:47:48.69ID:gPbmFrsE 上のRangeの場合は"カラム行"だけどまあどうでもいいわな
さてCOMインターフェースの1つIDispatchはこれの逆をやっている
IDispatchは全て名前ベースでプロパティやメソッドを呼び出せるようになっている
が実はそれらには一意のIDが割り振られており、事前に名前からIDを特定しておくこともでき
うまく書けば名前からIDへの変換は1度のコストで済む連想配列を内蔵した形だ
ちなみにここで登場した連想配列に名前を格納する仕組みは
主に文字列リテラルとして実装されるが、これはマジックナンバーではない
これをマジックナンバーとみなしてさらに別名定義するアホはいないだろう
さてCOMインターフェースの1つIDispatchはこれの逆をやっている
IDispatchは全て名前ベースでプロパティやメソッドを呼び出せるようになっている
が実はそれらには一意のIDが割り振られており、事前に名前からIDを特定しておくこともでき
うまく書けば名前からIDへの変換は1度のコストで済む連想配列を内蔵した形だ
ちなみにここで登場した連想配列に名前を格納する仕組みは
主に文字列リテラルとして実装されるが、これはマジックナンバーではない
これをマジックナンバーとみなしてさらに別名定義するアホはいないだろう
437デフォルトの名無しさん
2015/10/30(金) 22:51:56.22ID:gPbmFrsE GUIDという概念がある
コイツハマサニマジックナンバーデコノアイデーハセカイニヒトツシカナイコトガホショウサレルアイデーナノデアル
デモニンゲンハコンナモノイチイチオボエテラレナイカラマサニマジカルナウンヨウガナサレテイル
コイツハマサニマジックナンバーデコノアイデーハセカイニヒトツシカナイコトガホショウサレルアイデーナノデアル
デモニンゲンハコンナモノイチイチオボエテラレナイカラマサニマジカルナウンヨウガナサレテイル
438デフォルトの名無しさん
2015/10/30(金) 23:03:28.91ID:gPbmFrsE マイナンバー制度という概念がある
主に国内でやりとりされることを想定した奴隷番号である
公開すると害があるらしく最後には官憲が動くかもしれない危険な番号として最近認知された
主に国内でやりとりされることを想定した奴隷番号である
公開すると害があるらしく最後には官憲が動くかもしれない危険な番号として最近認知された
439デフォルトの名無しさん
2015/11/01(日) 18:19:18.77ID:tjf5Il2M 国民総背番号制という古来からの論争の種だったのだが,最近は抵抗運動はなかったのか?
440デフォルトの名無しさん
2015/11/02(月) 00:51:12.93ID:IGWJLfrm そもそも既に番号振られてるよね、事実上、って気づいたからじゃない?
441デフォルトの名無しさん
2015/11/02(月) 08:32:28.83ID:jypI/AIk マイナンバーの本体そのものは民主時代に通ってるがな
今騒いでるのは改正と称して悪用するための変更
今騒いでるのは改正と称して悪用するための変更
442デフォルトの名無しさん
2015/11/03(火) 11:58:57.65ID:gpyirAk3 急に政治臭くなった
443デフォルトの名無しさん
2015/11/03(火) 12:02:06.64ID:Cvaj+aOI そういやテストデータの人名に政治家やら備考欄に真実()入れてきた外注があったわ
444デフォルトの名無しさん
2015/11/03(火) 13:50:13.77ID:i649bMmf ワロタ
俺も真似しよう
俺も真似しよう
445デフォルトの名無しさん
2015/11/12(木) 07:13:20.33ID:b0I3If93446デフォルトの名無しさん
2015/11/12(木) 10:32:56.67ID:iZs6jymX447デフォルトの名無しさん
2015/11/13(金) 22:33:07.13ID:Ztn/Y8j7 >>446
日本人か?
日本人か?
448デフォルトの名無しさん
2015/11/14(土) 00:40:00.13ID:H4hEy7EE >>447
日本人だが?
日本人だが?
449デフォルトの名無しさん
2015/11/14(土) 00:40:45.97ID:iuWQx+BT pi みたいな浮動小数は用途による。
450デフォルトの名無しさん
2015/11/14(土) 14:17:51.36ID:fm2vcKXc >>446
#define マクロのない言語は哀れだね
#define マクロのない言語は哀れだね
451デフォルトの名無しさん
2015/11/14(土) 14:34:31.48ID:bF3EVbPf いや、マクロが欲しければm4みたいな汎用のマクロプロセッサを使えばいいし、
単なる文字列置換であるマクロは、コードの静的解析能力を下げ
(例えばプリプロセッサを通さないと構文エラーかどうかわからない)
エラー時の情報をわかりにくくしたり、分かりにくいバグの元になったりするので
排除する方向にあるんだけど。
C言語でもdefineよりもconstやinlineを使うのが常識だしさ。
単なる文字列置換であるマクロは、コードの静的解析能力を下げ
(例えばプリプロセッサを通さないと構文エラーかどうかわからない)
エラー時の情報をわかりにくくしたり、分かりにくいバグの元になったりするので
排除する方向にあるんだけど。
C言語でもdefineよりもconstやinlineを使うのが常識だしさ。
452デフォルトの名無しさん
2015/11/14(土) 14:36:18.15ID:bF3EVbPf453デフォルトの名無しさん
2015/11/14(土) 16:30:08.93ID:EuJ2f84U #define ABC 5 + 10
void func(void)
{
int abc = ABC * 10;
print("%d", abc);
}
このパソコンは算数が苦手になったみたいです。
150と表示されません。
………………死ね!
void func(void)
{
int abc = ABC * 10;
print("%d", abc);
}
このパソコンは算数が苦手になったみたいです。
150と表示されません。
………………死ね!
454デフォルトの名無しさん
2015/11/14(土) 16:36:15.32ID:Wquzevs4 コンパイラさんがどういうことやってるかわかってない人が
455デフォルトの名無しさん
2015/11/14(土) 16:53:07.63ID:bF3EVbPf コンパイラじゃなくて、余計なことをやってる
プリプロセッサが原因だけどねw
プリプロセッサが原因だけどねw
456デフォルトの名無しさん
2015/11/14(土) 16:56:04.42ID:Wquzevs4 プリプロ 何ですか それ
な方たちがやってるんでは
な方たちがやってるんでは
457デフォルトの名無しさん
2015/11/14(土) 20:11:50.05ID:MSvtHxf5 >>450
extern constにしておけば実体持ってるライブラリを入れ替えるだけで
piの中身が3.14なのか3.1416なのか3.1415927なのかを切り替えてリンクできる
組み込みなんかではここのセクションに特別な絶対アドレスを振っておいて
Sフォーマットのファイル作ってから後で値を書き換えたりする
extern constにしておけば実体持ってるライブラリを入れ替えるだけで
piの中身が3.14なのか3.1416なのか3.1415927なのかを切り替えてリンクできる
組み込みなんかではここのセクションに特別な絶対アドレスを振っておいて
Sフォーマットのファイル作ってから後で値を書き換えたりする
458デフォルトの名無しさん
2015/11/15(日) 10:36:26.12ID:Xo3Zb28z459デフォルトの名無しさん
2015/11/16(月) 21:09:30.08ID:nSSKBNI/460デフォルトの名無しさん
2015/11/16(月) 23:26:56.71ID:ozqa//mh >>459
小さい規模ならまだしも業務用のでかいのに毎回やるのは非効率
後続の言語が切り捨てたとおり現状マクロは負の遺産
今の時代はフレームワーク使って読みやすいそこそこのものを短期で作ることが求められてるからね
小さい規模ならまだしも業務用のでかいのに毎回やるのは非効率
後続の言語が切り捨てたとおり現状マクロは負の遺産
今の時代はフレームワーク使って読みやすいそこそこのものを短期で作ることが求められてるからね
461デフォルトの名無しさん
2015/11/16(月) 23:43:11.58ID:+ZSgD8xZ 今時の言語にプリプロとか無いよな
462デフォルトの名無しさん
2015/11/17(火) 04:44:48.22ID:91LH4JJH >>459
プリプロセッサを通した結果に対して、
コンパイラがエラーを出したとき、
プリプロセッサを通す前のコードみても意味がわからんし、
通した後のコードは自分が書いたコードじゃないし。
プリプロセッサを通した結果に対するエラーから、
プリプロセッサを通す前のコードをどこをどう直せばいいのか
そのつながりを人間が判断するしかなく意味不明になるんだよ。
人間が頭の中で逆プリプロセッサをしなくちゃいけなくなる
プリプロセッサを通した結果に対して、
コンパイラがエラーを出したとき、
プリプロセッサを通す前のコードみても意味がわからんし、
通した後のコードは自分が書いたコードじゃないし。
プリプロセッサを通した結果に対するエラーから、
プリプロセッサを通す前のコードをどこをどう直せばいいのか
そのつながりを人間が判断するしかなく意味不明になるんだよ。
人間が頭の中で逆プリプロセッサをしなくちゃいけなくなる
463デフォルトの名無しさん
2015/11/17(火) 19:22:30.78ID:5ylAZ1WH >>462
IDEと相性がわるいからね
IDEと相性がわるいからね
464デフォルトの名無しさん
2015/11/17(火) 20:09:29.80ID:/RqDC1dK465デフォルトの名無しさん
2015/11/21(土) 13:08:19.06ID:kjUNvnu/ C ( or C++ ) のソースで
#if 0
#endif
でコメントにするのはやめて欲しい。
#if 0
#endif
でコメントにするのはやめて欲しい。
466デフォルトの名無しさん
2015/11/21(土) 13:34:03.37ID:HbP98col SublimeTextなどを使って範囲選択して
一気に行頭に//を入れたほうがいい。
一気に行頭に//を入れたほうがいい。
467デフォルトの名無しさん
2015/11/21(土) 19:54:17.89ID:1zgwhmXP >>466
え,便利じゃないか?
え,便利じゃないか?
468デフォルトの名無しさん
2015/11/22(日) 00:13:36.89ID:G5+yWL2h469デフォルトの名無しさん
2015/11/22(日) 00:20:00.47ID:QRD2Q6hy470デフォルトの名無しさん
2015/11/22(日) 00:23:37.90ID:G5+yWL2h >>469
単なる食わず嫌いか、納得した。
単なる食わず嫌いか、納得した。
471デフォルトの名無しさん
2015/11/22(日) 00:25:10.28ID:QRD2Q6hy >>470
バカのうえに早合点のトンチンカンで三冠王だな。
バカのうえに早合点のトンチンカンで三冠王だな。
472デフォルトの名無しさん
2015/11/22(日) 00:27:24.52ID:DDbKY7qA 俺の考えが正しいことが証明されたな。
俺の考えはググった程度じゃわからんよ。
俺の考えはググった程度じゃわからんよ。
473デフォルトの名無しさん
2015/11/22(日) 18:12:36.68ID:DWgTsAXH >>465
この方式はテキスト直編集や文字列検索の側面から懸念される
しかしメリットもあってコードの切り替えがしやすい
ifdefなら複数箇所修正も一気に元に戻すことも可能
誰かの修正でも消した人間がやってくれていれば修正当時の状態に戻せる
また修正が重なると//はインデントずれるがifの方はズレの発生もないメリットもある
俺はそのコードを検証等で使用する可能性があるかどうかで使い分けてる
この方式はテキスト直編集や文字列検索の側面から懸念される
しかしメリットもあってコードの切り替えがしやすい
ifdefなら複数箇所修正も一気に元に戻すことも可能
誰かの修正でも消した人間がやってくれていれば修正当時の状態に戻せる
また修正が重なると//はインデントずれるがifの方はズレの発生もないメリットもある
俺はそのコードを検証等で使用する可能性があるかどうかで使い分けてる
474デフォルトの名無しさん
2015/11/22(日) 20:44:55.89ID:eRa8fYqU デメリットもブロックコメントと同等かそれ以下だと思うがな。
まぁ、ネストが重なるとわかりにくくなるから1レベルに限定されたコメントの方が
いいという意見もあるだろうけど。
まぁ、ネストが重なるとわかりにくくなるから1レベルに限定されたコメントの方が
いいという意見もあるだろうけど。
475デフォルトの名無しさん
2015/11/23(月) 11:31:07.22ID:UYP2wI74 うちは//も複数行にわたるブロックコメントも禁止だし
コードのコメントアウトは#if 0 〜 #endifが推奨になってる
Eclipse使ってればこっちの方が楽
コードのコメントアウトは#if 0 〜 #endifが推奨になってる
Eclipse使ってればこっちの方が楽
476デフォルトの名無しさん
2015/11/23(月) 12:46:13.70ID:JP3x9Qw8 >>475
その規約をどうにかしたほうがいいんじゃないか
その規約をどうにかしたほうがいいんじゃないか
477デフォルトの名無しさん
2015/11/23(月) 17:25:09.75ID:pAAcXv2U #if 0じゃ意味が判らんから定数使えや、とエスパーしてみた
478デフォルトの名無しさん
2015/11/23(月) 17:28:56.89ID:I/A9+n8X またそれかw
定型句は意味がわかるから問題ないんだよ。
定型句は意味がわかるから問題ないんだよ。
479デフォルトの名無しさん
2015/11/24(火) 00:07:51.39ID:XdzjW60L #define NOUSE 0
#ifdef NOUSE
:
:
#endif
#ifdef NOUSE
:
:
#endif
480デフォルトの名無しさん
2015/11/24(火) 01:12:38.90ID:7a+QKmK9 NOUSEってなんや?ってなるから意味ない。
481デフォルトの名無しさん
2015/11/24(火) 01:16:48.61ID:XArPpnwT #if 1 // どっちにしようかな
//速いけど詠み難いコード
#else
//遅いけど判り易いコード
#endif
//速いけど詠み難いコード
#else
//遅いけど判り易いコード
#endif
482デフォルトの名無しさん
2015/11/24(火) 07:23:59.50ID:vXeBzDQX バージョン管理システムのチケット番号でifdefしてるのは見たことあるわ。
果たして本当に、それでそのチケット番号の状態に戻るのかは誰もやってないと言う。
果たして本当に、それでそのチケット番号の状態に戻るのかは誰もやってないと言う。
483デフォルトの名無しさん
2015/11/24(火) 19:08:07.34ID:1vZRhgQx >>482
同じ個所弄ったらネストしていくのか…?
同じ個所弄ったらネストしていくのか…?
484デフォルトの名無しさん
2015/11/25(水) 21:24:16.64ID:MMxhWoOe >>482
戻るかどうかは二の次
一番重要なのはどんな修正をしたかということ
自分はいなくなってもコードは10年20年先の人間も目にすることがあるのだから
バージョン管理でやればいいという声もあるが果たしてそれ20年後に見れるか疑わしい
国際標準でなければ廃れると見たほうがいい
やっておいて損はない
戻るかどうかは二の次
一番重要なのはどんな修正をしたかということ
自分はいなくなってもコードは10年20年先の人間も目にすることがあるのだから
バージョン管理でやればいいという声もあるが果たしてそれ20年後に見れるか疑わしい
国際標準でなければ廃れると見たほうがいい
やっておいて損はない
485デフォルトの名無しさん
2015/11/26(木) 02:18:49.76ID:oAsmLq1R > バージョン管理でやればいいという声もあるが果たしてそれ20年後に見れるか疑わしい
絶対確実に見れる。
絶対確実に見れる。
486デフォルトの名無しさん
2015/11/26(木) 02:19:46.90ID:oAsmLq1R 見れるというのは読めるということ。
無駄な情報ばかりで、重要な事がわからなければ、
それは「見れない」という。
無駄な情報ばかりで、重要な事がわからなければ、
それは「見れない」という。
487デフォルトの名無しさん
2015/11/26(木) 02:23:40.75ID:oAsmLq1R 見れるというのは探し出せるということでもある。
ある事柄に関する修正は、一箇所で終わるとは限らない。
複数ファイルを同時に修正することがある。
複数のファイルに分散された、ある事柄に修正をもれなくすべて確実に
把握できる保証がなければ、それはどんな修正をしたかがわからないということ。
これはファイルのコメントなんかじゃ絶対にわかりっこない。
それはバージョン管理ツールでなければ不可能である。
ある事柄に関する修正は、一箇所で終わるとは限らない。
複数ファイルを同時に修正することがある。
複数のファイルに分散された、ある事柄に修正をもれなくすべて確実に
把握できる保証がなければ、それはどんな修正をしたかがわからないということ。
これはファイルのコメントなんかじゃ絶対にわかりっこない。
それはバージョン管理ツールでなければ不可能である。
488デフォルトの名無しさん
2015/11/26(木) 02:36:19.49ID:xxU4HAk9 20年後の人「なんだこの糞コードは・・・当時でもバージョン管理くらいあっただろ!?」
489デフォルトの名無しさん
2015/11/26(木) 02:42:53.30ID:oAsmLq1R クソコードとバージョン管理に直接の関係はない。
だが、バージョン管理を使えないような奴は
クソコードを書くというのは大体あっている。
だが、バージョン管理を使えないような奴は
クソコードを書くというのは大体あっている。
490デフォルトの名無しさん
2015/11/26(木) 06:03:03.13ID:veIBFmvN491デフォルトの名無しさん
2015/11/26(木) 07:12:00.03ID:8nlnWQy6 >>482
バージョン管理システムは手段であって、
本来はその改修モジュールの対応前、対応後のソース一式がまとまってれば文句はないんだよ。
対応後の一式があれば、それは次の対応前の一式だし。
そこをサボって1つのファイルに前後を入れるから意味がわからなくなる。
バージョン管理システムは手段であって、
本来はその改修モジュールの対応前、対応後のソース一式がまとまってれば文句はないんだよ。
対応後の一式があれば、それは次の対応前の一式だし。
そこをサボって1つのファイルに前後を入れるから意味がわからなくなる。
492デフォルトの名無しさん
2015/11/26(木) 10:10:24.97ID:oAsmLq1R >>491
小さいアプリならそれでいいだろうけど、
複数人が開発している大きなアプリだと、
1. どうやって各自の変更をまとめるのか?
2. 改修は何百、何千となるが(少なくともバグの数と機能の数以上になる)、それだけの数の「一式」を欲しいのか?
それを実現してくれる手段がバージョン管理システム
小さいアプリならそれでいいだろうけど、
複数人が開発している大きなアプリだと、
1. どうやって各自の変更をまとめるのか?
2. 改修は何百、何千となるが(少なくともバグの数と機能の数以上になる)、それだけの数の「一式」を欲しいのか?
それを実現してくれる手段がバージョン管理システム
493デフォルトの名無しさん
2015/11/26(木) 10:34:31.16ID:8nlnWQy6 >>492
大規模開発してるけど、
各自の変更自体は、そもそもがバージョン管理システム以前の仕組みとして、
変更仕様書書いてスタンプリレーして台帳化までしてるので問題ない。
それだけの数の一式、と言えども、サブシステム毎には別れるし、その中でのモジュール毎にも別れる。
あるモジュールの、rev xとrev yは持っておく、って事だよ。
出荷は、モジュール単位でも出せるけど、基本はサブシステム毎で、さらに言えばパッケージ毎の定期出荷にのせるべきだな、うちは。
サブシステムA ver 1.1は
モジュール1 rev 1
モジュール2 rev 1.1
で出来てて、
パッケージ ver 1.2は
サブシステムA ver 1.1
サブシステムB ver 1
で出来てるって台帳がある。
実現は紙で1990年代から出来てる。
それを便利にするのがバージョン管理システム。
手段じゃない。道具。
大規模開発してるけど、
各自の変更自体は、そもそもがバージョン管理システム以前の仕組みとして、
変更仕様書書いてスタンプリレーして台帳化までしてるので問題ない。
それだけの数の一式、と言えども、サブシステム毎には別れるし、その中でのモジュール毎にも別れる。
あるモジュールの、rev xとrev yは持っておく、って事だよ。
出荷は、モジュール単位でも出せるけど、基本はサブシステム毎で、さらに言えばパッケージ毎の定期出荷にのせるべきだな、うちは。
サブシステムA ver 1.1は
モジュール1 rev 1
モジュール2 rev 1.1
で出来てて、
パッケージ ver 1.2は
サブシステムA ver 1.1
サブシステムB ver 1
で出来てるって台帳がある。
実現は紙で1990年代から出来てる。
それを便利にするのがバージョン管理システム。
手段じゃない。道具。
494デフォルトの名無しさん
2015/11/26(木) 11:38:27.52ID:GuU354a3 楽したつもりで道具に使われてる奴等多すぎ
495デフォルトの名無しさん
2015/11/26(木) 12:23:36.36ID:Vr8PtFgH 言っとくが楽してるつもりは一切ないからな
496デフォルトの名無しさん
2015/11/26(木) 13:09:36.25ID:XoDybxjV497デフォルトの名無しさん
2015/11/26(木) 13:12:08.20ID:d/ZxLVhV >>493
ソフトウェア会社なのに、それをコンピュータで
実現してないってのがダメな所だよなw
自分の仕事も効率化出来ない(コンピュータ化できない)
会社に他社の仕事の効率化なんてできっこないわけさ。
それをコンピュータ化したのがバージョン管理ツールだからね。
ソフトウェア会社なのに、それをコンピュータで
実現してないってのがダメな所だよなw
自分の仕事も効率化出来ない(コンピュータ化できない)
会社に他社の仕事の効率化なんてできっこないわけさ。
それをコンピュータ化したのがバージョン管理ツールだからね。
498デフォルトの名無しさん
2015/11/26(木) 13:16:44.70ID:d/ZxLVhV >>494
> 楽したつもりで道具に使われてる奴等多すぎ
>>495
> 言っとくが楽してるつもりは一切ないからな
だよなw 同じことができる道具。それがあって、
楽できない道具を使うの(手動で管理w)が偉い!って思っちゃう。
体育会系かよw エクセル使うとズル呼ばわりする老害と一緒だ。
同じ道具なら、より効率的に早く楽にできる方がいいじゃん?
バージョン管理ツール使えば、台帳なんかで情報を調べるだけじゃなく、
その時のソースコードに戻すこともまで簡単にできる。
一番重要な事をお忘れか?
最終的に九州から北海道まで歩いていけるから問題ない?
それだけでは全然足りない。どれだけの時間がかかるまで考えてこそプロ。
> 楽したつもりで道具に使われてる奴等多すぎ
>>495
> 言っとくが楽してるつもりは一切ないからな
だよなw 同じことができる道具。それがあって、
楽できない道具を使うの(手動で管理w)が偉い!って思っちゃう。
体育会系かよw エクセル使うとズル呼ばわりする老害と一緒だ。
同じ道具なら、より効率的に早く楽にできる方がいいじゃん?
バージョン管理ツール使えば、台帳なんかで情報を調べるだけじゃなく、
その時のソースコードに戻すこともまで簡単にできる。
一番重要な事をお忘れか?
最終的に九州から北海道まで歩いていけるから問題ない?
それだけでは全然足りない。どれだけの時間がかかるまで考えてこそプロ。
499デフォルトの名無しさん
2015/11/26(木) 13:19:52.08ID:MDkVIHz0 まあ、あれだよな。
使える形で保存されてないデータは、使われない。
使える形で保存されているならば、使われる。
使われないデータをたくさんためても
自己満足程度の意味しかないわけで。
使える形で保存されてないデータは、使われない。
使える形で保存されているならば、使われる。
使われないデータをたくさんためても
自己満足程度の意味しかないわけで。
500デフォルトの名無しさん
2015/11/26(木) 13:30:59.58ID:GuU354a3 >>498
それで新幹線と飛行機と船で行けたとして、
「着くのが早いから」って理由で飛行機に乗るのはいいと思うけど
「マイル貯めるために」とか「ボンバルディアの機材こそ至高」ってのは
なんだかなあ、って話っしょ
こういうのはその時にベターなもの使えばいいの
それで新幹線と飛行機と船で行けたとして、
「着くのが早いから」って理由で飛行機に乗るのはいいと思うけど
「マイル貯めるために」とか「ボンバルディアの機材こそ至高」ってのは
なんだかなあ、って話っしょ
こういうのはその時にベターなもの使えばいいの
501デフォルトの名無しさん
2015/11/26(木) 15:44:00.39ID:MDkVIHz0 >>500
例え話はわかった。具体的にはどういうことかって話だ。
バージョン管理を使わないと凄く非効率だから
殆どの場合はバージョン管理ツールを使う方がいい。
ただしバージョン管理を使えないという呆れるほど技術力が低くて
使えないものを大量に生成し多くの無駄に時間がかかって、あとで
自分らが苦しむだけなんだが、それを許容するのならば、
手動で管理しするのがベター(笑)ってことだよね。
例え話はわかった。具体的にはどういうことかって話だ。
バージョン管理を使わないと凄く非効率だから
殆どの場合はバージョン管理ツールを使う方がいい。
ただしバージョン管理を使えないという呆れるほど技術力が低くて
使えないものを大量に生成し多くの無駄に時間がかかって、あとで
自分らが苦しむだけなんだが、それを許容するのならば、
手動で管理しするのがベター(笑)ってことだよね。
502デフォルトの名無しさん
2015/11/26(木) 15:44:29.61ID:uY2sGP6D503デフォルトの名無しさん
2015/11/26(木) 15:44:54.51ID:8nlnWQy6 >>496
>>497
何言ってるんだ…
実現自体は昔から出来ている、それを便利にするのがバージョン管理システム、と言っているだろ。うちでも使ってるよ。
台帳自体もそっから今は自動で作ってる。便利だよ。
2000年代前半は内製システムだったけど、今は普通にバージョン管理システムとチケットトラッキングシステムだよ。
そもそもリリースノートは台帳から作るからリリースノート見ればわかるし、
わからなくて台帳をなめて、それでもわからなくて、
各文書の山から検索しないとダメな事自体、発生したらヤバい。
同様に、台帳の表題をあやふやにしてると痛い目に遭う。
検索したらわかるっしょ、と適当にする奴居るけどね。
今でも、サーバ、ネットワーク全部落ちてもサポート程度は回る程度に台帳も文書も刷ってるよ。
お陰様で震災でもなんとかなった。
>>497
何言ってるんだ…
実現自体は昔から出来ている、それを便利にするのがバージョン管理システム、と言っているだろ。うちでも使ってるよ。
台帳自体もそっから今は自動で作ってる。便利だよ。
2000年代前半は内製システムだったけど、今は普通にバージョン管理システムとチケットトラッキングシステムだよ。
そもそもリリースノートは台帳から作るからリリースノート見ればわかるし、
わからなくて台帳をなめて、それでもわからなくて、
各文書の山から検索しないとダメな事自体、発生したらヤバい。
同様に、台帳の表題をあやふやにしてると痛い目に遭う。
検索したらわかるっしょ、と適当にする奴居るけどね。
今でも、サーバ、ネットワーク全部落ちてもサポート程度は回る程度に台帳も文書も刷ってるよ。
お陰様で震災でもなんとかなった。
504デフォルトの名無しさん
2015/11/26(木) 15:54:46.61ID:8ZZhqZvl >>502
使ってないだけで、使える。
移行の際に履歴を切り捨てるのは、お前の問題であって、技術の問題ではない。
他に標準化されているものなどない。
紙の管理? ソースコードのコメント? どれも標準化されてない。
今のデファクトスタンダードがgit
Gitから移行することはあっても、Gitがなくならないことは
1982年(33年前)に登場したRCSがまだ使えることからも
歴史が証明してくれている。
使ってないだけで、使える。
移行の際に履歴を切り捨てるのは、お前の問題であって、技術の問題ではない。
他に標準化されているものなどない。
紙の管理? ソースコードのコメント? どれも標準化されてない。
今のデファクトスタンダードがgit
Gitから移行することはあっても、Gitがなくならないことは
1982年(33年前)に登場したRCSがまだ使えることからも
歴史が証明してくれている。
505デフォルトの名無しさん
2015/11/26(木) 16:42:28.92ID:veIBFmvN 20年が短命ならOSは夭逝だな
506デフォルトの名無しさん
2015/11/26(木) 18:24:28.50ID:8nlnWQy6 >>504
うちはパッチ当ててでも使うだろうな。
多分デファクトスタンダードはあるけど、
デファクトスタンダードなんてどうでも良いと思うよ。
管理できれば良いんだから、無理に流行りに乗らなくても。
あと、gitはおそらく向いてないな。うちには。cloneに時間やたら掛かりそう。
うちはパッチ当ててでも使うだろうな。
多分デファクトスタンダードはあるけど、
デファクトスタンダードなんてどうでも良いと思うよ。
管理できれば良いんだから、無理に流行りに乗らなくても。
あと、gitはおそらく向いてないな。うちには。cloneに時間やたら掛かりそう。
507デフォルトの名無しさん
2015/11/26(木) 18:51:30.63ID:8ZZhqZvl > 管理できれば良いんだから、
だからまたw
管理できるのは最低限の条件で、
それを素早く確実にやるのがプロでしょ。
出来ればいいんでしょじゃないってw
> あと、gitはおそらく向いてないな。うちには。cloneに時間やたら掛かりそう。
ん? cloneするのは最初の一回だし、ネットワークが遅いなら
特定のディレクトリからでもcloneできるが。
だからまたw
管理できるのは最低限の条件で、
それを素早く確実にやるのがプロでしょ。
出来ればいいんでしょじゃないってw
> あと、gitはおそらく向いてないな。うちには。cloneに時間やたら掛かりそう。
ん? cloneするのは最初の一回だし、ネットワークが遅いなら
特定のディレクトリからでもcloneできるが。
508デフォルトの名無しさん
2015/11/26(木) 20:14:42.11ID:lIaAWQ2A >>504
使ってないなら見てないんだから活用できてないわな
大きな修正にはバージョン管理は当然としてソースにも履歴を残してリスク軽減が当然だと思うんだけどな
そのバージョン管理のソフトも必要なときには使えなくなってる可能性を考えるべきよ
その履歴が標準化されてれば将来もコンバートできたりするんだろうがな
何かに過信してリスク分散もできない会社のシステムなんて怖くて使えないわ
使ってないなら見てないんだから活用できてないわな
大きな修正にはバージョン管理は当然としてソースにも履歴を残してリスク軽減が当然だと思うんだけどな
そのバージョン管理のソフトも必要なときには使えなくなってる可能性を考えるべきよ
その履歴が標準化されてれば将来もコンバートできたりするんだろうがな
何かに過信してリスク分散もできない会社のシステムなんて怖くて使えないわ
509デフォルトの名無しさん
2015/11/26(木) 20:32:29.36ID:8ZZhqZvl >>508
卑怯ですね。
バージョン管理ツールには、凄くいろんなことを求めて
それが出来ないと悪く言うくせに、
最初から何も出来ないものは、出来なくても文句言わないんですか?
> 何かに過信してリスク分散もできない会社のシステムなんて怖くて使えないわ
リスク管理っていうのはね。コストを考えなきゃだめなの。
ソースに履歴を残すことのデメリットを計算に入れてないから、
あんたの考え方は、考えるに値しないの。
卑怯ですね。
バージョン管理ツールには、凄くいろんなことを求めて
それが出来ないと悪く言うくせに、
最初から何も出来ないものは、出来なくても文句言わないんですか?
> 何かに過信してリスク分散もできない会社のシステムなんて怖くて使えないわ
リスク管理っていうのはね。コストを考えなきゃだめなの。
ソースに履歴を残すことのデメリットを計算に入れてないから、
あんたの考え方は、考えるに値しないの。
510デフォルトの名無しさん
2015/11/26(木) 20:54:13.06ID:8nlnWQy6 >>507
何言ってるかわからん。
バージョン管理システムに反対してるつもりはない。使ってるし。
ソースにコメントで残す事を肯定もしてない。
素早く確実に出来るに越したことは無いよ。
出来れば良いんだよ。手段なんだから。
やらなくて良いことをやらないと決めるのもプロの仕事。
そう決めるにあたって、もちろん使ってみたり選定したりしてるけどね。
その選定や決断や調査にも工数かかるの。≒お金なの。
知らんで言ってるわけではない。
cloneするのは最初の一回、な。
常駐が入れ替わる度に数ギガのトラフィックか。
空論も良い所。
一回まともな体制のある程度の規模の開発に関わったらどう?
何言ってるかわからん。
バージョン管理システムに反対してるつもりはない。使ってるし。
ソースにコメントで残す事を肯定もしてない。
素早く確実に出来るに越したことは無いよ。
出来れば良いんだよ。手段なんだから。
やらなくて良いことをやらないと決めるのもプロの仕事。
そう決めるにあたって、もちろん使ってみたり選定したりしてるけどね。
その選定や決断や調査にも工数かかるの。≒お金なの。
知らんで言ってるわけではない。
cloneするのは最初の一回、な。
常駐が入れ替わる度に数ギガのトラフィックか。
空論も良い所。
一回まともな体制のある程度の規模の開発に関わったらどう?
511デフォルトの名無しさん
2015/11/26(木) 20:59:18.56ID:sSZIJZMB お、このスレでは日頃のストレスをぶつけ合えばいいのか?
512デフォルトの名無しさん
2015/11/26(木) 21:13:24.35ID:lIaAWQ2A >>509
悪く言うつもりはないよ
ただあまりに頼りすぎてるとそれがダメになった時に崩壊するってこと
原発然りデータ分散保存してなかった会社然り
コストカットをやり過ぎた結果が全電源喪失なったの忘れたの?
東日本大震災あってコストカットのために東京にしかデータ残してなくて全データ喪失しましたで顧客は納得するの?
二重に安全策を行っておくくらい基本じゃないか?
余談だが俺の会社に20年前のバージョン管理の履歴残ってるプロジェクトひとつもない
悪く言うつもりはないよ
ただあまりに頼りすぎてるとそれがダメになった時に崩壊するってこと
原発然りデータ分散保存してなかった会社然り
コストカットをやり過ぎた結果が全電源喪失なったの忘れたの?
東日本大震災あってコストカットのために東京にしかデータ残してなくて全データ喪失しましたで顧客は納得するの?
二重に安全策を行っておくくらい基本じゃないか?
余談だが俺の会社に20年前のバージョン管理の履歴残ってるプロジェクトひとつもない
513デフォルトの名無しさん
2015/11/26(木) 21:17:07.03ID:8ZZhqZvl なんかいきなり原発の話しだしてきワロタw
それとはぜんぜん違うだろう。
それとはぜんぜん違うだろう。
514デフォルトの名無しさん
2015/11/26(木) 21:26:25.45ID:lIaAWQ2A コストを削った代償の話で何も的を外してない
二重の安全策を怠った最も悲惨な事例だよ
高台に電源装置置いとけば事故は防げたんだから
過信といえばまだ二十年もたってないがアップルが経営危機に陥っていた時期に誰が10数年先にマイクロソフト抜いて世界一の企業になると予測できたか?
世の中本当に何が起こるかわからないよ
二重の安全策を怠った最も悲惨な事例だよ
高台に電源装置置いとけば事故は防げたんだから
過信といえばまだ二十年もたってないがアップルが経営危機に陥っていた時期に誰が10数年先にマイクロソフト抜いて世界一の企業になると予測できたか?
世の中本当に何が起こるかわからないよ
515デフォルトの名無しさん
2015/11/26(木) 21:36:45.91ID:8ZZhqZvl 大きく的はずれだね。
必要ないと思っているものを削減するのと
必要あるものを削減するのとではぜんぜん違う。
また今度は関係ないアップルの話しだすし。
次はISISが戦争を始めるとかいいだしそうだ
必要ないと思っているものを削減するのと
必要あるものを削減するのとではぜんぜん違う。
また今度は関係ないアップルの話しだすし。
次はISISが戦争を始めるとかいいだしそうだ
516デフォルトの名無しさん
2015/11/26(木) 21:55:52.71ID:veIBFmvN 原発おじさんはVCSの謎の突然死よりも
部下がこのスレに書き込んでいないかを心配した方が良いと思う
部下がこのスレに書き込んでいないかを心配した方が良いと思う
517デフォルトの名無しさん
2015/11/26(木) 21:58:43.37ID:lIaAWQ2A 言いたいのは未来を予測できない以上二重以上の策を提供すべきということ
その必要かどうかはこの先ソースを保守する人間が判断するのであって今の人間が決めれることじゃない
20年前のプロジェクトの修正履歴見れるか試みたらすぐわかる話
その必要かどうかはこの先ソースを保守する人間が判断するのであって今の人間が決めれることじゃない
20年前のプロジェクトの修正履歴見れるか試みたらすぐわかる話
518デフォルトの名無しさん
2015/11/26(木) 22:23:35.43ID:jGsOshgR サンプルでないコーディングで
foo だ bar だ hoge だのと
foo だ bar だ hoge だのと
519デフォルトの名無しさん
2015/11/26(木) 22:40:27.99ID:8nlnWQy6520デフォルトの名無しさん
2015/11/26(木) 23:09:16.39ID:lIaAWQ2A >>519
うちもコメントやifdef等で残ってるのがある
修正入る部分にこれがあると何となく当時の背景が見えてくるから助かってる
バージョン管理は次々鞍替えして数年分しかない
どこが早く履歴の標準規格化してくれたらもっと分かりやすく差分や経緯を見れるんだけどな
うちもコメントやifdef等で残ってるのがある
修正入る部分にこれがあると何となく当時の背景が見えてくるから助かってる
バージョン管理は次々鞍替えして数年分しかない
どこが早く履歴の標準規格化してくれたらもっと分かりやすく差分や経緯を見れるんだけどな
521デフォルトの名無しさん
2015/11/27(金) 07:13:44.65ID:vrZOFMnm > 修正入る部分にこれがあると何となく当時の背景が見えてくるから助かってる
過去のバージョン見ればいいだけでは?
コミットログを見れば、何をしたのかもわかるし。
過去のバージョン見ればいいだけでは?
コミットログを見れば、何をしたのかもわかるし。
522デフォルトの名無しさん
2015/11/27(金) 07:14:59.83ID:vrZOFMnm > どこが早く履歴の標準規格化してくれたらもっと分かりやすく差分や経緯を見れるんだけどな
差分の見方とコミットログの書き方を勉強しようよw
一体、何を標準化しろと言ってるのかわかんね。
お前なら、どういう規格を作るのか言ってみなさい。
差分の見方とコミットログの書き方を勉強しようよw
一体、何を標準化しろと言ってるのかわかんね。
お前なら、どういう規格を作るのか言ってみなさい。
523デフォルトの名無しさん
2015/11/27(金) 07:29:24.45ID:8OTsJ1NX >>521
もちろん過去のバージョンと台帳と突き合わせて見ればいいんだろうけど、
そこに変更が入っている事、がソース変更時に読めるのはわかりやすいよ。
今でもチケット番号だけ書いてる。
チケット番号書いとけば、コミット時に拾ってくれて、チケットに対象として載るしね。
もちろん過去のバージョンと台帳と突き合わせて見ればいいんだろうけど、
そこに変更が入っている事、がソース変更時に読めるのはわかりやすいよ。
今でもチケット番号だけ書いてる。
チケット番号書いとけば、コミット時に拾ってくれて、チケットに対象として載るしね。
524デフォルトの名無しさん
2015/11/27(金) 07:45:03.01ID:vrZOFMnm > そこに変更が入っている事、がソース変更時に読めるのはわかりやすいよ。
ほぼすべての行に変更は入る。最初から何万行というコードが一気に出来上がるわけじゃない。
> 今でもチケット番号だけ書いてる。
ソースコードには、コードの意味ではなくてなぜそうしているか?を書く。
変更の理由という形ではなくて、なぜそうしたのか?を書かなければいけないほど
重要なことであれば、その理由を書いた上でチケット番号に関連付けるのは普通。
その場合は、コメント(チケット番号)は変更した理由という履歴ではく、
現在の姿として、なぜそうしているかという形で書けばいい。
変更したものを全部残すという考え方をしていると、現在のコードではなく
過去に存在し今は存在してないコードに対しての履歴まで残ってしまうだろ。
不要な履歴コメントは消すべきだ。
ほぼすべての行に変更は入る。最初から何万行というコードが一気に出来上がるわけじゃない。
> 今でもチケット番号だけ書いてる。
ソースコードには、コードの意味ではなくてなぜそうしているか?を書く。
変更の理由という形ではなくて、なぜそうしたのか?を書かなければいけないほど
重要なことであれば、その理由を書いた上でチケット番号に関連付けるのは普通。
その場合は、コメント(チケット番号)は変更した理由という履歴ではく、
現在の姿として、なぜそうしているかという形で書けばいい。
変更したものを全部残すという考え方をしていると、現在のコードではなく
過去に存在し今は存在してないコードに対しての履歴まで残ってしまうだろ。
不要な履歴コメントは消すべきだ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★12 [蚤の市★]
- 中国の渡航自粛要請1カ月 大阪の観光バス予約ゼロ、東北にも波及 [蚤の市★]
- 【神戸】エレベーター「かご」なく男性医師が転落死 大手「三菱電機ビルソリューションズ」の担当者、安全装置切り放置か [ぐれ★]
- 【日本人の旅行離れ】国内旅行すら行けなくなった……オーバーツーリズムだけじゃない 旅行者減少の異常事態 [ぐれ★]
- 不倫疑惑の永野芽郁さん、CM削除ドミノの違約金“やはり発生は免れない”可能性 約10億円になる見込み、本人は全額支払う覚悟 [牛丼★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- かめはめ波打って仕事行く(5連続成功中)
- 高市、メガソーラー廃止。環境破壊が社会問題化 [792147417]
- 他人のリクエストで自分の癖と異なる絵を上げる絵師いるじゃん?
- 日本人がホルホルの対象にしている生物、海外にも生息すると判明 [603416639]
- 【悲報】フィギュアオタク「2月に結婚予定だった彼女にフラれた。ドラゴンボールのフィギュアも式で飾ろうと話してたのになぜ…」 [802034645]
- 職業訓練行ってるんだけど月13日しか行かないのに毎月18万貰えてる
