今までみた絶望的なソースコード [転載禁止]©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

2デフォルトの名無しさん2015/04/17(金) 23:07:42.31ID:UHVCP2Vk
★★★★★★★★★★★★★★★★★★★★★★★★★★
注意 この部分は、ゴミカスが書いたでたらめな文章です。
★★★★★★★★★★★★★★★★★★★★★★★★★★

> 初級者から中級者へ昇格する時期は、ほぼどのようなソースコードでも読める程度にプログラミング言語に精通し、
> また偉いプログラマーの提唱したデザインパターンも一通り理解したくらいの時期である。
>
> すると、プログラミング言語の持つあらゆる機能と、偉いプログラマーの提唱するあらゆる技術を使わねばならない
> という思い込みが発生する。そしてHello Worldにまで崇高なオブジェクト指向や壮大なデザインパターンを
> 適用しようとしだすのである。
>
> その結果、
> * 大量のクラス
> * 迷路のような変数渡し
> * 底なしに深いネスト
> などといった凄いものが生まれる。また、条件分岐に三項演算子を乱用するなどの症状も多く見受けられる。
> 最終的には第三者にとって読みにくい保守性の悪いスパゲッティコードが生成されることになる。
> http://monobook.org/wiki/%E4%B8%AD%E7%B4%9A%E8%80%85%E7%97%85 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)

3デフォルトの名無しさん2015/04/17(金) 23:09:53.52ID:UDbFCugu
>>2
知ってる。
見ればわかるw

4デフォルトの名無しさん2015/04/17(金) 23:16:09.05ID:2QruBEl7
最強は迷路のような循環参照だろ

5デフォルトの名無しさん2015/04/17(金) 23:20:08.61ID:eE8aPdvb
言語の構文はわずかに例外が有るにしろ、
コードをシンプルで分かりやすく書くことが出来るように
作られたもので、バージョンが上がると追加される機能っていうのは
それを更に良くするもの。

という当たり前のことから考えると、
問題ない機能を「俺が知らないから」「馬鹿が知らないから」という
理由で禁止する行為は、コードをクソコードに仕上げることになる。

もっと最悪なのが、俺がこれ以上勉強したくないから
他の人も使うの禁止!と言い出すリーダー。

6デフォルトの名無しさん2015/04/17(金) 23:26:55.79ID:ooZObC6M
>>2
かなり事実じゃね?

7デフォルトの名無しさん2015/04/17(金) 23:29:30.64ID:eE8aPdvb
>>6
クソスレたてるな

8デフォルトの名無しさん2015/04/18(土) 00:50:42.52ID:dyiDxr2Z
たしかに見に覚えがあるがプログラム書いてて一番楽しい時期でもある

9デフォルトの名無しさん2015/04/18(土) 11:31:06.97ID:rVGwSU9K
確かに2の通りだな
俺が見た絶望は、15全下の種類を持つフラグ変数が5つある奴だな
相互に挙動が干渉し、中で呼び出しが積まれたあとに突然最初のエントリーポイントを再帰しやがった

10デフォルトの名無しさん2015/04/19(日) 13:46:48.22ID:ESsvP1kn
1000行を超えるswitchを見たときは痺れた

11デフォルトの名無しさん2015/04/19(日) 14:31:13.67ID:3NsiJz07
#include <stdio.h>
#define BUFFSIZE 7

int main(void)
{
char* buf;
char tmp;

buf = (char*)malloc(BUFFSIZE);

tmp = -126;
*(buf+0) = tmp + 0;
*(buf+1) = tmp + 72;
*(buf+2) = tmp + 0;
*(buf+3) = tmp + 103;
*(buf+4) = tmp + 0;
*(buf+5) = tmp + 89;
*(buf+6) = tmp + 126;

fputs(buf,stdout);

free(buf);

return 0;
}

12デフォルトの名無しさん2015/04/19(日) 14:48:21.22ID:nqxUSETS
>>11
変数宣言先頭に書くな
たかだか7バイトmallocするな
ポインタのインクリメント使え
終端文字抜けてるぞ

13デフォルトの名無しさん2015/04/19(日) 14:54:48.57ID:B0V38sso
>>12
終端ぬけてねーよ
よくみろはハゲ

14デフォルトの名無しさん2015/04/19(日) 14:59:17.52ID:YPSI+AI0
     彡⌒ ミ
     (´・ω・彡⌒ ミ
   彡⌒ ミつ(´・ω・`) ))ハゲで何が悪い!!
(( (´・ω・`) ( つ  )
   ( つ  ヽ  とノ  
    〉 とノ )^(_)
   (__ノ⌒(_)

15デフォルトの名無しさん2015/04/19(日) 14:59:48.34ID:nqxUSETS
>>13
マジだw

あと一個
charは一バイトでもsizeof使え
Unicode対応の時に泣く
出れば指定要素を指定数分だけメモリ確保する方があったはずだからあっちの方が安全

16デフォルトの名無しさん2015/04/19(日) 14:59:48.62ID:yTHXbUfS
>>12
ネタにマジレスするバカ(笑)
ぬるぽ
って書いてるだけじゃん

17デフォルトの名無しさん2015/04/19(日) 15:01:51.42ID:S//ZaxIU
>>11
ガッ

18デフォルトの名無しさん2015/04/19(日) 15:36:02.22ID:oJmhIRRr
>>11
くだらねぇ

19デフォルトの名無しさん2015/04/19(日) 16:05:31.47ID:dhzBOV6W
絶望的な人間が沸いてるな

20デフォルトの名無しさん2015/04/19(日) 16:12:46.60ID:FgPTbLQc
なんだこのスレw

21デフォルトの名無しさん2015/04/19(日) 16:54:41.99ID:H3AnyW4d
某一部上場企業で使われてる言語が日本語プログラミングのソースで吐きそうになったな
しかも1ファイル3万行とか普通にありやがるしそれこそ分岐しかしてねえ

22デフォルトの名無しさん2015/04/19(日) 17:04:27.02ID:A/MgNyGP
日本語ブロクラミングって実務で使う場所あんのか!
需要なんて絶対無いと思ってたけどw

23デフォルトの名無しさん2015/04/19(日) 17:10:13.35ID:H3AnyW4d
あるんだななこれがしかも日本でも半端ない規模の会社よw
中身はcobolを日本語でラップしたような感じで。
「a=1」 というのを 「aを1に代入」って感じで組んでいく。脳が腐ると思ったわ。

24デフォルトの名無しさん2015/04/19(日) 17:32:24.76ID:A/MgNyGP
誰得だなw
当初は誰でも保守できるようにしたかったのだろうか?
結果誰も保守できなくなった的な?

25デフォルトの名無しさん2015/04/19(日) 17:53:27.13ID:xPXQDkXX
英語がわからないから日本語で書くという
アプローチは200%失敗する。

あー、そういやコードから日本語の仕様書を
作り出すとか言うソフトがあったな。
ね? 見事に失敗したでしょ?

26デフォルトの名無しさん2015/04/19(日) 18:29:17.86ID:dhzBOV6W
Interdevelop Desginerは売れたのか
売れたんなら買った企業の評判を聞いてみたいところ

今のところ俺はステップ実行設計書にご縁がない
幸せだ

27デフォルトの名無しさん2015/04/19(日) 19:04:55.40ID:Rt7hjrl3
日本語プログラムじゃないけど、ruby で6000行のプログラムなら見た事がある。

オブジェクト指向?何それ?っていう感じのコードだったw

28デフォルトの名無しさん2015/04/20(月) 07:31:46.14ID:l0+b2pIW
>>22
FileMakerで作られた信じられないくらい巨大な社内システムの
スクリプト部分が全部日本語だった。

あまりにも酷いので某○ECにリプレイスの見積をとったら、
「30億円くらいじゃないですかね」という回答だった。

いまでも絶賛稼働中

29デフォルトの名無しさん2015/04/20(月) 12:22:22.82ID:Mmn5Ftfg
>>22
むしろ、日本語のほうが便利
変な先入観を捨てて使ってみるとわかる

どんな簡単なプログラムでも下手が作ればスパゲティ

30デフォルトの名無しさん2015/04/20(月) 12:48:14.68ID:HTLIXLfD
などと下手糞が一丁前に語っちゃってます

31デフォルトの名無しさん2015/04/20(月) 13:47:35.36ID:lH6fvovP
変数名が日本語ならまだわかるが、演算子まで日本語にしたらかえってわけわからん。

32デフォルトの名無しさん2015/04/20(月) 13:53:08.80ID:SsAC3a+p
ガラパってるな

33デフォルトの名無しさん2015/04/20(月) 16:31:22.14ID:EfJAKFWG
大企業に限ってソースはダメなテンプレだよ。1ファイル5万行に及ぶクソコードと
分岐ネスト&goto乱発の超絶スパゲッティで某携帯会社のシステムは稼働している。
この会社で働いてた時は一時期プログラミング出来なくなって鬱で休職したわ。俺の知ってるプログラミングじゃなかった。

34デフォルトの名無しさん2015/04/20(月) 18:40:19.36ID:USn+NwOK
RoofRaised って何だと思って、長い時間をかけてヘッダーファイルを調べてみたら、ただの double だった、なんてことがよくあったでしょ。
大規模なプロジェクトのすべてのクラスで暗黙の typedef を見つけ出すのにどれくらい時間がかかると思う?

35デフォルトの名無しさん2015/04/21(火) 08:08:57.40ID:cRXNE3Zt
>>34
ダブルだけに二段屋根?

36デフォルトの名無しさん2015/04/21(火) 08:34:59.52ID:cJvjjAde
仕事選べない立場ってやっぱクズですね
同情します

37デフォルトの名無しさん2015/04/21(火) 10:01:54.00ID:P8FOHws6
>>34
findとgrep組み合わせるだけで、どんなに大きな大規模プロジェクトでも
10分はかからないと思うが。馬鹿なの?

38デフォルトの名無しさん2015/04/21(火) 12:33:47.15ID:5PzRDxP4
> 10分はかからないと思うが。馬鹿なの?
そんなにかかったらだめだろ。
せいぜい10秒程度だろ。

処理は読まないといけないからもう少しかかるが
定義は辞書を調べるようなものなんだから
grepとかfindなんか使わずに、単語を選択して
「定義場所を表示」ぐらいの調べられないとだめ。

この程度で分レベルの時間がかかってしまったら
調べている間に、何してたんだっけ?ってなるよ。
思考を中断させる原因となってしまう。

39デフォルトの名無しさん2015/04/22(水) 20:53:51.72ID:NZ8QzlQ5
☆ 日本の核ブ装は絶対に必須ですわ。☆
http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html

☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が
3分の2以上を超えると改憲が実現します。皆様方、必ず投票に自ら足を運んでください。
私たちの『日本国憲法』を絶対に改正しましょう。☆

40デフォルトの名無しさん2015/04/22(水) 22:45:32.37ID:+mudGifq
増改築を繰り返せばどんなシステムでもスパゲティになる

41デフォルトの名無しさん2015/04/23(木) 14:29:59.79ID:z8bFtkdX
>>38
それくらいで止まるとかw

42デフォルトの名無しさん2015/04/23(木) 16:20:02.46ID:wgFAW8nP
お前たちは真の絶望を知らない

43デフォルトの名無しさん2015/04/24(金) 13:08:16.02ID:E5oc/4Vu
昔だがUNIX C使いがMSDOS Cで作ったソフト
auto変数でサイズ10000バイトとか普通にやってる上に子プロセスも同じだから全見直し

もっと酷かったのがC言語で書かれた移動体の基地局側ファームウェア
処理毎に移動体の数だけフラグ分けとif文の羅列で設計から全見直し

44デフォルトの名無しさん2015/04/24(金) 14:39:36.66ID:TFN7oaD8
>>43
その「auto変数でサイズ10000バイトとか普通にやってる」ところが
全部staticに直されていてスレッドで排他されていないコードも
みたことある。絶望的だ。

45デフォルトの名無しさん2015/04/26(日) 08:28:01.28ID:pIcJs2te
シングルスレッドの組み込みなら常識的なコードだが

46デフォルトの名無しさん2015/04/26(日) 13:23:54.32ID:3kjvd8px
昔のMSDOS環境はメモリ利用領域500KBほどだよ
stackでガバガバ取ったら、あっという間にエラーで落ちるからさw

47デフォルトの名無しさん2015/04/26(日) 16:19:44.76ID:T8rMi6ps
ロートルの何の価値もないXMS講座が始まるからDOSの話は止めろ

48デフォルトの名無しさん2015/04/26(日) 16:40:53.05ID:zBsfufMM
>>46
ほう。じゃあ今はガバガバの2000倍は
使わないといけないから、
あっという間の2000倍かかるなw

49デフォルトの名無しさん2015/04/26(日) 19:38:09.53ID:3kjvd8px
>>48
環境を考慮できないお前みたいな馬鹿ならできんじゃねw

50デフォルトの名無しさん2015/04/29(水) 20:48:46.78ID:zWk0Y6jT
んと、UNIXではmallocの領域とスタックの領域は重なった四角形の上辺と下辺から衝突する方向で成長する。
だから、どちらが大きな領域を取れるかというと対等であるのだけれど
ヒープの側はfreeした場合、管理領域に虫食い穴ができてしまう。
そうした事情があるので、仮想記憶領域をムダに成長させたくなければ
可能な限り大きなメモリーはスタックに確保したほうが合理的なの。

51デフォルトの名無しさん2015/04/29(水) 20:54:30.77ID:ni+OWwPH
Windowsはスタックが1MBだったかな

52デフォルトの名無しさん2015/04/29(水) 21:02:54.96ID:a9t0k9yT
>>50
UNIXはそうかもしれないけど、LinuxもBSDもWindowsも違うよ。

53デフォルトの名無しさん2015/04/29(水) 21:24:24.10ID:zWk0Y6jT
>>52

気になってlinuxのメモリモデル確認したら

テキスト(コード)、初期化、非初期化、(モート)、スタック

になってるじゃん。
ヒープが非初期化領域の末端に来て、反対側からスタックが衝突方向
だからLinuxもやっぱりUNIXと同じモデル。
ユーザーランドから見た論理モデルは変わってないじゃん。

54デフォルトの名無しさん2015/04/29(水) 21:34:48.30ID:a9t0k9yT
>>53
どこを見たのか知らないけど、違うよ。

55デフォルトの名無しさん2015/04/29(水) 21:45:11.23ID:BTL1OO/O
そもそも実装依存過ぎて話にならねえ

56デフォルトの名無しさん2015/04/29(水) 22:01:22.35ID:zWk0Y6jT
わかった今確認した。
カーネル2.6では
text, data, (moat?), heap, bss
になってる。
sbrk()にゼロを渡すと dataと heapの間の数値になるから
初期化データに対してヒープが衝突方向に成長し、
ヒープの後ろに非初期化データが続く。

ただ、ドキュメントによれば2.4ではUNIXと同じはず。

57デフォルトの名無しさん2015/04/29(水) 22:33:43.39ID:jSKM1nC6
ほーん、で?いちいち書き込むなカス

58デフォルトの名無しさん2015/05/02(土) 14:37:22.70ID:xD347L3p
>>28
正直な経験で言うと、社内システムを開発外注して業務改善てのがゆとりな神経だと思う。
成功した会社を一つたりとも見たことがない

59デフォルトの名無しさん2015/05/02(土) 14:43:12.43ID:xD347L3p
switch分岐が5段連なった奴は絶望感が酷かったな
そのなかにたらたら転写、フラグ操作した上で、サブルーチンを呼び、サブルーチンでもまた分岐
調べると同じコードでフラグの設定値だけ違う

某地デジ

60聖マリアンナ医大病院20人資格取り消し2015/05/05(火) 20:23:24.18ID:Xm1AWE57
【神回】美人ニコ生主えりぃがFME切り忘れで公開オナニー!?【電マ】

https://www.youtube.com/watch?v=0U15dDLipOw

61デフォルトの名無しさん2015/05/05(火) 22:49:52.71ID:bz0m6DRq
CRubyでは、compile.c 内の、iseq_compile_each 関数で、
AST(抽象構文木)を、Ruby仮想マシン用の中間コードに、
コンパイルするのだが、

ASTノードの種類によって分岐する、
switch文は数千行もある

switch (ASTノードの種類){ }

「Rubyのしくみ」という本を参照

62デフォルトの名無しさん2015/05/06(水) 04:06:56.31ID:cCF2kAXu
rubyのソースが糞ってのは同意
中身見て驚いたわ

63デフォルトの名無しさん2015/05/06(水) 16:44:48.96ID:+jUiP52g
変数の頭に$をつけなきゃならん言語は全てゴミ扱いでいいと思うの
というかC++以外滅びろ

64デフォルトの名無しさん2015/05/06(水) 17:23:42.32ID:qhtEqerx
htmlとかも滅びてしまうが

65聖マリアンナ医大病院20人資格取り消し2015/05/10(日) 03:27:12.77ID:d7SjFAGD
【海外】「さすが日本だな」 自衛隊の国産ヘリ「OH−1」の性能に外国人衝撃!! やはり日本は世界一だった【大和】

https://www.youtube.com/watch?v=kDfbXZZ15s4

66デフォルトの名無しさん2015/05/10(日) 11:59:03.70ID:x043ivF3
#本当はうごかないはず

67デフォルトの名無しさん2015/05/14(木) 19:48:56.69ID:KwWkhxua
行数が多すぎてコンパイルできない。

68デフォルトの名無しさん2015/05/14(木) 20:03:23.27ID:I7g8lu0W
なんだそれ

69デフォルトの名無しさん2015/05/15(金) 19:31:56.50ID:WZ+HCGJP
どうみても間違っているソースだな
明らかに昨日要件とは違う実装
数週間前に別のやつが触っているのに誰も申告しない

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

安くて真面目に仕事して、能力あると思われると、死ぬまで仕事が降ってくる。

70デフォルトの名無しさん2015/05/16(土) 00:20:16.24ID:cD0zsv9F
今悩まされてるのが同じロジック別モジュール
作成者が統一化に猛反対
馬鹿は本当に死んでくれ

71デフォルトの名無しさん2015/05/16(土) 01:05:34.17ID:atT3KGbX
>>70
既存に似たものあるから統合するって感じ?
作成者は少々いじられるのも嫌と?
可能な限り共通化して分離必要な箇所はインターフェース化して個別実装だな
ソースコピペとかは技術者を名乗ってはいけない

72デフォルトの名無しさん2015/05/16(土) 01:51:37.25ID:+UC07Y5W
>>70
ロジックが同じかどうかでまとめるのではなくて、
役割で考えないとダメだよ。

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

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

もちろん汎用モジュールに分けられるようなものであれば
分けた方がいい。

73デフォルトの名無しさん2015/05/16(土) 06:32:17.99ID:y0uxq7/N
自動車の大規模リコール騒ぎを見てれば
なんでも共通化すればいいってもんじゃない
ということは言える

74デフォルトの名無しさん2015/05/16(土) 09:42:11.75ID:T8dXcHE3
同じロジックでも制御対象が別ならコピペして分けておく
現在たまたま同じロジックで済むだけだから

75デフォルトの名無しさん2015/05/16(土) 10:51:43.92ID:atT3KGbX
>>74
分ける必要が出た時に差分を個別実装すればいいだけ
コピペされたコードなんて誰もメンテしないぞ
特に他社のコード引っ張って来たら絶対触れない
不具合出ても一方は修正されたのに一方は修正されない
客からしたら不具合治ってないとクレーム
それが続けば信用問題にもなりかねない
月日が経てばもはやどっちがオリジナルか判別不明

76デフォルトの名無しさん2015/05/16(土) 11:56:34.39ID:cD0zsv9F
>>71が正解
日付け事にコピペしてんだよ!!
モジュール統一化してパラメーター渡しにしたらえらく御立腹w

77デフォルトの名無しさん2015/05/16(土) 12:13:54.92ID:SZ2m/aFp
要するに自分の管理外にコードが出ていくのが嫌なのね
気持ちは分からんでもないけど、そいつテスト書いてないだろ

78デフォルトの名無しさん2015/05/16(土) 13:13:51.56ID:RLs2q5hO
コードは自分以外が読むものとして書くべき。

79デフォルトの名無しさん2015/05/16(土) 15:16:33.13ID:cD0zsv9F
>>72>>74と仕事すると大変だろうな

80デフォルトの名無しさん2015/05/16(土) 15:20:46.44ID:CnFMKOW2
>>79と仕事するほうが大変だろw
理由はわかっている人には明らかだらあえて言うまでもないが。

81デフォルトの名無しさん2015/05/16(土) 15:32:07.60ID:/LBMRGuE
同じコードだからって領域が違うものをまとめるのはアホ。
コピペの方がまだマシ

82デフォルトの名無しさん2015/05/16(土) 15:57:15.01ID:SZ2m/aFp
たぶんここから濃厚な罵倒合戦の火蓋が切って落とされると思うんですけど

83デフォルトの名無しさん2015/05/16(土) 16:13:02.95ID:EsD9+D7Y
結果的に同じものができたから、一つにするという考えは間違っている。

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

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

汎用モジュールとして使うとしてもパッケージソフトくらいにしか適用できない。

84デフォルトの名無しさん2015/05/16(土) 17:41:36.12ID:atT3KGbX
>>82
禿同w

>>76見ると日付毎言うてるから相当悲惨と思われる
俺はオブジェクトのシリアライズでバージョン毎に完全に分けられてて泣いた
どうせフィールド追加しただけなのに全部コピーするから一万行超えてたwww
差分だけ追加するようにしたら200行…

85デフォルトの名無しさん2015/05/16(土) 18:21:40.06ID:UflOEuuo
このスレの誰と仕事すると大変か、という問いに関しては
「土曜の昼日中に2chやってる奴」が答え

86デフォルトの名無しさん2015/05/16(土) 18:30:16.32ID:cD0zsv9F
ソースのコピペを肯定する人多いのか
>>84状態なんだがw

87デフォルトの名無しさん2015/05/16(土) 19:03:32.28ID:0p3VeBPS
同じ処理が複数箇所に書いてあるなんぞあり得ない。

88デフォルトの名無しさん2015/05/16(土) 20:12:39.41ID:sArM/Yx9
>>87
アフリカの猿とアマゾンの猿は、同じに見えるかもしれませんが、別物です。
初心者にはわからないかもしれませんが。

89デフォルトの名無しさん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業界の中でも特定の業種だよね。
メーカーの内製でそんなことしないだろ?

95デフォルトの名無しさん2015/05/16(土) 21:19:35.97ID:UflOEuuo
>>92
アホは喋るの止めた方がいいよ
帯域も容量も地球の資源ももったいない

96デフォルトの名無しさん2015/05/16(土) 21:23:40.37ID:SZ2m/aFp
というか、pythonのrangeをmapで使おうとすると
まさにそんな感じのコードですわ。
視野の狭い人ね。

97デフォルトの名無しさん2015/05/16(土) 22:42:32.71ID:pszRfElg

98デフォルトの名無しさん2015/05/17(日) 02:35:55.03ID:c3gAm3/x
>>85
>このスレの誰と仕事すると大変か、という問いに関しては
>「土曜の昼日中に2chやってる奴」が答え

18:21:40.06 ID:UflOEuuo

書き込めるまで我慢してたんだろな〜www

99デフォルトの名無しさん2015/05/17(日) 04:53:31.15ID:gpE1Sl6q
>>86
>>71 だと実装の継承しようとしてるので、OOP 的には >>72 >>74>>83 みたいな反論は普通出てくる
ただ >>76 見るに相当ひどいみたいだし、何か特別な理由があるんじゃないかと

頻繁に特定の日付時の状態にバイナリ互換で戻すとか?あるかそんな事

100デフォルトの名無しさん2015/05/17(日) 09:05:05.05ID:5hOzuN4k
例えばヤフーのようなIDでログインさせるAPIを他社に提供することを考える
この場合ログイン処理をクラスとして切り出ししそのインスタンスのログイン処理をコールしてもらえるように設計するだろう
つまりヤフーも他社も同じクラスのインスタンスを持ちそのログイン処理を共有する

他社がヤフーのログイン処理を実装したりヤフーが提供先ごとにログイン処理を実装することがあるだろうか?
1つの処理もまた1つのオブジェクトだよ

101デフォルトの名無しさん2015/05/17(日) 09:18:21.06ID:c3gAm3/x
>>99
スレタイ嫁
特別な理由はそういうコード書く人物が存在する事だろ

102デフォルトの名無しさん2015/05/17(日) 09:56:39.55ID:CzRQDZeG
>>100
>つまりヤフーも他社も同じクラスのインスタンスを持ちそのログイン処理を共有する

そのやり方だとセキュリティがザルになるけどね。

103デフォルトの名無しさん2015/05/17(日) 09:59:30.81ID:eUJr406l
コピペするに足る理由がある時はいいんだよね?
例えばFlashがリテンションしてプログラムの一部が読めなくなった時でも
最低限人が死なない程度に制御するためにバイナリレベルで多重化するような場合とか

104デフォルトの名無しさん2015/05/17(日) 10:30:23.26ID:CzRQDZeG
>>99
一昔前のCOBOLでなら、聞いたことはある。

105デフォルトの名無しさん2015/05/17(日) 11:57:01.86ID:c3gAm3/x
>>103
それをソースコードのコピペと呼ぶのか

106デフォルトの名無しさん2015/05/17(日) 12:12:04.44ID:nE1QdxB9
>>61
逆にこういう例ってどうするのが正解なの?

107デフォルトの名無しさん2015/05/17(日) 15:27:46.20ID:wvzPz3Ba
絶望を与えるのに間違ってる必要性はないんだ

108デフォルトの名無しさん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文でどんどん分岐し、重複ロジックを大量に書いてあったプログラム。

111デフォルトの名無しさん2015/05/17(日) 23:28:50.20ID:c3gAm3/x
>>107
≫≫110とリンクするな(笑)

112デフォルトの名無しさん2015/05/18(月) 00:27:44.33ID:R6qIQaEG
派遣先で部下というか新しいメンバーにコード書かせたら恐ろしいコードよこしやがった。

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

もうそこやめるからテスト通して放置。

113デフォルトの名無しさん2015/05/18(月) 00:59:25.35ID:92QLSF+E
てーへんっすね
(大変ですねと、そんなレベルの低い人間と働かなきゃいけないなんて
あなたもやはり底辺の住人ですね、を掛けている)

114デフォルトの名無しさん2015/05/18(月) 04:23:14.79ID:eg26D6LT
>>112
飛ぶ鳥跡を濁さず
知ってて放置は良くないぞ

>>113
同じ会社でも個々の能力はピンキリだろ
とくに大きい会社になるほど色んな奴と出会う

115デフォルトの名無しさん2015/05/18(月) 06:10:30.81ID:2t3/vjAH
コードソムリエ。

116デフォルトの名無しさん2015/05/18(月) 06:12:37.96ID:ezOKhhiH
>>114
> 飛ぶ鳥跡を濁さず

濁してるのは、飛ぶ鳥の方じゃないですからw

117デフォルトの名無しさん2015/05/18(月) 06:44:46.92ID:2t3/vjAH
飛ぶ鳥を落とすため、最高のライフルをご用意いたしました。

118デフォルトの名無しさん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";
って感じか?

120デフォルトの名無しさん2015/05/18(月) 12:21:28.58ID:ndOcmHbS
>>118
知って飛び去るのはよくないっていうことでは?逃げるが勝ちの方がふさわしいと思うが。

121デフォルトの名無しさん2015/05/18(月) 14:17:46.16ID:oJXHJ+WI

122デフォルトの名無しさん2015/05/19(火) 20:48:19.66ID:goeUU+n9
お前らが管理しているソースで一番古いのっていつ頃のソース?

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

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

仕様書もソースも追加修正だらけで、作り直したいけど、動いているソースなんで勝手に修正するなって
言われていて作り直すわけにもいかなくて困ったもんだ状態だわ

123デフォルトの名無しさん2015/05/20(水) 00:15:49.66ID:mFPTvTAh
>>122
ボトルネックなんかが明確なら再作成ありだが、ただコードを綺麗にしたいってのはただのマスターベーションだしな

124デフォルトの名無しさん2015/05/20(水) 07:37:13.08ID:VJuVsJlg
まあ動作実績のあるコードは触らないのが鉄則だからな
仕様変更を待つしかないね

125デフォルトの名無しさん2015/05/20(水) 08:43:49.75ID:do2GoB8K
>>122
そのコードが今でも頻繁にメンテされているならありだが、特に問題がなく、今後も大きな拡張が見込めないなら何もしないほうがいい。きもちは痛いほど分かるけどね。

126デフォルトの名無しさん2015/05/20(水) 17:56:58.18ID:qzEPJuIN
念の為に言っておくと、開発効率が悪いから
不具合が発生するリスクが高いから
という理由でコードを綺麗するのは重要なこと

127デフォルトの名無しさん2015/05/20(水) 18:25:43.60ID:zgEA4FV1
開発側の100%負担なら誰も反対しないだろうが、オナニしたいから開発費用を払って!
と言われて金を出す奴がいるとすれば、ただの鴨と鵜飼

128デフォルトの名無しさん2015/05/20(水) 18:41:48.75ID:qzEPJuIN
ムダに高い金を払っているってことを
知らせない、知らないほうがお互い幸せだからなw

金を払う方は金を払って、作る方は残業して。
こんなに苦しい物が実は無駄なんてw

129デフォルトの名無しさん2015/05/21(木) 00:32:12.22ID:l4RR4WuM
この手の議論は請負系と自社開発とで考え方が変わってくるな。

130デフォルトの名無しさん2015/05/21(木) 08:11:01.01ID:Tg0bXDwp
請負なら検収さえ通ればゴミ納品してもいいしな

131デフォルトの名無しさん2015/05/22(金) 00:19:08.23ID:vgLs0WMP
>>125
ボトルネックがあると書いとるだろw

132デフォルトの名無しさん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
簡単なサンプルは、ドラッグアンドドロップで
ポンポン作れるんだけど、いざ実務に即したものを
作ろうとすると、その単純さが仇となって、
猛烈に長いコードを書く羽目になった。

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

もう、苦行としか言いようが無い。

136デフォルトの名無しさん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ツールってコンサルタントのただの商品だからな。

141デフォルトの名無しさん2015/05/28(木) 00:33:54.59ID:odZ+ejWb
銀行系SEをリストラされた親戚がマイナーなサーバー管理ツールを使ってたな
本人はapacheのマニュアルすら読んだことないんだと

142デフォルトの名無しさん2015/05/28(木) 07:17:10.11ID:4DphScwy
>>141
なんか可愛そうだよね。
多くの時間を、他の会社では使えない知識を
学ぶのに使ってしまうのって。

143デフォルトの名無しさん2015/05/28(木) 08:38:16.04ID:nbjUOWor
目的と観点を明確に使っているかだろ
ツールのいいなりじゃどうしようもないが、そこがわかっていれば他のツールも直ぐに使いこなせる。


問題は、そういう機能も出力もないツールを掴まされて使う必要があるとき
ワンオフのシステムによくある、

144デフォルトの名無しさん2015/05/28(木) 14:04:48.55ID:+z3HE+1N
パフォーマンスの点から見て絶望的なのに無理やり二分木を使ったプログラム
頭が湧いてるんじゃないかと思う

145デフォルトの名無しさん2015/05/28(木) 14:59:54.71ID:xfxVVPCq
>>141
さすがにサーバー管理をやっているなら自分でapacheくらい勉強するだろう。リストラされても仕方がない。

146デフォルトの名無しさん2015/05/28(木) 17:13:30.69ID:lDPgwgfB
>>145
元銀行のSEだぞ?

147デフォルトの名無しさん2015/05/28(木) 18:11:36.01ID:QUSVe/9V
cobol製webサーバーとかあんのかな
俺は業界門外漢だから知らね

148デフォルトの名無しさん2015/05/28(木) 18:30:03.55ID:BS3T4776
銀行系専門がOSSなんてさわったらジンマシンに襲われるんじゃね

149デフォルトの名無しさん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がないところなんてないと思うが。

151デフォルトの名無しさん2015/05/28(木) 20:52:15.94ID:6zahNw0I
>>150
> まあ、中身は... だけどね w
の意味わかってないのか?
極論すれば中身なんてどうでもいいんだよ、なんかあった時に Oracle とか IBM の名前が出せることが重要
マジで OSS なんて使ったら死ぬぞ w

152デフォルトの名無しさん2015/05/28(木) 21:06:20.31ID:+ywrUonY
>>151
おまえの立場が分からん。

153デフォルトの名無しさん2015/05/28(木) 21:13:13.15ID:gPuaPwC0
銀行のWebサーバなんて9割IISだぞ。
apacheなんて趣味用のサーバ使うわけがないだろ。

154デフォルトの名無しさん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

157デフォルトの名無しさん2015/05/28(木) 22:18:52.11ID:6zahNw0I
>>156
なにを根拠に言ってるのかわからん w

158デフォルトの名無しさん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
自分のいる現場が標準だと言ってるやつは何なの?

161デフォルトの名無しさん2015/05/29(金) 09:03:15.45ID:KVqhIdpV
今までみた絶望的なスレの流れ

162デフォルトの名無しさん2015/05/29(金) 09:08:21.83ID:1xJgnWA+
ここだと言いたいのかテメェはよ

163デフォルトの名無しさん2015/05/29(金) 12:58:09.22ID:08TmNpAe
>>158
それは銀行系を知らなすぎる

164デフォルトの名無しさん2015/05/29(金) 13:05:36.51ID:eZjwWKWh
銀行系と勘定系って違うの?

165デフォルトの名無しさん2015/05/29(金) 15:43:25.62ID:psnfn6m+
>>163
銀行系だからとか関係ない。そんな銀行しかわからん技術者だからリストラされるんだよ。それが嫌なら常に独学でも学び続けるか、管理する側に回るしかない。IT系では特に重要なこと。

166デフォルトの名無しさん2015/05/29(金) 21:18:39.98ID:H91kCqGL
>>164
銀行の中に勘定系と情報系がある
厳しいのは当然金を扱う勘定系
下手すると新聞沙汰になる
ただし情報系が甘いわけじゃないので、OSS なんて入れるアホは滅多にいないと思う
まあ、地方の信金とかは知らんけど w

>>165
銀行だけとは言ってない
銀行(メガバン)ではって話だよ

167デフォルトの名無しさん2015/05/29(金) 21:35:12.07ID:Wut4Rhve
>>166
たくさんシステムがあるのに皆無と言い切れるあなたさエスパーですか?

168デフォルトの名無しさん2015/05/29(金) 21:35:32.81ID:AM+afDIM
ぐぐったらUFJが採用してたけど・・・

169デフォルトの名無しさん2015/05/29(金) 22:19:09.92ID:H91kCqGL
>>166
アホが噛みつくからわざわざ滅多にって書いてるのに... w

>>168
ああ、すまん
Redhat Linux でしょ、一応サポートあるしね
と言うか IBM が zServevr で動作保証してるから
サポートのない OSS をベンダーが勝手に入れるのとは訳が違うよ

170デフォルトの名無しさん2015/05/29(金) 22:20:19.22ID:H91kCqGL
アンカー間違えたわ
>>166>>167

171デフォルトの名無しさん2015/05/29(金) 22:30:12.86ID:NC9x2l2n
>>169
> サポートのない OSS をベンダーが勝手に入れるのとは訳が違うよ

サポートがある OSS をベンダーが説明してから入れるなら
何の問題もないでしょ?

つまり短く言うとOSSは問題ない。

172デフォルトの名無しさん2015/05/29(金) 22:47:26.35ID:Wut4Rhve
オープンソースがダメという理屈がわからん。

173デフォルトの名無しさん2015/05/29(金) 22:54:32.43ID:XkG9lmPe
毟り取れるなら、そこからケツの毛まで毟り取ってやればいいじゃん
全部がOSSになったりしたら、その有り難みがなくなっちゃうよ

174デフォルトの名無しさん2015/05/29(金) 23:11:05.04ID:2X83fotM
>>171
> サポートがある OSS をベンダーが説明してから入れるなら
> 何の問題もないでしょ?

うん

> つまり短く言うとOSSは問題ない。

バカなの? w

175デフォルトの名無しさん2015/05/30(土) 00:19:49.69ID:SYHYR5qB
サポート=バグがでたら修正しまーす ではなく
実際の損害を金銭で補償します だべ

ソフト屋の浮世離れした常識は通用しないべ

176デフォルトの名無しさん2015/05/30(土) 04:53:30.49ID:mWvJuAGp
実際の損害って、逸失利益とかも含まれるの?
含まれるとしたら太っ腹だな

177デフォルトの名無しさん2015/05/30(土) 09:56:32.74ID:TSHvBVv0
契約次第に決まってんじゃん
仕事したことないのバレバレ

178デフォルトの名無しさん2015/05/30(土) 10:22:34.30ID:nksCNU9d
よっぽどアホな企業とか特殊な場合でない限り、上限を契約の金額にするのは常識だと思うが

179デフォルトの名無しさん2015/05/30(土) 11:57:42.43ID:BVpXxfcf
>>150
そうか?
ランプとかが流行ったが、所詮は安物買いの銭失いが大半
銀行はJSPばかりだよ

180デフォルトの名無しさん2015/05/30(土) 12:58:56.25ID:mWvJuAGp
>>175でOSS使わない理由が損害補償なのかと思ったから
>>176って書いたんだけど、OSS全然関係なさそうだな

181デフォルトの名無しさん2015/05/30(土) 14:36:46.82ID:ebcCMrL3
だって実態を知らないで
想像で言ってるだけだもん
見ればわかるよw

182デフォルトの名無しさん2015/05/30(土) 22:57:48.60ID:ptIP/4nN
>>179
jspはWebサーバー、アプリケーションサーバー、OSが全部オープンソースの場合もあるが?

183デフォルトの名無しさん2015/05/30(土) 23:01:36.15ID:ptIP/4nN
サポートがあるかどうかなんて格好だけってことも多いからな。

マイナーな機能だと、サポートに聞いても使い方すら分からないことなんてザラ。

184デフォルトの名無しさん2015/05/30(土) 23:08:00.65ID:GbYkPqTc
コメントが無く、関数・変数の名前がいい加減な文字列操作関数

185デフォルトの名無しさん2015/05/31(日) 13:15:34.98ID:aaI4+yOw
正規表現なら何をやりたいか、書いて欲しい。みんながみんな頭の中で正規表現できるとは限らんので。

186デフォルトの名無しさん2015/05/31(日) 15:41:07.63ID:vCKs7HZr
>>182
どこの事例?

>>180
損害保証なんてまあ関係ない
そもそも国内でそんな事態になるケースなんて滅多にない

187デフォルトの名無しさん2015/05/31(日) 17:11:33.36ID:nCZZum25
>>186
jspがなんだと思ってんだよ?

188デフォルトの名無しさん2015/05/31(日) 17:30:33.86ID:vCKs7HZr
>>187
JSP が何かを知りたかったら Wikipedia でも見とけよ

189デフォルトの名無しさん2015/05/31(日) 17:38:39.32ID:LTxgNM08
JSPだとむしろオープンソースと絡むぞ。

ASPと言っておけばいいものを。

190デフォルトの名無しさん2015/06/01(月) 19:42:40.39ID:e+Q3qVuq
jsp?ずいぶんとダサいコードを書いてるのね。

191デフォルトの名無しさん2015/06/02(火) 21:01:27.10ID:80AN9G/c
>>190
帯をパクるな。キモヲタってバレバレだぞw

関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間
http://www.amazon.co.jp/gp/product/4798043761

192デフォルトの名無しさん2015/06/02(火) 21:11:09.51ID:y/vvSKhg
排水溝の髪の毛なんて持ってくんな
汚い

193デフォルトの名無しさん2015/06/03(水) 00:18:56.27ID:fWOFbe2S
>>191
なかなかの低評価ですね。

194東京女子医科大学病院プロポフォール大量投与2015/06/08(月) 23:39:32.28ID:Fqp3awmG
マスゴミ・売国奴・医療業界が隠そうとする真実---------------------安楽死---------------------奴隷に勝手に死なれては困る

安楽死旅行企画が大人気|竹田恒泰チャンネル

https://www.youtube.com/watch?v=XmP1TRsAe88


武田邦彦:安楽死と大麻、そして売春・・・オランダに学ぶ

https://www.youtube.com/watch?v=nWV8YOY39tw


安楽死党

https://www.youtube.com/watch?v=8nU2UaSlGx0

自殺は後遺症が怖い!だから-----------------------------------安楽死制度-------------------------------------安心して生きるために

195デフォルトの名無しさん2015/06/15(月) 16:16:30.52ID:APmJNnuF
安楽死って、ただの自殺教唆。

196デフォルトの名無しさん2015/06/25(木) 08:29:08.25ID:3LKwgapt
アングラ牧場?

197デフォルトの名無しさん2015/06/25(木) 08:34:36.81ID:ni30MNzk
話題のニトリは絶望するほどじゃないけど面白い

198デフォルトの名無しさん2015/06/25(木) 14:09:47.98ID:0TJc5kfL
俺もっと酷い所にいたことあるよ
こんなの修羅場でも何でもない(奴隷自慢

が始まると思っていたのにがっかりだぜお前ら

199デフォルトの名無しさん2015/06/29(月) 10:01:52.20ID:uRgKjkQ2
そういうのはプログラマー板じゃね?

200デフォルトの名無しさん2015/06/29(月) 13:05:59.79ID:ZG8WYZZ5
プログラ魔?(´・ω・`)

201デフォルトの名無しさん2015/06/29(月) 13:14:48.97ID:QITtNM5B
プロ グラマー

202デフォルトの名無しさん2015/07/04(土) 21:24:58.98ID:i6tiuRGk
スパゲッティでもなんでもない、超綺麗なコードなんだけど
引き継いだプロジェクトのソースファイルがすべて空だったことがあったな

203デフォルトの名無しさん2015/07/05(日) 00:11:02.21ID:SYjfN7FW
>>202
「 不射之射 」ってやつかな?(すっとぼけ)

204デフォルトの名無しさん2015/07/18(土) 16:41:57.48ID:Elmadk8a
他人の書いたソースを解析する時は
全部まとめて1ファイルにした方が検索で一発で飛べて分かりやすい

205デフォルトの名無しさん2015/07/18(土) 16:49:11.39ID:ClZy0R3/
串刺し検索できないとか無能すぎる

206デフォルトの名無しさん2015/07/18(土) 17:07:50.05ID:Elmadk8a
会社PCでメモ帳しか使えないからな

207デフォルトの名無しさん2015/07/18(土) 17:33:22.11ID:ClZy0R3/
そんなPCでプログラミングするの?どんな糞企業だろうな

208デフォルトの名無しさん2015/07/18(土) 17:33:36.46ID:kyfBrlqO
Windows なら findstr
Linux なら grep

209デフォルトの名無しさん2015/07/19(日) 15:10:05.90ID:05eNFjFO
とりあえず話はソースをEclipse CDTにぶち込んでからだ

210デフォルトの名無しさん2015/07/19(日) 16:02:36.84ID:A8XocGVA
メモリが足らなくてEclipseが起動しないでござる

211デフォルトの名無しさん2015/07/19(日) 17:15:04.84ID:hehkSm21
emacs使えばいいんじゃね
それすら動かないならedでも使っとけ

212デフォルトの名無しさん2015/07/19(日) 17:51:34.68ID:yGfbtuav
メモリ512MBのatomなんだすまない

213デフォルトの名無しさん2015/07/20(月) 07:30:50.84ID:7UJk40NA
窓から投げ捨てろ

214デフォルトの名無しさん2015/07/20(月) 10:15:18.72ID:gcbmkQzq
鯖用にいいだろ
512もあればnginx+MariaDBでwordpressでもできるでしょ

215デフォルトの名無しさん2015/07/23(木) 11:22:55.43ID:Jym5rlVM
>>212
9800円のWindows8タブレットですら1GBは積んでる

216デフォルトの名無しさん2015/07/23(木) 13:25:18.90ID:mmfWdiQl
atom で余分な部品をカットして省電力ならそれが正しい

217デフォルトの名無しさん2015/07/23(木) 13:44:48.25ID:WUAvzM35
用途の選択ミス

218デフォルトの名無しさん2015/07/23(木) 22:37:03.81ID:DlgtK7Z2
メモリ2GBの安タブにBTのキーボードとマウスを繋げりゃそこそこ使える

219デフォルトの名無しさん2015/07/24(金) 00:31:36.00ID:epV3Dcoh
>>218
中古のNexus7にUbuntuいれてそれやると最強

220デフォルトの名無しさん2015/07/24(金) 07:28:40.25ID:30gYvqyq
SDカード使える機種でオススメある?

221デフォルトの名無しさん2015/07/25(土) 10:07:29.97ID:fFQ7wKxw
jQueryのソースが見ると吐気する。javascriptの方がよほど簡単と思えるのは子供の頃からプログラムしてるせい?
ほんとにあれノンプログラマは見て分かりやすいの?

222デフォルトの名無しさん2015/07/25(土) 11:53:37.22ID:AbBoos+r
> jQuery(を使ったサイト)のソースが見ると吐気する。
> (プレーンな)javascriptの方がよほど簡単と思えるのは子供の頃からプログラムしてるせい?
> ほんとにあれノンプログラマは見て分かりやすいの?

で、あってる?
もちろんjQueryを持ち上げるための方便か
全体でせいぜい100行、かつテストなしのコード
しか書いたことがない人が言ってるんじゃないかな
数行で目的を注入するという目的に限れば確かに容易い

223デフォルトの名無しさん2015/07/25(土) 18:23:12.23ID:A3Ss5+fR
ノンプログラマがまともにjQueryなんて使うの?
プログラマの俺はjQueryで助かってるけど

224デフォルトの名無しさん2015/07/25(土) 20:20:37.51ID:Q65ZCebZ
>>221
病院に行ったほうがいいよw

jQueryのソースコードは機能毎に小さくモジュール化されていて、
長いファイルでも500行前後ぐらいしかない。
ほとんどは100行前後。

.jshintrcや.jscsrcもあるから
当然品質も保たれていると考えていいだろう。
当然テストコードも有る。

良いプロジェクトの見本のようなもんなんだが。

225デフォルトの名無しさん2015/07/25(土) 20:54:47.06ID:o6XQJ+h/
>>224
お前だろ病院行った方がいいのは。
誰がjqueryの中身の話なんてしてんだよ?

226デフォルトの名無しさん2015/07/25(土) 20:55:34.26ID:paoVPCKX
jQueryのソースが見ると
jQueryのソースが見ると
jQueryのソースが見ると
jQueryのソースが見ると 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)

227デフォルトの名無しさん2015/07/25(土) 20:57:56.19ID:5BpE4UJW
構文の話してるのに何行あるかなんて始めて馬鹿じゃないの?
いきなり病院いったほうがいいとかキチガイでしょ?

228デフォルトの名無しさん2015/07/25(土) 21:02:26.92ID:paoVPCKX
構文? jQueryはJavaScriptの構文そのまんまなんだが?

トランスパイラと言って、別の構文から
JavaScriptに変換する仕組みが今は流行ってるが
jQueryはそんなもの使わない純粋なJavaScript

どこか変な構文でもあったか?
その構文を御前が知らないだけでは?

229デフォルトの名無しさん2015/07/25(土) 21:04:51.82ID:M9EIeKKB
ソースコードのことより自分の日本語でも見直しとけってのスカタン

230デフォルトの名無しさん2015/07/25(土) 21:08:14.29ID:M9EIeKKB
いや、失礼した
「子供の頃からプログラミングをしてるせい」(で言語能力が的に育たなかった)
って書いてあったね

231デフォルトの名無しさん2015/07/25(土) 21:09:32.45ID:paoVPCKX
子供の頃の知識で止まってるんだろーなーw
どうせBASICだろう

232デフォルトの名無しさん2015/07/25(土) 21:16:42.87ID:aUQYbDBF
質問主の言葉が足りないってのは分かるけどー、
読んだら分かるよねー。
いわゆる信者っていうの?
批判的なことに条件反射しちゃうんだよね。分かる分かるー
っていーかぁ、そもそもスレチだしw?
両方消えてw

233デフォルトの名無しさん2015/07/25(土) 21:20:01.43ID:paoVPCKX
質問主の言葉が足りないんだろ。
それが全てだろ。
何言ってるんだか。

234デフォルトの名無しさん2015/07/25(土) 21:23:52.55ID:aUQYbDBF
プログラマーって定義されてないと怒るよねwww
10言わなきゃわかんねーのかw小学生かwww

235デフォルトの名無しさん2015/07/25(土) 21:59:39.64ID:paoVPCKX
>>234
言葉が足りないのなら補えばいいが、
言葉が間違ってるからな。

お前Underscore.jsのソースコード見たこと有る?
この質問に答えてみるといいよ。

236デフォルトの名無しさん2015/07/25(土) 23:47:54.23ID:BtkcRlE5
用語じゃないけどさ、
前に似たようなjQuery信者が煽ってたのでソース読んだが、
同じ変数に別の意味の再代入とか平気でしててはっきり言って汚かったよ

ソースすべてを読んだわけではないが、その部分出したら綺麗とのたまってたね…
こういうのとは絶対一緒に仕事したくないわ

237デフォルトの名無しさん2015/07/25(土) 23:49:07.03ID:BtkcRlE5
用語 -> 擁護

238デフォルトの名無しさん2015/07/25(土) 23:58:07.11ID:o6XQJ+h/
>>235
>>222
が正しい文に直してくれているし、思い込みをしなければ、正しい意図を紐解けるというのはすでに立証されているんだがw

だから、質問がクソであり、それを思い込みで解釈したやつもクソだなと思うんだけど、俺にどう考えを直して欲しいのかなwww?

239デフォルトの名無しさん2015/07/26(日) 00:46:52.14ID:Nu2ySp1+
webアプリの伝票を表示する画面のHTMLで、テーブルタグでエクセル方眼紙作ってあった
列とか必要以上に多くて無駄にセルの結合してあった

240デフォルトの名無しさん2015/07/26(日) 01:31:08.71ID:Q7ZjjhPq
方眼紙便利なのに、なぜ方眼紙アプリが売っていないのか。

241デフォルトの名無しさん2015/07/26(日) 08:33:31.95ID:Lmm8STAE
>>236
どのファイルだよ?
言ってみ。

242デフォルトの名無しさん2015/07/26(日) 14:59:14.63ID:p/433SX/
>>241
https://github.com/jquery/jquery/blob/a644101ed04d0beacea864ce805e0c4f86ba1cd1/src/core/access.js
bulkの型がめちゃくちゃ
後ろでは関数として呼び出し、別の意味になってる

https://github.com/jquery/jquery/blob/master/src/event.js
tmpなどの使い回し
変数宣言を先に行う規定があるのか、全体的に読みにくい

243デフォルトの名無しさん2015/07/26(日) 15:22:58.35ID:p/433SX/
他も見たが、基本的に短い変数名ばかりだし、やっぱり読みにくいよ
決してvimほど汚くはないが、これを綺麗とか言っちゃうのは信者だけ

244デフォルトの名無しさん2015/07/26(日) 18:16:05.04ID:7EBqSyeY
短い変数名だから読みにくいっていうのは
間違った考え方だな。

スコープが十分小さいなら
長い名前にする必要がない。

245デフォルトの名無しさん2015/07/26(日) 18:27:45.85ID:7EBqSyeY
>>242
> bulkの型がめちゃくちゃ

なるほど。

君は動的型付け言語における
オーバーロードの書き方を知らないようだ。

オーバーロードっていうのはね。
関数の引数(シグネチャ)が違う同じ名前の関数を複数作成できる機能
呼び出すときに、引数から適切な関数を判断する。

だけど動的型付け言語ではそれが出来ないから、
関数の内部で、引数が省略されたかどうかやその型を見て処理を変える。

このコードはそれをやってるんだよ。

246デフォルトの名無しさん2015/07/26(日) 18:57:52.47ID:p/433SX/
>>245
反論の内容には同意するが、ほぼ無関係だな

まず問題の変数は引数ではないので、根本的に間違えてる
宣言時にbooleanで初期化した後、分岐して関数入れてる

また、短いスコープであれば問題にならない事が多いのも同意するが、
特定ブロックで使う物を、関数全体スコープで宣言してるので該当しないな

何より、オーバーロードをしようが、通常は実装は汚くはならない
普通は最初に適切に分けるからな

247デフォルトの名無しさん2015/07/26(日) 19:06:24.32ID:7EBqSyeY
> まず問題の変数は引数ではないので、根本的に間違えてる

引数でないから間違えというのは短絡的だな。
コード見ればわかるようにkey(引数)がnullかどうかによる処理だ

> 特定ブロックで使う物を、関数全体スコープで宣言してるので該当しないな
JavaScriptにブロックはない。だからスコープを重視するならば
先頭に書くのが正しい。(俺はスコープ無視するけどなw)

> 普通は最初に適切に分けるからな
最初に分けるのが必ずしも正しい訳じゃない。

コード短いんだし、直してみれば?

248デフォルトの名無しさん2015/07/26(日) 19:08:06.07ID:7EBqSyeY
> JavaScriptにブロックはない。
一応訂正しておくか、ECMAScript5の範囲においてはだ。

249デフォルトの名無しさん2015/07/26(日) 19:33:15.94ID:p/433SX/
>>247
>引数でないから間違えというのは短絡的だな。
>コード見ればわかるようにkey(引数)がnullかどうかによる処理だ
だから何なんだとしか
引数でないのだから、オーバーロードの実装のためという言い訳はできない
他の型を意図的に代入し、使い回した時点で汚い

>JavaScriptにブロックはない
function、if、switch...ときちんとブロックはある上に、
スコープもライフタイムも違う

なんか前絡んできた人と同じ人っぽいからもう止めるよ
不毛だし

250デフォルトの名無しさん2015/07/26(日) 19:49:23.12ID:EHWerROz
bulkの使いまわしはコミットログを見たけど理由がよくわからん

先頭にvarを固めているのはhoistingを理解していたからだろう

251デフォルトの名無しさん2015/07/26(日) 20:21:13.01ID:7EBqSyeY
>>249
ん? 帰れ帰れw

252デフォルトの名無しさん2015/07/26(日) 20:22:00.95ID:7EBqSyeY
>>250
> 先頭にvarを固めているのはhoistingを理解していたからだろう

この人は、hoistingを理解できないんだろうねw

253デフォルトの名無しさん2015/07/26(日) 20:26:36.68ID:k1EUM6QH
なんでJQueryの実装をそんなにマンセーしたいのか理解できない。
ライブラリなんて小規模で作るもんだから、読みやすさという基準は自分の主観で決めるもんだし。
後付けの解釈を止めろよ。

254デフォルトの名無しさん2015/07/26(日) 20:59:57.20ID:7EBqSyeY
逆でしょ?
読みやすさという基準は自分の主観で決めるもんなのに
jQueryの実装をそんなに馬鹿にしたいのか理解できない。

255デフォルトの名無しさん2015/07/26(日) 21:26:25.41ID:p/433SX/
>>250
hoistingはコード規約で予防しているという事かな?
それでも、宣言はブロックの先頭と制約するだけで十分な気がする
関数スコープに広げて宣言する理由がわからない

256デフォルトの名無しさん2015/07/26(日) 21:31:57.10ID:p/433SX/
ああ、意味がわかった
関数スコープで使用していた上に、ブロック内でも使用した場合か
それならバグになる可能性あるな

257デフォルトの名無しさん2015/07/29(水) 01:58:34.13ID:CRqVMe5R
やっぱVBの配列(0)で1要素あるってバグの元だろ
引継いだコード前任者が全員間違えたまま使ってて戦慄した

258デフォルトの名無しさん2015/07/29(水) 09:27:40.97ID:7C0TLIvw
まあ、多い分にはいいんじゃないの?
行番号付きだった頃から配列は1要素を予備とすることが多かったからねー。
C とかから入ると気になるだろうけど。
自分も今は気になるけどw

259デフォルトの名無しさん2015/07/30(木) 11:48:36.63ID:kCCSv6BW
DBに予備項目を作って空を保つのならわかるけど
配列の予備って意味若ランナー

260デフォルトの名無しさん2015/07/30(木) 21:27:47.71ID:kTMnRdAz
配列変数を空の状態またはその逆にするのが面倒なので0番目は使わずに取っておく

261デフォルトの名無しさん2015/07/31(金) 16:17:53.20ID:Dkg4afbG
動的配列の扱いが内蔵とVariantに代入する配列(Variant配列ではなく)で挙動が違うから
Variantで統一するとvbsと扱い同じにできて捗る

262デフォルトの名無しさん2015/07/31(金) 21:11:17.11ID:D+nD3a7O
絶望的なプログラマたち

263デフォルトの名無しさん2015/07/31(金) 21:48:20.19ID:17HtGFaS
main(){
int* p=1;
...

264デフォルトの名無しさん2015/08/01(土) 14:23:13.10ID:aojbSuUF
*(int*)0=0;

265デフォルトの名無しさん2015/08/01(土) 14:44:38.33ID:zTfC3ItF
printf("AとBの積は593です");
もうアホかとなんのためのCなんだか

266 ◆QZaw55cn4c 2015/08/01(土) 19:29:40.69ID:KBiDhOrm
593 は素数なんだが‥

267デフォルトの名無しさん2015/08/01(土) 21:31:08.62ID:cZ9y3hcR
そうすっうすね。

268デフォルトの名無しさん2015/08/01(土) 21:39:39.36ID:5DNs6h6K
1*593

269デフォルトの名無しさん2015/08/01(土) 22:19:25.72ID:zTfC3ItF
>>266
掛け算作ってみろって言ったらこれが出てきた

270デフォルトの名無しさん2015/08/02(日) 00:25:01.79ID:2p0cp8/y
>>269
最適化出来てる
100点

271デフォルトの名無しさん2015/08/02(日) 01:45:42.48ID:MF9TQU9s
掛け算作ってみろってのもおかしな物言いだな
そんなコミュ力だからおかしな物が出てくる

272デフォルトの名無しさん2015/08/02(日) 02:10:40.49ID:u7Ju2wRn
>>270
あれだと最適化しないコード作るほうが頭いるだろ
一文字づつあたらしいプロセス作って動かしてくとか?

273デフォルトの名無しさん2015/08/02(日) 07:33:48.36ID:AHQOj1TU
>>269
模範解答じゃん

274デフォルトの名無しさん2015/08/02(日) 17:23:58.64ID:MF9TQU9s
絶望って程でもない

275デフォルトの名無しさん2015/08/02(日) 18:37:05.66ID:sH3CMGQ2
無駄な計算してないとか優秀賞だな

276デフォルトの名無しさん2015/08/31(月) 12:38:09.95ID:B5sJg2ZW
>>12
なんで先頭じゃダメなの?
蟹飯本では当たり前のように先頭でまとめて宣言してるからそれに倣って先頭で宣言してるけど

277デフォルトの名無しさん2015/08/31(月) 13:10:34.00ID:KuTL4jkJ
>>276
変数は使用する直前で初期化して使うべきだから
初期化と宣言が別だと必ず未初期化で使うバグが出る
また関数が長く分岐が多くなると初期化されてるか判断が難しくなる
変数のスコープは小さければ小さいほどいい
関数先頭に宣言するのは昔のC言語の制約だったと記憶してるが今は上記理由からやめるべき

278デフォルトの名無しさん2015/08/31(月) 15:56:13.40ID:UXpAKMEr
>>277
なるほどサンクス

279デフォルトの名無しさん2015/09/01(火) 20:57:53.90ID:D3JacxmQ
>>277
どこの説?

280デフォルトの名無しさん2015/09/12(土) 03:17:33.09ID:k25bT+vJ
for ループから条件でgotoでforの外に飛んで帰ってもこないプログラム

281デフォルトの名無しさん2015/09/12(土) 04:01:54.66ID:XAqQ9sMD
それ普通ですが
breakがまさにそういう動作だし、breakはgotoの一種と言われているわけだが
二重のforを一気に抜けるのにgoto使うとか普通のテクニック
return出来るならそっちのがいいけど

むしろforからgotoで抜けてまたgotoで戻ってくる方が恐ろしいが
そういうサブルーチン的な動作にgoto使われるとかなり鬱陶しいし
それでgotoが禁止されたわけだが

282デフォルトの名無しさん2015/09/12(土) 08:00:00.87ID:TErXHjBS
for使ってるの?甘いね
プロは全部gotoしか使わないよ

283デフォルトの名無しさん2015/09/12(土) 09:09:13.39ID:lTmP7o65
柔軟に環境に合わせられるのがプロ

284デフォルトの名無しさん2015/09/12(土) 09:59:18.43ID:o99yCw3m
真のプロには、製品の方が合わせてくる。

企画原案に意見を求められるし、監修を頼まれる。

285デフォルトの名無しさん2015/09/12(土) 10:01:01.89ID:/tgR015i
>>284
それで真のプロのプログラマだと
どうなるわけ?

286デフォルトの名無しさん2015/09/12(土) 10:11:11.52ID:o99yCw3m
>>285
その問題については既に解いてあるんだが、2chは数式を張り付けられないからなあ。

287デフォルトの名無しさん2015/09/12(土) 10:11:50.87ID:/tgR015i
>>286
つまり解いてないってことかw

288デフォルトの名無しさん2015/09/12(土) 10:56:04.07ID:8SKz5ytR

289デフォルトの名無しさん2015/09/12(土) 11:30:03.64ID:LQnjc3KY
一休「虎が屏風から出てくれば捕まえられるのにな〜ああ〜残念だなあ〜」
将軍「出したよ」
って状況?

290デフォルトの名無しさん2015/09/12(土) 11:38:50.74ID:Xol1TNVu
>>285
達人ともなれば、むしろタンスが小指に恐れをなし、というアレだよ。

291デフォルトの名無しさん2015/09/12(土) 12:07:10.77ID:1pxDFhfx
>>286
zipでくれ

292デフォルトの名無しさん2015/09/12(土) 18:16:31.99ID:8SKz5ytR

293デフォルトの名無しさん2015/09/12(土) 22:51:55.44ID:QkMrh2wn
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

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

フロアすべてに響き渡る ばかでかいくしゃみ 当然手でおさえない
半径10mで耳鳴り、ひどいと頭痛誘発

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

口と鼻から異音
ふんっっ
ふんっーーーーー  
マジでうっとおしい30秒ごと

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

奴の作ったスクリプトとプログラムは使えない
バグりすぎ

294デフォルトの名無しさん2015/09/13(日) 00:10:23.04ID:xBi8Z0XU
ストレス貯まるなそれは

295デフォルトの名無しさん2015/10/16(金) 11:13:43.44ID:MgVZXFFO
結論:そんな奴はいない

296デフォルトの名無しさん2015/10/17(土) 10:29:18.04ID:y7npm2M7
コメントが一切なくて、ものすこく複雑な処理をやっている。

297デフォルトの名無しさん2015/10/18(日) 01:32:01.64ID:dIyeGV/1
ものすごく」の程度は人によるからなあ
複雑そうに見えてイディオム使ってるだけのもあるし
自動生成された物を見て複雑だなあって思ってる場合もあるし

298デフォルトの名無しさん2015/10/18(日) 08:42:48.35ID:hNO3eRm0
他人のコード見てコメント無いだの少ないだの騒ぐ奴
本人はクソポエムみたいなコメント書く上にコメントの整備はしないし何がしたいのやら

299デフォルトの名無しさん2015/10/18(日) 22:58:23.93ID:1iLNdMOK
>>298
お前の環境にはそんな奴しか居ないってだけ。

300デフォルトの名無しさん2015/10/19(月) 03:05:21.12ID:KzhVhXFy
更新履歴すら書くの忘れる
面倒というレベルじゃなく、忘れる

301デフォルトの名無しさん2015/10/19(月) 12:29:11.07ID:rwl2uo8/
ああー俺もコメントポエム書きてえぇーーー
本当はポエマーなんだよな俺
俺だってソースにポエム埋め込みてーんだよ!

302デフォルトの名無しさん2015/10/19(月) 13:51:30.68ID:taFAn/tB
>>300
最近思うが、更新履歴、コメントはいらないと思う。
その代わりバージョン管理だけは、キッチリ機械的にやって欲しい。

更新履歴は忘れる奴が必ずいるから、更新履歴で探すと見つからずにハマる。
コメントもプログラマの現状の理解と感情で書いてあるので、変な先入観で見てしまいハマる時がある。

自分で書いていても、10年位経つと何書いているか解らない。
また、自分の名前が書いてあると、忘れた頃に質問が来る。

更新履歴、コメントは百害あって一利無しだと思う。

303デフォルトの名無しさん2015/10/20(火) 10:03:44.13ID:ty6VD2oQ
>>298
うちにも居るわ、コメント赤ペン先生

304デフォルトの名無しさん2015/10/20(火) 15:31:58.74ID:mXSv7y9K
>>302
コメントの付け方が下手なだけだろ

305デフォルトの名無しさん2015/10/20(火) 21:25:15.03ID:4r71MZXj
/*
此処に入って来たらマジやばい。
誰も周りは助けてくれないし。

あのリーダの下は、本当に最悪。
もう、2度と一緒に仕事をしたく無い。
*/


当時、こんなコメントを読んで大変なやぁ…って思った。

306デフォルトの名無しさん2015/10/21(水) 01:07:37.37ID:sxvP468z
/*
そのリーダーなわけだが。 ↑そりゃないだろー
引継ぎも満足にできねーで去りやがって
自身の無能を知ってゆっくり野垂れ死んでね
*/
みたいなしょーもない愚痴コメントって実際少ないよね

307デフォルトの名無しさん2015/10/21(水) 01:09:50.98ID:VfFXTbSK
だってそんなコメント無駄だし、むしろコメントの質を下げる要因にしかならないじゃん

308デフォルトの名無しさん2015/10/21(水) 10:26:45.72ID:ayvh7TPn
こういうコードが入る時点で、
コードレビューも行われていないような
ところだろうなってわかるねw

309デフォルトの名無しさん2015/10/21(水) 10:33:35.51ID:t8SS3rgX
コードレビューに夢見過ぎ…

310デフォルトの名無しさん2015/10/21(水) 12:47:50.82ID:ayvh7TPn
夢じゃなくて品質を上げるのは
コードレビューしかないよ。

人によって生産性が100倍違うのも当たり前なのは
コードが違うからなんだし。

311デフォルトの名無しさん2015/10/21(水) 13:05:30.14ID:t8SS3rgX
コードレビューで品質が上がる…
ますます、夢見る夢子ちゃん確定の発言だな…

312デフォルトの名無しさん2015/10/21(水) 13:08:00.35ID:FpYnt2Cv
質を上げるんじゃない
質の低いコードの混入を防ぐんだ

313デフォルトの名無しさん2015/10/21(水) 13:20:09.67ID:t8SS3rgX
質の低いコード混入するのは室の低いマしか雇えないブラックだからだよ…

314デフォルトの名無しさん2015/10/21(水) 13:21:26.33ID:ayvh7TPn
>>311
否定するなら理由を言えよw
何も言えないから説得力0なんだぞ

315デフォルトの名無しさん2015/10/21(水) 13:22:22.09ID:ayvh7TPn
>>313
> 質の低いコード混入するのは室の低いマしか雇えないブラックだからだよ…

じゃあどうするかって話。

コードレビューしかないね。

316デフォルトの名無しさん2015/10/21(水) 13:24:43.24ID:ayvh7TPn
コードレビューするのはどの業界でも当たり前の話なんだけどね。
新聞社でも新人が書いた記事をそのまま出すわけ無い。

317デフォルトの名無しさん2015/10/21(水) 13:36:50.19ID:t8SS3rgX
いや、そんなに必死になって連投して否定しなきゃならないようなことじゃないから…
コードレビューは、より良いコードを生み出す為でなく、室の悪いマのリカバリをする
だけだって、言ってるだけだよ…

318デフォルトの名無しさん2015/10/21(水) 14:11:29.69ID:ayvh7TPn
質が悪いのを直せば、質が良くなるのは当たり前ですね。

あんたコードレビューして、あんたが直してるの?
質の悪いプログラマは成長しないの?

319デフォルトの名無しさん2015/10/21(水) 14:23:16.59ID:t8SS3rgX
だ・か・ら、質が良くなるんじゃなく、悪い質じゃなくなる=極普通、になるだけだよ…
未成熟なマなら成長したりするかもしれないけど、まあ、質の悪いマは多分成長
できなかったから、質の悪いマになったんであって、それが成長するというのは
見通し的に暗いと思うよ…

320デフォルトの名無しさん2015/10/21(水) 14:31:53.30ID:ayvh7TPn
えとなぁ、どんな優れた奴でも普通の時代がなかったわけじゃないんだよ。
駄目なやつがいきなり優秀になるわけないんだよ。
極普通になって、それから成長すれば良くなるだろ。

321デフォルトの名無しさん2015/10/21(水) 14:32:32.69ID:ayvh7TPn
だいたいな、悪いやつがなんでずっと悪いかって言うと、
それが悪いってわかってないからなんだよ。
それを教えるのもコードレビューなわけで。

322デフォルトの名無しさん2015/10/21(水) 15:01:27.32ID:t8SS3rgX
すまんな、あんた俺と違って幸せな環境にいるみたいだから、どこまで行っても平行線だわ…

323デフォルトの名無しさん2015/10/21(水) 15:36:18.25ID:FAEyKeYo
相手が単に嫌いとか理解できないってコードへの無意味な批判が無くなれば、コードレビューもありだとは思うんだけどな。

俺はテストパターン増やしたくないから、ダメなら途中でreturn false
最後まで到達出来ればreturn trueする関数書くけど、
returnは必ず一つ、って人となかなか言い合いになる。

324デフォルトの名無しさん2015/10/21(水) 16:58:05.40ID:FpYnt2Cv
>>323
MISRAで決まってるから仕方あるまい。
俺はその辺resultにNG入れておいて
resultがOKじゃなかったら残りの処理はスルーして最後にreturnで返すようにしてる。
業界によって作法が違うからいろいろあるよな。

325デフォルトの名無しさん2015/10/21(水) 18:10:39.28ID:ayvh7TPn
>>322
コードレビューしないのが幸せってなんだそりゃw
お前の所はブラックなんだろうな。

326デフォルトの名無しさん2015/10/21(水) 20:13:39.10ID:djlLkbUb
>>323
途中returnだからってパターン減るわけないだろ

327デフォルトの名無しさん2015/10/21(水) 20:17:59.29ID:OBk5CbCK
教えて解るのなら誰も苦労していない。
解る人も少数ながら、もちろんいるが。

328デフォルトの名無しさん2015/10/21(水) 20:54:58.96ID:ayvh7TPn
>>326
早期returnっていうのは、パターンを減らすのが
目的じゃなくて可読性を上げるのが目的。
可読性っていうのは人間にとっての読みやすさだから。

人間が読まないコードであるなら別にどんな書き方でもいいが、
そうじゃないだろう?

329デフォルトの名無しさん2015/10/21(水) 21:16:36.85ID:djlLkbUb
そうじゃないだろう?って俺に言われてもw

330デフォルトの名無しさん2015/10/21(水) 22:38:13.09ID:/T8JjMZv
>>328
確かに可読性は人間にとっての読みやすさだけど、
理由じゃなくてただ単語の意味を説明してるだけなのが笑える

331デフォルトの名無しさん2015/10/21(水) 23:31:28.17ID:FpYnt2Cv
returnが増えるほど可読性は下がる、という文化もある

332デフォルトの名無しさん2015/10/22(木) 00:05:08.39ID:85+TyuI7
可読性というか、一見上から下に素直に流れる関数のように見えて実は
文の最後にちょろっとreturnがあるのを見落とす、なんてのはあるね。

333デフォルトの名無しさん2015/10/22(木) 00:12:05.24ID:T+i/NslY
ねーよw

334デフォルトの名無しさん2015/10/22(木) 00:17:58.38ID:85+TyuI7
いや、俺はあるw

335デフォルトの名無しさん2015/10/22(木) 00:36:51.97ID:T+i/NslY
その理屈だと、そのreturnと同じ位置にi++とかあった場合、
それを見落とすんだろうなw

336デフォルトの名無しさん2015/10/22(木) 07:19:28.30ID:cVNIxwjP
>>326
減らないけど、記載するマトリックスは減るんだよ。
通るifとかswitchを列挙して、真の場合偽の場合を分けないといかんから、
頭でフラグ持ったとしても、通過する限り「処理なし」と書く必要がある。
処理なしと書く限り、処理なしのエビデンス取らなきゃならん。
それが嫌なら、通過もしないようネストを深くしなきゃならん。

>>328
可読性ももちろん上がるな。対応する括弧を追う必要も無いし。

337デフォルトの名無しさん2015/10/22(木) 07:45:32.98ID:ItL1bO9f
俺はすぐにreturnしちゃうけど、可読性は上がるよね
I/Fの仕様が変わった場合、戻り値の変更漏れとかたまにあるけど

338デフォルトの名無しさん2015/10/22(木) 07:58:12.26ID:85+TyuI7
>>336

if (...) {
}
// 関数の終わり

だと管理しなきゃならなくて if (...) return; だと書かなくていいの?妙な規則だね。
ひとごとながら、if (...) return 関数(); とか大丈夫なのかと思ってしまった。

339デフォルトの名無しさん2015/10/22(木) 08:03:40.68ID:+hTJzDQ0
MISRA準拠のときに困るからreturnは複数書かないな

340デフォルトの名無しさん2015/10/22(木) 08:41:43.01ID:RDDiuVvk
(関数){
hage
}

(関数)
{
hage
}
だとどっちがいいの?

341デフォルトの名無しさん2015/10/22(木) 08:50:50.09ID:4CKbsFsK
コーディングルールにある通りでいい
なければ多数派に合わせるようにコーディングルールを決めてしまえばいい

342デフォルトの名無しさん2015/10/22(木) 09:17:53.18ID:maFj6EVC
>>338
一つならどちらでも書く必要があるよ。

条件1と条件2と条件3がある場合、
if 条件1
 処理1
else
 不処理フラグ
endif
if !不処理フラグ、条件2
 処理2
else
  不処理フラグ
endif
if !不処理フラグ、条件3
 処理3
endif
なら管理必要。

if 条件1
 処理1
 if 条件2
  処理2
  if 条件3
   処理3
  endif
 endif
endif
は、パターンは減るけど可読性悪すぎ。

343デフォルトの名無しさん2015/10/22(木) 09:49:22.97ID:HZFkMara
>>325
コードレビューしないことじゃなく、コードレビューして
「成長可能かもしれない奴が周りにいる」という
環境が幸せなんだよ…

344デフォルトの名無しさん2015/10/22(木) 09:59:20.88ID:T+i/NslY
>>342
それ(後半のコード)を早期returnパターンにすると更にわかりやすくなる。

if ! 条件1
 return
endif

処理1
if ! 条件2
 return
endif

処理2
if ! 条件3
 return
endif

処理3

言語によっては、更に短くすることができる。わかりやすさがぜんぜん違うね。

unless 条件1 then return
処理1
unless 条件2 then return
処理2
unless 条件3 then return
処理3

345デフォルトの名無しさん2015/10/22(木) 15:28:35.78ID:UfhH3fQc
>>344
そうそう。だから割と俺は早期リターンでネスト深めずに処理出来るものはしたいんだよね。

346デフォルトの名無しさん2015/10/22(木) 22:05:36.79ID:85+TyuI7
>>342
等価なのは後者なんだからやっぱりテストパターンは関係ないでしょ。
あとマトリクスと言ってるけど、もしかして前者の形で書いた場合は処理1を通過せずに
処理2を実行するケースも考慮しないとならないとか?

ツール使わずに手作業でC1カバレッジ管理しなきゃならないプロジェクトなんて
やったことないからよくわからないけど、大変だねw

347デフォルトの名無しさん2015/10/22(木) 23:53:09.22ID:+hTJzDQ0
>>344
こっちの方が絶望的なコードに見える

348デフォルトの名無しさん2015/10/23(金) 00:40:43.08ID:zprVcqwH
>>347
お前の目が腐ってるのでは?

349デフォルトの名無しさん2015/10/23(金) 00:41:38.26ID:zprVcqwH
基本的に腐ってる人っていうのは
ルールで決まってるから、そうなんだ。みたいに
ルールのためのルールを愛する。
自分で考える脳を持たない。

350デフォルトの名無しさん2015/10/23(金) 01:25:49.95ID:m57abRZG
>>346
だから後者はネスト深くて嫌いなの。
当たり前だろ。
通る限り、例え結果がわかりきってようがその分のパターンも書かなきゃならんし、
スタック壊れた時のことも考えにゃならん。

ツールがどうのとかMISRAがどうのいってるお偉方には意味ないの。
机の上で紙でデバッグできなければ意味がない、検算は手計算、の人らだよ。

351デフォルトの名無しさん2015/10/23(金) 02:16:55.96ID:/EixmTmg
こういう派閥争いの結果、複数の形式が混ざった糞コードが生まれるのであった

352デフォルトの名無しさん2015/10/23(金) 06:14:19.52ID:7M5zkgCU
モーゼ<俺は中道を行くぞー!バリバリ ヤメテ!>

353デフォルトの名無しさん2015/10/23(金) 07:59:46.43ID:80H6ZXcx
>>350
じゃあまとめると、>>323で途中returnを使わないとテストパターンが増えるかのように書いて
いたのは、おまえが深いネストが嫌い+おまえのところの妙な管理 の合わせ技ってことね。

354デフォルトの名無しさん2015/10/23(金) 08:50:27.33ID:37mdpbh4
#define HOGE 128

355デフォルトの名無しさん2015/10/23(金) 09:44:51.05ID:CBW+Dc/b
>>353
何に噛み付いてるかわからんけど、増えるよ。

356デフォルトの名無しさん2015/10/23(金) 10:06:04.43ID:zprVcqwH
>>351
この問題に関して言えば、どっちがいいかは
ツールで計測可能なので、それ持ち出せば一発だよw

357デフォルトの名無しさん2015/10/23(金) 12:07:57.91ID:CBW+Dc/b
>>356
必要、だから、文書化されてたらノーカンだよ。そういう意味では本来。

358デフォルトの名無しさん2015/10/24(土) 01:19:57.16ID:geIuzf9u
>>344
だせーから1行でretunrnできねーならガード使うな

359デフォルトの名無しさん2015/10/24(土) 02:07:32.78ID:WDIk1BPV
意外と盛り上がってて吹いた

if文のネストを減らすためにマトリクスで何がくるか特定して分岐させる

switch(state){

360デフォルトの名無しさん2015/10/24(土) 02:11:21.79ID:WDIk1BPV
書き損じた
a => 1 または 0
b => 2 または 0
c => 4 または 0
d => 8 または 0
として
state = a | b | c ・・・;
switch(state){

}
ってやつね
これでif文が綺麗に消えてくれる(ことが多い)

361デフォルトの名無しさん2015/10/24(土) 02:15:24.10ID:WDIk1BPV
んでここがちょっと言いたかったことだけど
このstate switchは当然状態の数だけ関数も長くなるんだが
この場合いくら長くなっても可読性は全く落ちないという特性がある
みんなで使って幸せになろう

362デフォルトの名無しさん2015/10/24(土) 02:18:17.66ID:WDIk1BPV
この場合エラー処理もえらい単純化できる
つまりdefault:に来たもの=エラーということ
最初に状態設計をきっちり行えばこの方法が今のところ最も効率が良いと
言ってしまおうかな

363デフォルトの名無しさん2015/10/24(土) 02:24:39.55ID:ymg0YeVe
>>361
ifの代わりにswtchになってるだけじゃねーか。

こういうのは関数テーブル使えばいいんだよ。

364デフォルトの名無しさん2015/10/24(土) 02:59:11.22ID:WDIk1BPV
そいうことを言いたいわけじゃないんだがなあ
上でエビデンスの話が出たが
まさにswitch内で定義した状態の数だけパターンを取ればいいって単純化の話なんだよ
たとえばifで
if(a) x
if(b) y
と書くと2^2の4パターンだけど
この調子で増やしていくとどんな状態があるのか目視では見落としやすい

state swichなら以下の通りテストパターンと完全に一致する
state = a | b;
swich(state)
case a0b0: break;
case a0b1: break;
case a1b0: break;
case a1b1: break;
default: /*error*/ break;
}
つーかテストパターンを同時にを書いていく前提なら上で挙がってたコードは全部論外だろう

365デフォルトの名無しさん2015/10/24(土) 03:08:51.12ID:ymg0YeVe
そして関数テーブルにすると

1テストパターン = 1関数になるので
もっと単純化できるという話。

366デフォルトの名無しさん2015/10/24(土) 03:14:15.86ID:WDIk1BPV
関数テーブル覚えたての人なのかなあ
そういう言語機能寄りの話は今してないの判んないかな

367デフォルトの名無しさん2015/10/24(土) 03:29:27.06ID:WDIk1BPV
この方法は見ての通りコードレビューも短期間で終わるのが判ってもらえると思う
状態が一箇所にまとまってる
状態によって必要になる処理が一箇所にまとまってる
どういう条件でエラーになるか簡単に調べられる

設計書やテストパターンとも一致させやすい
全て一箇所にまとまってるのがポイント
結局これ以上の物はできないんじゃないかな

368デフォルトの名無しさん2015/10/24(土) 08:06:55.53ID:0ZjLfKs0
テストケース数に合わせる為にロジックを分かりにくく記述する本末転倒手法

369デフォルトの名無しさん2015/10/24(土) 09:12:17.67ID:TC4yVlx1
手段と目的をはき違える典型

370デフォルトの名無しさん2015/10/24(土) 09:20:03.81ID:VUwmRE0S
>>354
良く見るな。
括弧を章する俺かっけーってな奴。

371デフォルトの名無しさん2015/10/24(土) 09:22:43.39ID:t+kkgTrx
テストファーストならそれもありだろ。ブラックボックスでいいんだから。

372デフォルトの名無しさん2015/10/24(土) 10:30:44.28ID:ZlXT9FOV
ネストが増えるのは問題だけど
returnパスが増えるのは問題じゃないのかな

373デフォルトの名無しさん2015/10/24(土) 11:49:30.75ID:obIKqu8m
returnパスが増えるのが問題だと思うのなら
returnの代わりに関数の最後にgotoしていると考えればいい。

if (...) return
hoge
hoge
return



if (...) goto last
hoge
hoge
last:
return

goto使うのが駄目ならbreakにすればいい。

do {
 if (...) break
 hoge
 hoge
} while(0)
return

見ての通りreturnは一つである。
これで解決する程度のことを問題視することに何の意味があるのか?

374デフォルトの名無しさん2015/10/24(土) 11:55:22.07ID:geIuzf9u
>>364
なんで意味ないことするの?
同じもんを外に抜き出してるだけじゃん。

そもそも入出力のパターンはテストで確認すりゃいいんだから、コードをパターンと一致させるのは無駄としか言いようがない

375デフォルトの名無しさん2015/10/24(土) 20:55:59.55ID:Kwmejtcx
>>373
それで解決するなら最初からそう書いてればいいんじゃないの

376デフォルトの名無しさん2015/10/24(土) 21:00:18.64ID:ab4ZAHgL
>>375
いや、解らない?

returnを一つにするというのはこれらと同じように、
無意味なことだって言ってるんだよ。

377デフォルトの名無しさん2015/10/25(日) 07:35:45.91ID:Ypes6KAb
return複数あったらレビュー通らないじゃん

378デフォルトの名無しさん2015/10/25(日) 07:48:44.18ID:5rFsh/xs
コーディング規約って、一種類しか無いとでも?

ゆとりって面倒臭いな。

379デフォルトの名無しさん2015/10/25(日) 10:47:02.39ID:ffqR9+22
コーディング規約の為のコードじゃなくて、なんのためのコーディング規約かを考えろよ
そんなだからクソコード量産するんだよ

380デフォルトの名無しさん2015/10/25(日) 11:28:29.91ID:4coy8BX6
性能が必要ないカテゴリでは性能を低下させるコードでも許容されるだけ
性能が必要なカテゴリではレビューでもreturnパスどうのより、そのコードが
速いかどうかだけが吟味される。

381デフォルトの名無しさん2015/10/25(日) 11:55:36.82ID:ZLo4bLRN
基本は可読性高いコードが評価高い
それでパフォーマンス悪くてもボトルネック部分の速度を改善すればいい
しかし速度重視の難解コードはクソソースと呼ばれ後ろ指さされる
速度はアーキテクチャで解決していくのがベストだわな

382デフォルトの名無しさん2015/10/25(日) 12:38:39.93ID:4coy8BX6
だから、それを待てるカテゴリは、元々性能が問題になるようなカテゴリじゃ
なかったというだけ、「次がある(キリッ」「後がある(キリッ」なんて言ってられる
生温いとこじゃないものも沢山ある。

383デフォルトの名無しさん2015/10/25(日) 12:56:40.32ID:cc/DQ18H
>>377
こっちには、return複数あったらだめなんて言う
意味のないレビューをする人はいないんでねw

384デフォルトの名無しさん2015/10/25(日) 12:59:23.67ID:cc/DQ18H
>>381
> しかし速度重視の難解コードはクソソースと呼ばれ後ろ指さされる

いつも思うんだが、速度重視したらなんで難解なコードになるのかわからん。

速度が速いコードっていうのは無駄がないコードなわけで、
普通は可読性が高いんだよ。


速度を速くするアルゴリズムがある場合で、そのアルゴリズムが
複雑な場合に限って、速度を重視したら難解になるんだが。

385デフォルトの名無しさん2015/10/25(日) 13:27:45.84ID:OGZ3vopz
> しかし速度重視の難解コードはクソソースと呼ばれ後ろ指さされる

非プログラマか初心者が抱きがちな想像やな

>>384
それな

386デフォルトの名無しさん2015/10/25(日) 13:36:24.73ID:dX8FdDRX
速度自体が無駄w
なんで初心者って無駄に速度にこだわるのw

387デフォルトの名無しさん2015/10/25(日) 13:58:48.56ID:EgatYw+c
皆、自分の意見こそが正しく正義であると信じ、
他者を必要以上に攻撃する傾向がみられる
なるほどこれが宗教ってやつか
世界から戦争が無くならない訳だ

388デフォルトの名無しさん2015/10/25(日) 14:06:03.46ID:ZLo4bLRN
>>384
例えば時間のかかるデータ取得が100個あるとする
速度重視の場合早い時点でスレッド作って先行処理しておく
実際値使う箇所では中でスレッド待ちしていてなんでわけわからないことやってるんだと言われる
データなんてGet回すだけだろと

アルゴリズム難解といえば自前のHashMapは最初わからんかった
文字列足しこんでへんなビット演算やって
コメントもなかったからあれはなかなか理解されない

389デフォルトの名無しさん2015/10/25(日) 14:19:23.12ID:Ypes6KAb
>>388
スレッド使えるなんて羨ましい
こっちは標準Cライブラリどころかcrtすら使わせて貰えないから
RAMをクリアしてmain関数を自分で起こすところから書かなきゃいけない絶望的な状況

390デフォルトの名無しさん2015/10/25(日) 14:28:46.60ID:ZLo4bLRN
>>389
組み込み系?
クラスも使えずレジスタがどうだとかリソース最小限に留めるとか無理だわ
基本は作りやすさ重視で必要に応じてチューニングが1番仕事しやすい

391デフォルトの名無しさん2015/10/25(日) 14:44:38.49ID:cc/DQ18H
>>388
だからそれ、アルゴリズム変わってるじゃん。
馬鹿なの?

392デフォルトの名無しさん2015/10/25(日) 14:46:27.63ID:GUBs2NMK
クソソース書いといてその言い訳に速度重視とかザコ過ぎない?
お前が速度なんて語るの百年早いのはそのクソソースに丸出しなわけで
よくあんなクソソース書いててそんな態度取れるなっていう不思議な子知ってる

393デフォルトの名無しさん2015/10/25(日) 14:50:33.48ID:ffqR9+22
>>386
おまえは一生ソートに可読性の高いバブルソートでも使ってろよ

394デフォルトの名無しさん2015/10/25(日) 14:51:52.18ID:ZLo4bLRN
>>391
アルゴリズム同一でと言った覚えないんだが?
むしろアルゴリズム同一で速度が飛躍的に上げれるならマジで教えて欲しいが

395デフォルトの名無しさん2015/10/25(日) 14:52:32.88ID:Kc4QEJg+
16進数やビット演算とか使ってるコードは見にくいからクソソースでいいですか?

396デフォルトの名無しさん2015/10/25(日) 14:57:39.09ID:k5OqwX9E
>>395
マクロ被せれば見やすくなる

397デフォルトの名無しさん2015/10/25(日) 16:48:51.96ID:h5QU0gDZ
マスクをtypedefしとけば良いんじゃないの。

398デフォルトの名無しさん2015/10/25(日) 17:17:54.69ID:Ypes6KAb
>>395
何進数だろうが関数内にマジックナンバーは入れちゃダメだろうね
定数かマクロにして実行部とは分けて宣言・定義するようにしてるよ

399デフォルトの名無しさん2015/10/25(日) 21:29:44.35ID:dX8FdDRX
じゃあ何進数だったらマジックナンバー使っていいんだよ!

400デフォルトの名無しさん2015/10/26(月) 14:29:54.04ID:o+3h9F6B
「定数は定義して使え」に対して

#define value_1 (1)
#define value_2 (2)

とかいう馬鹿もいるんだよな

401デフォルトの名無しさん2015/10/26(月) 14:33:27.86ID:otoyrobt
#define value_one (1)
#define value_two (2)

これなら大丈夫(キリッ

402デフォルトの名無しさん2015/10/26(月) 17:54:07.18ID:2NCHgOBb
#define ZERO 1
はGNUで見たことある。

403デフォルトの名無しさん2015/10/26(月) 18:15:12.01ID:oKHb2SJo
マジックナンバーは基本だが定数を使った判定をあちこちに書かないことも重要
例えばファイルの存在チェックでファイルのビットフラグ立ってないことで判定
しかしフォルダも除外したい等仕様変更が予想される
その度多数の修正を入れるのは危険
isExist()などでラップして判定処理は1箇所にすると変更に強くテストも楽

404デフォルトの名無しさん2015/10/26(月) 23:04:21.65ID:nye5D6dJ
マジックナンバーは必要悪でしょ。
周知されてて、全体で統一されてたら何も文句無いけどな。
日時未定を29991231で持ってるシステムに関わってたけど。

特定のビットが立ってないことと、ファイルの有無と、ディレクトリであるか否かはまた別問題ではないのだろうか。
isExistなのに、ディレクトリ除外しちゃうの?ライブラリなのに外から見た挙動変えちゃうの?って不安のほうが大きい。
そんなもんで判定せずに、判定箇所で切り分けるか、旧関数自体をassertで殺す方がマシ。
その度に多数の修正は躊躇なく入れるべき。

挙動を変えるのに、変えた意識が無い方が、
あり得ないくらい誰も原因に気づかない、どハマりする障害を起こす元。

405デフォルトの名無しさん2015/10/27(火) 01:11:27.89ID:Ay4zuTZ6
>>404
例が悪かったからマイナンバー導入を例にする
従来は同一判定をequal()で中身は住所と指名で判定してたとしよう
この場合マイナンバー対応は中身をID比較にすればそれだけで対応完了
これが比較箇所に直接住所と氏名の比較を行っていた場合修正は時間がかかる
修正ソース毎にドキュメント書かないといけないプロジェクトでは発狂もの
言いたいのはやりたいことを外に出して実現手段は中に閉じ込めろってこと
要はカプセル化だが簡単なものだと忘れられることがよくある

406デフォルトの名無しさん2015/10/27(火) 07:32:20.87ID:z76BTGB+
>>405
ダメ。
名前と住所で比較するロジックと、
マイナンバーで比較するロジックは別物。
それだけで対応完了にならないよ。
それでは、既存の比較するロジック全部洗って、それ呼んでる所を全部テストせなならん。
普通は、呼び出し側ソース修正と同じかそれ以上になるんだよ、ライブラリの挙動変更に対するドキュメントとテストって。
やりたい事をカプセル化するライブラリの、内部挙動が変わったらそれは最早カプセル化されてないとしか言いようが無い。

名前と住所ってのは、ユニークになるとは限らない情報だし、逆に歴なんか持ってたら2つ以上のレコードが一つを指すかもしれないレコードになるでしょ。
今まで同じだったけど今回からは違う人(田中一郎さんが昔住んでて、引っ越した後、今は別の田中一郎さんが住んでる)、や
今まで違う人だったけど、今回からは同じ人(同じ住所だけど、結婚して姓が変わってる)が出る改修はカプセル化失敗としか言えない。

まさにそういうシステム作ってたけど、「同一人物っぽい人」としか言えないから、警告しか出してない。

内部発番のシリアルのIDを比較していた所を、マイナンバーでひっかけるようにする、位の変更くらいじゃないの?その変更が通用するのは。
それでもパターンテストは必要。
呼び出し側を修正して、きちんと新しい関数が呼ばれている所からがテストのスタート地点。

修正ソース毎にドキュメントなんか普通作るよね。
波及コードだけどローレベルで担保されてるから大丈夫。は通用しない。

現実手段を閉じ込めるのは、同じ動きをする事が大前提。

407デフォルトの名無しさん2015/10/27(火) 07:44:38.08ID:ecThD4uO
>>406
理想はそうだけど現実解じゃないよそれ。

408デフォルトの名無しさん2015/10/27(火) 07:55:35.31ID:GLkDzmBJ
いつのまに絶望的なコーディング論を紹介するスレになったのか

409デフォルトの名無しさん2015/10/27(火) 08:09:05.01ID:HvIk3KYT
>>404
#define DATE_UNDEFINED 29991231
みたいな感じにマクロ化してあればいいだけじゃん?
マジックナンバーで許されるのは0と1くらいだと思う

410デフォルトの名無しさん2015/10/27(火) 08:17:38.90ID:ExQg5u4l
括弧位つけろ

411デフォルトの名無しさん2015/10/27(火) 08:41:24.34ID:z76BTGB+
>>407
実際にこのルールでやってるよ。

412デフォルトの名無しさん2015/10/27(火) 08:55:24.16ID:xbbraB1s
UNREFFERENCE_PARAM(hCurInst)とかいう無意味マクロまーじ

413デフォルトの名無しさん2015/10/27(火) 09:39:20.90ID:Ay4zuTZ6
>>406
また言葉足らずだったが話の前提として住所と氏名でユニークキーになる場合の話
勿論結果が修正前と異なるようなら別のメソッドにしたり置き換えたりが必要
あとソース修正毎にドキュメント作るのは金融くらいしか聞かない
テスト自動化してればシナリオ流して終わり
必要以上に金かけるよりほぼ間違いないでコスト削減が今の主流だと思う
スマホゲームでメンテ後に即メンテとかよくあるだろw

414デフォルトの名無しさん2015/10/27(火) 10:38:11.22ID:z76BTGB+
>>413
医療だけど、特殊例だったのか。
だとすると、医療でそういう運用してても出る障害考えたら、世の中のプログラマは一体どんな気持ちでプログラムしてるかわからんな。
必要以上に金かけずにコスト削減して、障害出したら、それは必要な金だったんじゃねーかなぁ。

415デフォルトの名無しさん2015/10/27(火) 11:41:33.67ID:Ay4zuTZ6
>>414
なるほど医療か
医療は周りにいなかったからわからなかった
医療だと慎重にならざるを得ないがバグ出ても修正すれば問題ない分野はそんなにテストに時間をかけない
毎回手動テストしてリリースするより自動テストでバグ出たら修正のほうがトータルコストはかからない
リリース優先か品質優先かは分野で全く異なる
ゲームで慎重なテストで時間使ってたら首飛ぶし逆もまた然り

416デフォルトの名無しさん2015/10/27(火) 11:52:03.16ID:Ay4zuTZ6
あと金の話だけどリリース時期は作る前から決まってる
そこがずらせないとなればバグのリスクとってもリリースを優先しないといけない
もしくは機能のそぎ落とし
3末リリースが遅れると決算への影響が大きいとかいろいろ事情がある
バグは出るものだからリリース後に改修すればいい
なかなか思ったとおりに仕事できないのは世の中の常w

417デフォルトの名無しさん2015/10/27(火) 13:00:39.45ID:HvIk3KYT
自動車とか産業機械とか医療は厳しいよね。
バグ流出したら普通に人が死ぬからなあ。

418デフォルトの名無しさん2015/10/27(火) 20:49:01.37ID:5DDR/Lis
工作機械の制御も簡単に死人出るからなぁ…。

419デフォルトの名無しさん2015/10/27(火) 20:58:17.64ID:ohI0PO9P
絶望的なソースコードか〜
俺のソースコードは、いつでもスパゲッティになってるな〜

420デフォルトの名無しさん2015/10/27(火) 20:58:59.55ID:LyVSHq6d
FXのツールとかで時限で誤動作爆発させたら大量に電車に飛び込みそう

421デフォルトの名無しさん2015/10/28(水) 00:18:14.32ID:v41KDir5
糞みたいなコードにはもれなく言い訳がついて来る
もし本気を出せば綺麗なコードが書けるかのような

422デフォルトの名無しさん2015/10/28(水) 07:34:37.69ID:dd+rVZmo
つまり全てのコードにはもれなく言い訳がついて来る

423デフォルトの名無しさん2015/10/29(木) 12:41:13.98ID:jYkr1Igb
最近JavaScriptのswitch(true)イディオムを知ったが
do { ... } while(false)と同じような邪悪さを感じた

424デフォルトの名無しさん2015/10/29(木) 12:56:10.88ID:ywbX+Z6L
でもどこが邪悪なのか言えない?

425デフォルトの名無しさん2015/10/29(木) 13:15:18.74ID:l+jiBzQW
>>423
>do { ... } while(false)

これ最適化でdoの中に入ってこないイカしたコンパイラに昔遭遇して
発狂したことがある

426デフォルトの名無しさん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すら定数定義させられた事があったわー

431デフォルトの名無しさん2015/10/30(金) 20:53:45.70ID:gPbmFrsE
#define NULL 0

432デフォルトの名無しさん2015/10/30(金) 21:45:25.79ID:eJ2e2Hn1
>>431
これは正しいんだよなw

マジックナンバーはだめ
じゃあ数字に対して全部defineすればいいってわけじゃない。
何が数値そのまま書いて良くて、何がダメなのかもう少し良い説明ない?

433デフォルトの名無しさん2015/10/30(金) 22:31:55.26ID:gPbmFrsE
たとえばVBAの話になるが、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を使うのがいい

436デフォルトの名無しさん2015/10/30(金) 22:47:48.69ID:gPbmFrsE
上のRangeの場合は"カラム行"だけどまあどうでもいいわな
さて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:b0I3If93
>>432
function pi() の中で3.14。
function month() の中で12。
function hour() の中で24。
こんなん、常数にする?俺はしない。

446デフォルトの名無しさん2015/11/12(木) 10:32:56.67ID:iZs6jymX
>>445
お前誰だよw お前ごときがしないからってどうでもいいわ。

一般的にそれらは定数に良くなっている。

447デフォルトの名無しさん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 マクロのない言語は哀れだね

451デフォルトの名無しさん2015/11/14(土) 14:34:31.48ID:bF3EVbPf
いや、マクロが欲しければm4みたいな汎用のマクロプロセッサを使えばいいし、
単なる文字列置換であるマクロは、コードの静的解析能力を下げ
(例えばプリプロセッサを通さないと構文エラーかどうかわからない)
エラー時の情報をわかりにくくしたり、分かりにくいバグの元になったりするので
排除する方向にあるんだけど。

C言語でもdefineよりもconstやinlineを使うのが常識だしさ。

452デフォルトの名無しさん2015/11/14(土) 14:36:18.15ID:bF3EVbPf
おっと、軽く探したら#defineはダメだっていういい記事見つかったので紹介

http://d.hatena.ne.jp/takehikom/20140807/1407420548

453デフォルトの名無しさん2015/11/14(土) 16:30:08.93ID:EuJ2f84U
#define ABC 5 + 10

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

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フォーマットのファイル作ってから後で値を書き換えたりする

458デフォルトの名無しさん2015/11/15(日) 10:36:26.12ID:Xo3Zb28z
>>451
いいこと言うね
使う側からは便利に使える反面複雑な使い方してると解析不可
defineはundefで消せるからコンパイル順通りに解析していかないとそのdefineは別の定義かもしれない

459デフォルトの名無しさん2015/11/16(月) 21:09:30.08ID:nSSKBNI/
>>458
プリプロセッサだけ通せばいいだけだろ
解析不可とかアホか

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と相性がわるいからね

464デフォルトの名無しさん2015/11/17(火) 20:09:29.80ID:/RqDC1dK
>>463
IDEはまだましよ。
そういう変則的なものであっても頑張って対応してるから。

問題はテキストエディタを使ってる場合。
そういう細かいところの対応までできてないからなぁ。

465デフォルトの名無しさん2015/11/21(土) 13:08:19.06ID:kjUNvnu/
C ( or C++ ) のソースで

#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+yWL2h
>>465
理由を述べよ。
単に嫌うのは、食わず嫌いと一緒。

469デフォルトの名無しさん2015/11/22(日) 00:20:00.47ID:QRD2Q6hy
>>468
自分で考えろ。
考える前に聞くのはバカ。

470デフォルトの名無しさん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の方はズレの発生もないメリットもある
俺はそのコードを検証等で使用する可能性があるかどうかで使い分けてる

474デフォルトの名無しさん2015/11/22(日) 20:44:55.89ID:eRa8fYqU
デメリットもブロックコメントと同等かそれ以下だと思うがな。
まぁ、ネストが重なるとわかりにくくなるから1レベルに限定されたコメントの方が
いいという意見もあるだろうけど。

475デフォルトの名無しさん2015/11/23(月) 11:31:07.22ID:UYP2wI74
うちは//も複数行にわたるブロックコメントも禁止だし
コードのコメントアウトは#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

480デフォルトの名無しさん2015/11/24(火) 01:12:38.90ID:7a+QKmK9
NOUSEってなんや?ってなるから意味ない。

481デフォルトの名無しさん2015/11/24(火) 01:16:48.61ID:XArPpnwT
#if 1 // どっちにしようかな
//速いけど詠み難いコード
#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年後に見れるか疑わしい
国際標準でなければ廃れると見たほうがいい
やっておいて損はない

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:veIBFmvN
>>484
CVSは25歳
SVNは15歳
Gitは10歳

バージョン管理ツールでやればいいな

491デフォルトの名無しさん2015/11/26(木) 07:12:00.03ID:8nlnWQy6
>>482
バージョン管理システムは手段であって、
本来はその改修モジュールの対応前、対応後のソース一式がまとまってれば文句はないんだよ。
対応後の一式があれば、それは次の対応前の一式だし。
そこをサボって1つのファイルに前後を入れるから意味がわからなくなる。

492デフォルトの名無しさん2015/11/26(木) 10:10:24.97ID:oAsmLq1R
>>491
小さいアプリならそれでいいだろうけど、
複数人が開発している大きなアプリだと、

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年代から出来てる。
それを便利にするのがバージョン管理システム。
手段じゃない。道具。

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:XoDybxjV
>>493
では聞くが、

その台帳を検索するのに、どれだけの時間がかかるのか
考えたことはあるかね?


思い出すだろう? 大量の台帳の山から
その時の情報を探すのに数日かけたことを。

497デフォルトの名無しさん2015/11/26(木) 13:12:08.20ID:d/ZxLVhV
>>493
ソフトウェア会社なのに、それをコンピュータで
実現してないってのがダメな所だよなw

自分の仕事も効率化出来ない(コンピュータ化できない)
会社に他社の仕事の効率化なんてできっこないわけさ。

それをコンピュータ化したのがバージョン管理ツールだからね。

498デフォルトの名無しさん2015/11/26(木) 13:16:44.70ID:d/ZxLVhV
>>494
> 楽したつもりで道具に使われてる奴等多すぎ

>>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:uY2sGP6D
>>490
VSSやCVSやSVNやら今使ってるの皆無だろ
以降の際に履歴捨ててるだろうし
標準化されない限り結局は短命
Gitも20年先使えてるかわからんしな

503デフォルトの名無しさん2015/11/26(木) 15:44:54.51ID:8nlnWQy6
>>496
>>497
何言ってるんだ…
実現自体は昔から出来ている、それを便利にするのがバージョン管理システム、と言っているだろ。うちでも使ってるよ。
台帳自体もそっから今は自動で作ってる。便利だよ。
2000年代前半は内製システムだったけど、今は普通にバージョン管理システムとチケットトラッキングシステムだよ。

そもそもリリースノートは台帳から作るからリリースノート見ればわかるし、
わからなくて台帳をなめて、それでもわからなくて、
各文書の山から検索しないとダメな事自体、発生したらヤバい。
同様に、台帳の表題をあやふやにしてると痛い目に遭う。

検索したらわかるっしょ、と適当にする奴居るけどね。
今でも、サーバ、ネットワーク全部落ちてもサポート程度は回る程度に台帳も文書も刷ってるよ。
お陰様で震災でもなんとかなった。

504デフォルトの名無しさん2015/11/26(木) 15:54:46.61ID:8ZZhqZvl
>>502
使ってないだけで、使える。

移行の際に履歴を切り捨てるのは、お前の問題であって、技術の問題ではない。

他に標準化されているものなどない。
紙の管理? ソースコードのコメント? どれも標準化されてない。
今のデファクトスタンダードが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に時間やたら掛かりそう。

507デフォルトの名無しさん2015/11/26(木) 18:51:30.63ID:8ZZhqZvl
> 管理できれば良いんだから、

だからまた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するのは最初の一回、な。
常駐が入れ替わる度に数ギガのトラフィックか。

空論も良い所。
一回まともな体制のある程度の規模の開発に関わったらどう?

511デフォルトの名無しさん2015/11/26(木) 20:59:18.56ID:sSZIJZMB
お、このスレでは日頃のストレスをぶつけ合えばいいのか?

512デフォルトの名無しさん2015/11/26(木) 21:13:24.35ID:lIaAWQ2A
>>509
悪く言うつもりはないよ
ただあまりに頼りすぎてるとそれがダメになった時に崩壊するってこと
原発然りデータ分散保存してなかった会社然り
コストカットをやり過ぎた結果が全電源喪失なったの忘れたの?
東日本大震災あってコストカットのために東京にしかデータ残してなくて全データ喪失しましたで顧客は納得するの?
二重に安全策を行っておくくらい基本じゃないか?
余談だが俺の会社に20年前のバージョン管理の履歴残ってるプロジェクトひとつもない

513デフォルトの名無しさん2015/11/26(木) 21:17:07.03ID:8ZZhqZvl
なんかいきなり原発の話しだしてきワロタw

それとはぜんぜん違うだろう。

514デフォルトの名無しさん2015/11/26(木) 21:26:25.45ID:lIaAWQ2A
コストを削った代償の話で何も的を外してない
二重の安全策を怠った最も悲惨な事例だよ
高台に電源装置置いとけば事故は防げたんだから
過信といえばまだ二十年もたってないがアップルが経営危機に陥っていた時期に誰が10数年先にマイクロソフト抜いて世界一の企業になると予測できたか?
世の中本当に何が起こるかわからないよ

515デフォルトの名無しさん2015/11/26(木) 21:36:45.91ID:8ZZhqZvl
大きく的はずれだね。
必要ないと思っているものを削減するのと
必要あるものを削減するのとではぜんぜん違う。

また今度は関係ないアップルの話しだすし。
次はISISが戦争を始めるとかいいだしそうだ

516デフォルトの名無しさん2015/11/26(木) 21:55:52.71ID:veIBFmvN
原発おじさんはVCSの謎の突然死よりも
部下がこのスレに書き込んでいないかを心配した方が良いと思う

517デフォルトの名無しさん2015/11/26(木) 21:58:43.37ID:lIaAWQ2A
言いたいのは未来を予測できない以上二重以上の策を提供すべきということ
その必要かどうかはこの先ソースを保守する人間が判断するのであって今の人間が決めれることじゃない
20年前のプロジェクトの修正履歴見れるか試みたらすぐわかる話

518デフォルトの名無しさん2015/11/26(木) 22:23:35.43ID:jGsOshgR
サンプルでないコーディングで
foo だ bar だ hoge だのと

519デフォルトの名無しさん2015/11/26(木) 22:40:27.99ID:8nlnWQy6
>>512
うち、20年前のはコメントでの変更履歴がまだあるわww
未だ動いてるのが凄いんだけど。

520デフォルトの名無しさん2015/11/26(木) 23:09:16.39ID:lIaAWQ2A
>>519
うちもコメントやifdef等で残ってるのがある
修正入る部分にこれがあると何となく当時の背景が見えてくるから助かってる
バージョン管理は次々鞍替えして数年分しかない
どこが早く履歴の標準規格化してくれたらもっと分かりやすく差分や経緯を見れるんだけどな

521デフォルトの名無しさん2015/11/27(金) 07:13:44.65ID:vrZOFMnm
> 修正入る部分にこれがあると何となく当時の背景が見えてくるから助かってる

過去のバージョン見ればいいだけでは?
コミットログを見れば、何をしたのかもわかるし。

522デフォルトの名無しさん2015/11/27(金) 07:14:59.83ID:vrZOFMnm
> どこが早く履歴の標準規格化してくれたらもっと分かりやすく差分や経緯を見れるんだけどな

差分の見方とコミットログの書き方を勉強しようよw

一体、何を標準化しろと言ってるのかわかんね。
お前なら、どういう規格を作るのか言ってみなさい。

523デフォルトの名無しさん2015/11/27(金) 07:29:24.45ID:8OTsJ1NX
>>521
もちろん過去のバージョンと台帳と突き合わせて見ればいいんだろうけど、
そこに変更が入っている事、がソース変更時に読めるのはわかりやすいよ。
今でもチケット番号だけ書いてる。
チケット番号書いとけば、コミット時に拾ってくれて、チケットに対象として載るしね。

524デフォルトの名無しさん2015/11/27(金) 07:45:03.01ID:vrZOFMnm
> そこに変更が入っている事、がソース変更時に読めるのはわかりやすいよ。
ほぼすべての行に変更は入る。最初から何万行というコードが一気に出来上がるわけじゃない。

> 今でもチケット番号だけ書いてる。

ソースコードには、コードの意味ではなくてなぜそうしているか?を書く。

変更の理由という形ではなくて、なぜそうしたのか?を書かなければいけないほど
重要なことであれば、その理由を書いた上でチケット番号に関連付けるのは普通。

その場合は、コメント(チケット番号)は変更した理由という履歴ではく、
現在の姿として、なぜそうしているかという形で書けばいい。

変更したものを全部残すという考え方をしていると、現在のコードではなく
過去に存在し今は存在してないコードに対しての履歴まで残ってしまうだろ。
不要な履歴コメントは消すべきだ。

525デフォルトの名無しさん2015/11/27(金) 08:24:51.55ID:8OTsJ1NX
>>524
何が言いたいかわからん。
関数の頭のブロックにもチケット番号列挙してあるんだけど、
古すぎるコメントはチケット番号だけ残して消せば良いんだよ。

何故そうしているか、はコーダさん用のコメントだよね。
それらは本来、変更仕様書に書いてあるべき内容。
重要なことも何も、ソース改修はすべて重要な事だからチケット切って文書化すべき。

何故そうしているか、だけでは片手落ちも良い所。
○○年度○月○○法改正により計算方法が変更になり、下記の計算方法で計算する必要がある
 以下計算式 資料 No.xxxxx Pp y-z及び…
なんて完璧にコメント書いてくのも、文書の方に書けと言いたくなる。

一切残さない、もありなくらい。

526デフォルトの名無しさん2015/11/27(金) 08:44:05.48ID:vrZOFMnm
1998年度○月○○法改正により計算方法が変更になり、下記の計算方法で計算する必要がある
 以下計算式 資料 No.xxxxx Pp y-z及び…


これは消していいだろう?

527デフォルトの名無しさん2015/11/27(金) 08:47:54.68ID:vrZOFMnm
>>525
> 何が言いたいかわからん。

ソースコードに余計なコメントを書くな。
変更履歴も書くなって話だよ。

仕様は仕様書に書いてあるんだから、
documentディレクトリの○○テキスト参照って書けばいい。
仕様が新しくなったら、新しい仕様のファイル名に書き直すだけ。

修正のたびに行を増やす必要はなくなる。

528デフォルトの名無しさん2015/11/27(金) 10:41:14.78ID:8OTsJ1NX
>>526
1998年度以前のデータが二度と確実に入って来ないのであれば消しても良いと思うけど、基本は残すべきだと思う。もちろん文書に。
コメントとして処理内容を書くのであれば、これくらい書かないと片手落ち。
不足のあるコメントは余計なコメントに等しいよ。

>>527
だから、チケット番号で良いって言ってるんだけど。
文書載せられないようなトラッキングシステム使ってたらすまん。

529デフォルトの名無しさん2015/11/27(金) 12:04:27.10ID:2nzZgJ9X
そもそもチケットがない

530デフォルトの名無しさん2015/11/27(金) 16:09:25.59ID:nnLHIxqV
>>523
ソースコードに書かれたチケット番号をBTSが拾ってくれるの?
というか拾って何になるのか判らないけど

531デフォルトの名無しさん2015/11/27(金) 16:31:27.16ID:de7c81om
チケット=作業、作業が終わるタイミング=コミットなのだから、
チケット番号(≒Issue番号)はコミットログにつけるもんだと思うが?
特に重要な事に関しては、Issueに対してソースコードで注釈入れるけどな。

Issue駆動で開発すると

1. 新たなIssue(バグ報告や機能追加など)を作成する
2. それに対してのプルリクエストを作る
3. そのプルリクエストに1つまたは複数のコミットが含まれる。
4. そのプルリクエストをマージするとIssueが閉じられる。

という流れになる。

またプルリクエストっていうのは(Issueもだけど)、掲示板みたいなもので
それに関しての情報を時系列に会話するように記録できる。

最終的な修正内容をプルリクエスト(会話部分じゃなくて主文)に書いてそれをコミットすれば、
ソースコードのコミットログとして修正内容がバージョン管理される。
あとから修正を追いかけたいときはコミットログを見れば修正内容がわかる。
リンクも記録されてるから、コミットログからプルリクエストにもIssueにたどり着けるって寸法

これがgithubを使った主な開発のワークフローね。

532デフォルトの名無しさん2015/11/27(金) 17:35:57.29ID:8OTsJ1NX
>>530
拾ってくれるよ。コミット時に。
ソース管理もバグトラックも出てくる帳票も全部連携してる。
コミット時にも書けるけどね。
どの関数に手を入れたかわざわざ手で書かなくても良くなってるのと、
ソースとリリースノートだけ読んでもある程度わかるように。

あと、逆にリリース用チェックアウトした時にリビジョン等のスタンプも押される。

533デフォルトの名無しさん2015/11/27(金) 18:19:01.79ID:G3gCBxYm
手動でソースコードに変更履歴書いて
古いコードを残す文化とまるで違うw

534デフォルトの名無しさん2015/11/27(金) 18:29:07.73ID:nnLHIxqV
>>532
チケット番号←→コミットログ←→変更ファイルで芋づる式に取り出せる情報なのに
人間が変更ファイルをマーキングして周ってるのか
本人が言ってるならそうなんだろうけど随分変なやり方してるね

535デフォルトの名無しさん2015/11/27(金) 20:07:14.94ID:8OTsJ1NX
>>534
正確には変更ファイルにマーキングしてる訳じゃないよ。
変更箇所にマーキング入れてるだけ。

いつでもdiff取れるわけではないからね。

536デフォルトの名無しさん2015/11/27(金) 20:15:00.15ID:D0U2RhLm
> いつでもdiff取れるわけではないからね。

いつでもdiff取れるようにしなさいよw
あほだなぁ。

537デフォルトの名無しさん2015/11/27(金) 20:41:52.19ID:nnLHIxqV
>>535
納得した
そういうやり方ならありかもね

つってもソースコードから参照されてるチケットが陳腐化してないか
一々管理しなきゃならない不毛さを思うと
その時間でコメントを真面目に書けよって思うけどねw

538デフォルトの名無しさん2015/11/27(金) 21:17:32.03ID:DVR9xOkV
>>521
その時コミットログ見れればそれでベストだが環境移行等で見れなくなった時の話
>>522
差分やコミットログをどんな環境でも見れるためのファイルフォーマットだよ
ファイル仕様が決まれば別のバージョン管理ソフトも必ず対応するからOS変わろうがツール変わろうが将来見ることができるだろう
コードが理解不能になって作り直しってのはよくあるからな

539デフォルトの名無しさん2015/11/27(金) 21:34:46.43ID:D0U2RhLm
> その時コミットログ見れればそれでベストだが環境移行等で見れなくなった時の話
見れなくならないように、ちゃんと環境移行すればいいだけ

> 差分やコミットログをどんな環境でも見れるためのファイルフォーマットだよ
差分はgit diffでテキスト形式に変換される。
gitじゃなくてもすべてテキスト形式に変換できる。
テキスト形式が見れない環境など無い。

540デフォルトの名無しさん2015/11/27(金) 21:59:12.67ID:DVR9xOkV
>>539
同じところにも存在してればなんとかなるかもしれんが配置変わったり消したりするのは普通に発生する
その時見れないのでは話にならない
古いプロジェクトやったことある人間ならわかると思うが修正履歴が完全に残ってすぐ見れるなんて夢物語
ドキュメントなんてないしあっても嘘八百
ソース=仕様ってのしかお目にかかったことないわ
10年くらい放置されてて突然手を加えるとなったときには開発環境が動かせないとかなw

541デフォルトの名無しさん2015/11/27(金) 22:03:24.34ID:8OTsJ1NX
>>536
そりゃまあ、もちろんそうだけどね。それが実現するなら構わんけど。
地震が起きて、停電は起きるわ、窓ガラスは割れるわ、
支社とネットワークが上がらないわ、端末の何割かが壊れるわ、
なんやかんやで大変な事になっても
「今差分取れないし履歴も読めないのでわかりません、復旧まで待ってね」って投げちゃえるなら全部電子媒体で持ってて、必要な時に必要な分を随時取り出してもいいだろうね。

542デフォルトの名無しさん2015/11/27(金) 22:07:56.50ID:D0U2RhLm
>>541
火事になって会社焼けたら困るなら、
別の所にあるHDDとコンピュータを使えばいいのでは?

543デフォルトの名無しさん2015/11/27(金) 22:09:31.08ID:D0U2RhLm
紙媒体だと、燃えたら全損だからな。
バックアップも取れないだろうし。

544デフォルトの名無しさん2015/11/27(金) 22:10:31.74ID:D0U2RhLm
>>540
だから、デジタルで記録された、現在動いている
ソースコード以外役に立たないんだよw.
いくら紙の資料があっても、それが最新とは限らないからね。

545デフォルトの名無しさん2015/11/27(金) 22:11:26.12ID:D0U2RhLm
>>540
> 古いプロジェクトやったことある人間ならわかると思うが修正履歴が完全に残ってすぐ見れるなんて夢物語

古いプロジェクトからずっとバージョン管理してるわw

修正履歴が残ってないのは、バージョン管理していない頃と、
紙媒体で履歴を保存していたものだけ。

546デフォルトの名無しさん2015/11/27(金) 22:14:12.17ID:D0U2RhLm
地震でてんやわんやですが、
「差分取れるし、履歴も読めます。ただ、沢山の紙の資料の中から
探すのに時間がかかるのでちょっと待ってください。
パソコンを直すよりも時間がかかりますがねwww」

547デフォルトの名無しさん2015/11/27(金) 22:16:58.51ID:D0U2RhLm
俺なら、地震で仕事にならないなら、
別の場所に支社があるんだろう?
そこに仕事まわすだろうな。

デジタルデータなら共有も簡単なので、そっちで差分見ればいい。
紙に保存した資料に頼ってるから、余計大変なことになってるわけで。

命の危険もある中で、地震で散らかっている倉庫を探しまわって
仕事をする必要はない。優先順位を考えれば当然そうなる。

548デフォルトの名無しさん2015/11/27(金) 22:28:38.44ID:DVR9xOkV
>>545
紙で履歴保存してた頃にソース記述しとけば今でも見れたわけよ
俺は履歴は現行ソースと同等レベルで重要と思ってる
履歴がなくてコメントもろくにない中データ保存に分割してよくわからん計算してる理由わかるやつなんかそうそういないわ
わかった時には脱帽したよフロッピー先輩w
履歴あればすぐにわかったんだろうがな
今の時代にデータ保存にそんなことしない無理すぎた

549デフォルトの名無しさん2015/11/27(金) 22:47:37.06ID:upceL5UO
つ ランプ型秘密分散法

550デフォルトの名無しさん2015/11/27(金) 23:01:18.56ID:8OTsJ1NX
>>542
火事になっても大丈夫なように複写は他の所にも保管はしてあるよ。

>>543
お前コピー機も知らないの?

>>544
それは管理の仕方次第

>>546
探さなくても台帳、リリースノート、変更仕様書、等々キングファイルに綴じてあるからすぐ見つかるよ。

>>547
サブシステム毎に担当わかれてるからね。
こっちの命の危険なんか関係ないよ。
客先にはどんどん怪我人搬送されてたり、自家発電切れそうで縮退運転始まったり、
それこそこっちが一人二人死んだ位どうという事は無いよ。ただの労災。
命を預かる物作ってるのに、その責任に自分の命を代えられないほど情けない人間でもない。

551デフォルトの名無しさん2015/11/28(土) 00:28:53.24ID:Fdg/GjsY
支社があるような会社の運用ではないように見えるのだが

552デフォルトの名無しさん2015/11/28(土) 08:03:00.10ID:ozKXYRIx
老害ってほんとうに嫌なものだ。

553デフォルトの名無しさん2015/11/28(土) 12:25:04.44ID:THprgENb
>>551
平時とは違うよ。
それこそ電子化されたもの見りゃいいからね。
電話が復帰したら関西に投げたし。
当日翌日があんな状態になってもちゃんと回っただけいい方だと思うけど。

>>552
古い物を知らん奴が、解決策も無く古い物は良くないと言ってもなんの説得力も無い。
中学生の政治への憤りみたいに見える。

554デフォルトの名無しさん2015/11/28(土) 17:31:18.96ID:hiaEqByC
資産を異なるメディアでバックアップする事と
ソースコードからドキュメントを自動生成する事は完全に別問題なんだけどね
今後者のアプローチとして突っ込みが入ってるのに
なんで災害を強調するの?

555デフォルトの名無しさん2015/11/28(土) 19:20:09.38ID:W/xTcAqm
災害だと体験した人が少ない。

それは「俺にはわかるがお前らにはわからんだろ」
という上から目線をいうことができるということを意味する。

わからんと思うことなら説明するのが筋なんだが、
説明ができないので、別の方法で代用する。

それが「お前らにはわからんだろ」という言葉で
圧力をかけること。そのために災害を強調している。

556デフォルトの名無しさん2015/11/28(土) 22:46:57.94ID:ozKXYRIx
何の根拠もなしに、古いものを知らないと断定出来る才能自体が老害だとは思う。

557デフォルトの名無しさん2015/11/28(土) 22:57:48.59ID:W/xTcAqm
>>555はこういう喩え話でも説明できる。

あるとき若者が戦争についてあれこれ議論しているとする。
戦争について興味が無い人が多い世の中で素晴らしいことだが
そこで老人が現れて一言言う。


「戦争を実体験していないお前らに何がわかる?」


これでもう議論は止まってしまう。わからないのは事実だし
それはどうしようもないこと。その老人に勝つことは出来ない。

これは老人が正しいことを意味するわけじゃない。
例え老人の言うことが100%間違っていたとしても、
「お前らに何がわかる?」と言われれば反論できない。

議論の内容ではなく、その外側から圧力をかけて
黙らせているだけにすぎない。実に便利で姑息な手段だよ。

558デフォルトの名無しさん2015/11/28(土) 23:14:55.87ID:tSvPCfh1
姑息か?

559デフォルトの名無しさん2015/11/28(土) 23:19:08.72ID:fFSPKhVt
ジジイに叱られて黙る奴w

560デフォルトの名無しさん2015/11/29(日) 01:31:27.76ID:XQ9qPP+R
ここまで構成管理という言葉なし。

レベル低すぎ。

561デフォルトの名無しさん2015/11/29(日) 08:50:40.60ID:Q4OmYaLr
何で、発作のようにはねっかえって来てるのかわからん。
システムも、アナログな管理でも、管理さえ出来てれば良いよね、ただの運用のための道具、手段だから。
ってだけの話でしょ。

よほどなんか負い目あるの?

562デフォルトの名無しさん2015/11/29(日) 09:27:52.62ID:X6CLD+vb
無駄な労力を使わせているのが問題かと。

563デフォルトの名無しさん2015/11/29(日) 13:49:38.76ID:Q4OmYaLr
無駄じゃ無いじゃん

564デフォルトの名無しさん2015/11/30(月) 15:53:15.93ID:XLc7iLvb
おっ 無駄か無駄じゃないかの水掛け論か?

565デフォルトの名無しさん2015/11/30(月) 16:31:16.32ID:JF8UCarw
ほんとね、理由言わずに無駄っていうやつ、何なんだろうねw
水掛け論始めたいのかってな。

566デフォルトの名無しさん2015/11/30(月) 16:33:31.10ID:JF8UCarw
>>561
> システムも、アナログな管理でも、管理さえ出来てれば良いよね、

管理できるのは最低限で、効率的に管理して
コスト削減するのが、システム化の目的の全てでは?

当たり前すぎて、これだけで論破(笑)出来てしまう気がするが。

567デフォルトの名無しさん2015/11/30(月) 17:26:53.50ID:L/K7X1IT
>>566
その、最低限が業種によって違うよね。
って話してるのに、何言ってるの?
コスト削減、無駄の排除とそれは相反しないよ。
たとえれば、命綱はかける手間が無駄だから省略、作業場所に敷くマットは高いので敷かない、すべてロボットで窓ガラス拭きます!なんて話だよ。

その上で窓ガラス拭くならロボットで良いし、拭けないなら拭けるまで待っても死人が出ないからそれでいいね、って話だし、
災害時用の電波塔なら、拭けないなら拭けるまで待つなんて出来ないんだからいざという時は人が作業できるように体制は保持しようね、って話なんじゃん。

全然ソースコード関係ないけど。

568デフォルトの名無しさん2015/11/30(月) 17:37:12.45ID:JF8UCarw
>>567
じゃあ文句言う対象は俺じゃねーだろ。

「無駄」と言った奴に対して、
最低限は業種によって違う。
無駄じゃないかもしれないだろって
説教たれろよ。

一般論でしか無いし全く無意味な説教だがな。

569デフォルトの名無しさん2015/11/30(月) 17:50:09.32ID:JF8UCarw
管理さえできていればいいよね・・・そこで思考停止
管理できるのは当たり前で、効率的に管理するのが重要・・・思考停止していない。

570デフォルトの名無しさん2015/11/30(月) 19:42:10.76ID:Psvq4v1+
>>568
何をそんなにいきり立ってるの?
明後日のカイゼンかなんかを提案して怒られて拗らせてるの?

>>569
管理さえ出来ていれば良いとしか言いようがないでしょ。
もしアホ揃いで紙運用回す能力もないなら、それは「紙では運用管理出来ない」んだから、管理出来ていない≒何らかのソフトで運用しなければならない、だよね。
まんま同じで、システムだけでは回らないのであれば、それは「システムでは運用管理出来ない」なんだから、紙モノも残さんといかんな、って話じゃん。
何も否定してないのに、アホなの?

全部手段で道具で、目的は「満足に管理して業務を回すこと」だよね。
思考停止でも何でもないよ。

571デフォルトの名無しさん2015/11/30(月) 19:44:53.23ID:JF8UCarw
>>570
> 何をそんなにいきり立ってるの?

俺に言うべきじゃないことを俺に言うからじゃん。

> 明後日のカイゼンかなんかを提案して怒られて拗らせてるの?
お前の思い込みって、ほんと面白いよなw そんなの実経験から思いつくの?w

572デフォルトの名無しさん2015/11/30(月) 19:45:36.33ID:JF8UCarw
>>570
だから管理できるのは最低限だって。

ここから更に効率が良くてコストも低い方法に変えていくの。

573デフォルトの名無しさん2015/11/30(月) 21:27:42.17ID:Psvq4v1+
>>571
俺に言うべきこととかどうでもいいよ。
よっぽど自己評価高いのな。

実体験から思いつくよ。よくこの類のダメ出しはするから。

>>572
何言われてるか理解できなければいいよ。
結果論として無駄に効率が悪くて無駄にコストがかかる運用なんて、その最低限を満たして無いよね、って話。

574デフォルトの名無しさん2015/11/30(月) 22:55:34.80ID:5dGYmvKM
VCS標準化おじさんに原発おじさんに
面白い人がよく集まるスレですね

575デフォルトの名無しさん2015/12/01(火) 09:43:08.58ID:vya/mPuO
導入コストっつーか慣熟期間に一時的に落ちる効率が
導入後に取り返せる見込みがない場合ってあるよな。
太陽光発電システムを数年スパンで丸ごと入れ替える
みたいな、全然元が取れてないパターン。

576デフォルトの名無しさん2015/12/01(火) 17:07:22.23ID:N36zTOa2
俺が正しい
俺だけが理解している
俺の意見が理解できないやつはクソ

という論調の書き込みは読むに値しない
例え正しいことが書いてあったとしてもな

577デフォルトの名無しさん2015/12/01(火) 17:55:19.70ID:d/SZPXKT
>>576
それで、その意見は正しいのかね?

578デフォルトの名無しさん2015/12/01(火) 18:18:42.51ID:N36zTOa2
>>577
正しくないぜ
当然じゃないかハハハ( ´∀`)

579デフォルトの名無しさん2015/12/03(木) 15:32:59.30ID:i4g9lAHf
hoge[1] = 89123;
hoge[2] = 123;
hoge[3] = 1234;
hoge[4] = 14323;
hoge[5] = 1123;
hoge[6] = 15623;
hoge[7] = 3123;
hoge[8] = 1323;
hoge[9] = 1223;
hoge[10] = 1234;

580デフォルトの名無しさん2015/12/03(木) 15:33:33.33ID:i4g9lAHf
hoge[1] = 89123;
hoge[2] = 123;
hoge[3] = 1234;
hoge[4] = 14323;
hoge[5] = 1123;
hoge[6] = 15623;
hoge[7] = 3123;
hoge[8] = 1323;
hoge[9] = 1223;
hoge[10] = 1234;

581デフォルトの名無しさん2015/12/03(木) 18:06:22.96ID:xWHq0tVP
あー、これ系のソース書いたことあるわ。
バイナリファイル中のファイル位置、サイズだったか、
固定長電文のフィールド位置だったか。

582デフォルトの名無しさん2015/12/03(木) 18:20:54.04ID:d0OCrfZD
データセットを DataGridView に表示するのに、バインドせずにループで回して代入。

583デフォルトの名無しさん2015/12/04(金) 09:44:59.80ID:pcaxFgNv
>>582
ループしてるならまだ絶望的じゃないな

584デフォルトの名無しさん2015/12/04(金) 10:54:45.80ID:QmIGWywN
データバインドとかここ10年くらいのものだろ

585デフォルトの名無しさん2015/12/04(金) 15:17:07.67ID:prxSfFNA
>>582-583
バインドなしループなしを見たことがある

586デフォルトの名無しさん2015/12/04(金) 16:01:55.05ID:X5G422Yr
>>584
> データバインドとかここ10年くらいのものだろ
いつが最初かしらないけど、Visual Basic 4.0の時代にはあったよ。
1995年発売だから20年前だね。

http://windowsitpro.com/windows/visual-basic-40
http://windowsitpro.com/site-files/windowsitpro.com/files/archive/windowsitpro.com/content/content/2494/screen_01.gif

古くてちゃんとした情報は見つけづらいけど、MSRDC、RDO、DAO、DBGridあたりの
キーワードで調べれば断片的に見つかるはず。

ウェブのGUI技術なんて20年前の歴史を辿ってるだけだからさ。

587デフォルトの名無しさん2015/12/04(金) 16:14:52.25ID:u0bQfuw3
そうだね

588デフォルトの名無しさん2015/12/04(金) 23:55:01.31ID:wuaQKlp3
#define zero 1

589デフォルトの名無しさん2015/12/05(土) 00:48:19.55ID:mCAwIdXZ
0=Off, 1=On を表すパラメータと、0=On, 1=Off なパラメータが混在していて
どっちがどっちかは列挙型の名前で区別するようになっているのだが
その名前付けが間違っている

enum FLAG_0_IS_OFF { OFF = 0, ON = 1 };
enum FLAG_1_IS_ON { ON = 0, OFF = 1 };

590デフォルトの名無しさん2015/12/05(土) 11:26:47.51ID:pK0sc289
#define TRUE 1
...
if(hoge == TRUE){...}

591デフォルトの名無しさん2015/12/05(土) 12:16:35.79ID:vOhmiziG
>>590
if((hoge == hoge) == TRUE)

592デフォルトの名無しさん2015/12/05(土) 12:17:21.84ID:4CEShJeO
なにかを召喚しようとしているとみた。

593デフォルトの名無しさん2015/12/06(日) 11:01:47.05ID:pIhfFp+J
A4紙ペラ1枚の仕様書兼設計書しかないのに、10万行のソースコード。

594デフォルトの名無しさん2015/12/07(月) 01:49:58.36ID:7ba3d2ub
昔、偽装請...派遣でいった会社で
ありとあらゆる引数が

const boost::shared_ptr<XXX> &val

となっている現場があった。
何かが、狂っていた。

595デフォルトの名無しさん2015/12/07(月) 07:56:35.00ID:RcyQXLEI
開放領域への参照で落ちて地獄のデバッグよりか遥かにまし

596デフォルトの名無しさん2015/12/07(月) 09:53:30.69ID:7ldc1+VM
C++の世界って相変わらず
ごちゃごちゃしてんのなw

動くのに間違いっていうのが多すぎる

597デフォルトの名無しさん2015/12/07(月) 10:15:40.28ID:ybmjRjHL
>>594
銀行だろ

598デフォルトの名無しさん2015/12/07(月) 15:38:41.09ID:KuRdWB2c
>動くのに間違い

ほんそれ

599デフォルトの名無しさん2015/12/08(火) 21:57:19.96ID:uAong+Yo
ループ変数がグローバルにおいてあって、
そのループ変数を使ったfor文の中から呼び出される
各関数内でループ変数がインクリメント・デクリメントされているコードに絶望した覚えがある

600デフォルトの名無しさん2015/12/08(火) 22:39:43.83ID:ofZrfRww
やばいなそれ
それ仕様どおりなん?

601デフォルトの名無しさん2015/12/09(水) 10:07:13.59ID:3EPxHLPC
再帰処理の中で再帰の深さ調べて云々するプログラムにそんなのあったな

602デフォルトの名無しさん2015/12/09(水) 21:23:43.29ID:VkHBWGUX
>>600
コードが仕様だ!

コーディングミスの副作用が絡み合い何故か動いているのだが
書いたやつやめたから誰も手が出せない、なんとかしろという展開。

603デフォルトの名無しさん2015/12/09(水) 22:54:35.69ID:ZwktDk40
 
配列に間違って一つ余計なデータを加える

   +

ループ回数を間違って最後の一つを処理しない

   =

_人人 人人_
> 正常動作 <
 ̄Y^Y^Y^Y ̄

604デフォルトの名無しさん2015/12/10(木) 00:26:28.57ID:ydUpcr2T
境界テストすらしない前提なの

605デフォルトの名無しさん2015/12/10(木) 00:28:09.29ID:Ti4G586p
関数内部の境界テストはしないね。

606デフォルトの名無しさん2015/12/10(木) 09:15:52.53ID:PYxURZ6w
番兵さんを「余計なデータ」と言われた事ならある

607デフォルトの名無しさん2015/12/10(木) 12:17:34.93ID:gg94mj0B
>>603
最後にnull終端が(暗黙に)期待されてるバグありコードで
たまたまメモリが0で埋まってて動いてるソフトが世界中に沢山ある

608デフォルトの名無しさん2015/12/10(木) 12:28:09.15ID:UXNiSsD5
C言語でbssセクションに配置された未初期化変数はzero-fillが保証されている
ことを知らない無能は結構多いよね。

609デフォルトの名無しさん2015/12/10(木) 12:36:25.02ID:bHHbe/Q2
お前知ってる無能だな

610デフォルトの名無しさん2015/12/10(木) 13:00:08.77ID:v8EHsCoC
>>606
余計なデータだろう。
番兵はあくまでテクニックだ。

611デフォルトの名無しさん2015/12/10(木) 15:44:51.44ID:Sckq1QsI
>>608
そんなの知らねーが未初期化でReleaseビルドの時だけ発生するバグを埋めるアホはよく見てきた
新人でもはっきり判断できるような可読性高いもの書け
それがプロの最低条件

612デフォルトの名無しさん2015/12/10(木) 15:50:47.73ID:Ti4G586p
正確には「新人でも上級者でもわかる可読性が高いコード」な

新人が簡単に分かったとしても、
上級者が苦労するようなコードは本末転倒。

上級者がこっちのほうがわかりやすくシンプルだと思ってるのに
でも新人はこんな高度なテクニックは知りませんからね。
複雑で冗長になりますが、新人でも知ってるテクニックだけ使いますよ。
というのは大間違い。

わかりやすさの基準は上級者が決める

613デフォルトの名無しさん2015/12/10(木) 15:56:11.47ID:pXSC4Dqg
>>608
俺の使ってたCスタートアップは.bssゼロフィルしてなかった
妥当な理由があったからなんだが、何だかモヤモヤした

614デフォルトの名無しさん2015/12/10(木) 16:01:16.70ID:yNsK6Fxm
bssゼロフィルなんてものを前提にコード書く奴は素人
こういうバカはやっかいなバグをしこたま仕込むタイプ

615デフォルトの名無しさん2015/12/10(木) 16:04:42.64ID:pXSC4Dqg
グローバル変数とかスタティック変数は
初期値を入れてなければゼロが初期値ってのは前提でしょ

616デフォルトの名無しさん2015/12/10(木) 16:36:51.55ID:Ti4G586p
むしろ初期値が決まってない言語のほうが少ない。

617デフォルトの名無しさん2015/12/10(木) 16:42:29.28ID:2ifIvV3l
>>613
そういうのは処理系がエラーを吐けば問題ない

618デフォルトの名無しさん2015/12/10(木) 17:32:31.12ID:iwZgNtxz
前提つーか言語仕様に書いてあるからなあ

619デフォルトの名無しさん2015/12/11(金) 00:36:04.85ID:AA1k5ebD
言語仕様なんて現実の処理系の前じゃ単なるガイドラインにしか過ぎん

620デフォルトの名無しさん2015/12/13(日) 09:45:48.97ID:+eRy+6gb
言語仕様としてプラットフォーム依存も定義されてるよ

621デフォルトの名無しさん2015/12/13(日) 20:56:58.02ID:XKUJpg79
1クラスが6000ステップ以上のJavaソースをちらりと見た。
内部クラスを使っているかも知れんが、Javaってもっと細切れに
クラスを作るものかと思っていた。

622デフォルトの名無しさん2015/12/13(日) 20:57:59.03ID:NoovkWNN
Javaだけじゃなくて、どんな言語でも、
クラスがある言語なら細切れにクラスを作るよ。

623デフォルトの名無しさん2015/12/13(日) 23:37:51.49ID:WlyYs++B
>>621
6000行くらい見ればいいのに。

624デフォルトの名無しさん2015/12/13(日) 23:57:49.37ID:hOFu3SKo
>>621
ダメな例だな
まとまってるから解析は比較的しやすいがテストとなると内部の状態が多すぎてまともなテストできない
クラスは小さいひとつのことに集中し他とはできるだけ疎結合

625デフォルトの名無しさん2015/12/18(金) 21:22:05.47ID:FDwGFOf2
>>621
クラスの責務があやふやなんやな

626デフォルトの名無しさん2016/01/06(水) 11:59:50.90ID:nQqbz+/u
中級者はトリッキーはコードを好む
これだけは間違いない

627デフォルトの名無しさん2016/01/06(水) 12:29:20.52ID:UK0rI12O
確かに上級者のコードは見やすい。
ロジックは複雑だがコードとしての見やすさ。

628デフォルトの名無しさん2016/01/06(水) 12:30:26.18ID:Fg9nLK8i
トリッキーを好むのは意識高い系の無能やで

629デフォルトの名無しさん2016/01/06(水) 18:08:14.05ID:/H9q/T9T
中級者と上級者の違いは?

630デフォルトの名無しさん2016/01/06(水) 19:38:59.22ID:yluT1kPN
上級者:バカの相手をしない。馬鹿にかかわらない。
中級者:バカがいると頑張る。
初心者:バカをバカと認識出来ない。

631デフォルトの名無しさん2016/01/07(木) 12:52:08.23ID:z61lpkpg
バカをコケにして楽しむ天才もいるけど

632デフォルトの名無しさん2016/01/07(木) 16:39:58.08ID:Pe5rEwkw
それは中級者のことだな

633デフォルトの名無しさん2016/01/07(木) 17:03:25.06ID:h6IODMw0
上級者は比較的謙虚だよ。
まあ、悟りが入っているからだが。

634デフォルトの名無しさん2016/01/07(木) 19:56:13.36ID:JRHaZSLM
いろいろいる

635デフォルトの名無しさん2016/01/07(木) 20:47:13.40ID:lRIC4Lm0
上級者をコケにしまくるノイマン

636デフォルトの名無しさん2016/01/08(金) 15:07:08.09ID:tqKW36Gu
ifもelseも全部一行に詰め込むガイジは死ね
読みにくいんじゃボケ!!!!!!!!!!!!!!

637デフォルトの名無しさん2016/01/08(金) 15:14:42.00ID:yBRKo/VZ
>>636
個人的には、

if(kinoko == stick){

}else{

}

という書き方ではなく、

if(kinoko == stick)
{


}
else
{

}

って書く人は嫌い。

638デフォルトの名無しさん2016/01/08(金) 15:29:13.63ID:d7AXElGo
>>637
それが嫌いだと生きていくの辛いだろ

639デフォルトの名無しさん2016/01/08(金) 15:43:23.58ID:BspTamKY
俺はできるだけ改行しないほうが好きだが、コメントの位置が上手くできないのが悩みどころ

// このコメントはOK
if(){

}else{ // このコメントを先頭にしたいけどelseはこの位置が好き

}

640デフォルトの名無しさん2016/01/08(金) 16:04:25.38ID:phA/d0Uk
こーだろ

if(){
  // 真の場合は・・・する

}else{
  // 偽の場合は・・・する

}

641デフォルトの名無しさん2016/01/08(金) 16:48:23.58ID:OUzXo7qx
>>637
嫌いだけど、 C#ってその形なんだよね

642デフォルトの名無しさん2016/01/08(金) 18:17:24.00ID:/YBx4YCU
設定で変えられますよ。

643デフォルトの名無しさん2016/01/08(金) 20:08:25.88ID:cnaeBvqG
つーか、elseはあまり書くべきでない。

if(){
  // 真の場合は・・・する

}else{
  // 偽の場合は・・・する

}

ではなく、できるだけ

if(){
  // 偽の場合は・・・する
  return;(またはエクセプションをthrow)
}

// 真の処理

という形になるように常に心がける。

if else という書き方が深いネストを作るきっかけになっている事に気づかないと
いつまでたっても、初心者、中級者のまま。

644デフォルトの名無しさん2016/01/08(金) 20:43:14.71ID:YP1TscYa
一画面で収まるなら別にネストしてていいや。
それ以上はオブジェクト化するかな

645デフォルトの名無しさん2016/01/08(金) 20:57:13.43ID:KfqZIdgm
>>643 MISRA を否定するのか。是非とも MISRA の連中を説教してやってくれ

MISRA-C ルール 15.5 推奨 関数は、その最後に1つだけの出口を持たなけらばならない

646デフォルトの名無しさん2016/01/08(金) 21:08:22.83ID:BspTamKY
>>643
ifでもelseでも最終的に同じ処理してからリターンしたい場合は?
決め付けるのは自称上級者

途中リターンが見やすいと思った場合は使うしそうでない場合はelseも使う

647デフォルトの名無しさん2016/01/08(金) 21:14:13.17ID:/AzKcaKs
>>645
C言語ではそっちの方がよかったんかね。
いまって関数単位で単一責務原則を適用して関数が小っちゃくなるから
あまりこだわる必要なさそうだけど。

648デフォルトの名無しさん2016/01/08(金) 21:19:49.24ID:7GZox6yu
話ぶった切るけど今まで見た中で最高に頭沸いてると思ったのはこれ

// 前略

/*
* きっとキミは来ない 独りきりのcarch anything
* silent kill. do ignore.
*/
} catch (Throwable e) {
assert(true, "来ちゃった♪" + e);
}

書いた人は壊れて辞めたらしい

649デフォルトの名無しさん2016/01/08(金) 21:21:27.58ID:cnaeBvqG
>>646

あまり書くべきではない とか できるだけ心がける
という、超初歩的な日本語の意味を理解できない馬鹿がいるとは…
さすが初心者はプログラムだけでなく日本語も不自由と見える。

そう書くのが妥当なら書けばいいに決まってるじゃないか。

650デフォルトの名無しさん2016/01/08(金) 21:25:13.38ID:cnaeBvqG
>>645

世の中のコードが全てCで書かれているとは知らなかった。
そんな世の中なら、さぞ住みにくかろう。

651デフォルトの名無しさん2016/01/08(金) 21:38:36.07ID:RkD3LFtP
客先ですごいお金が絡むシステムがスパゲティコードだったから担当になるまえに怖くて会社辞めた

652デフォルトの名無しさん2016/01/08(金) 21:51:57.46ID:BspTamKY
>>649
常に心がける=できるだけ心がける?

653デフォルトの名無しさん2016/01/08(金) 22:15:24.88ID:cnaeBvqG
できるだけ〜になるように、常に心がける

なんかおかしいか?
ほんとに日本語不自由な奴ばっかだな。

654デフォルトの名無しさん2016/01/08(金) 23:40:56.27ID:VOVSZHMX
>>645
> MISRA-C ルール 15.5 推奨 関数は、その最後に1つだけの出口を持たなけらばならない

そのルールを守るのは簡単だよ。

途中でreturnしたくなったら、代わりに関数の最後にgotoすればいいw

655デフォルトの名無しさん2016/01/08(金) 23:50:27.25ID:278l3d2Z
そのMISRAのバカルールはな大昔の最適化が物凄くしょぼかったコンパイラ
で出たコードをこれまたしょぼいデバッガでデバッグするために関数の入り口と出口を
アセンブラレベルで1つずつにするためのものなのだよ
もう完全に時代錯誤

656デフォルトの名無しさん2016/01/08(金) 23:53:53.14ID:/AzKcaKs
>>654
gotoもダメなんじゃないかな?みすら的に考えて。
みすらそう思う。

657デフォルトの名無しさん2016/01/09(土) 00:43:27.67ID:5qP+Va2j
>>656
ならwhile(1)してbreakすればいいよw

658デフォルトの名無しさん2016/01/09(土) 02:10:42.82ID:zAGuqSNS
マルチスレッド対応が当たり前になった今クソ長いコードや分岐だらけとか終わってる
シンプル・イズ・ベスト
大きな建造物と同様細かく作業を分けて小さな単位を積み上げていって大きくするのがセオリー

659デフォルトの名無しさん2016/01/09(土) 06:38:25.50ID:sD5C6F8w
VB系だとよく脱出用の空ループで抜けたりするけどこれはみすら的にはどうなの?
andやorがC言語系の&&や||と違って全部評価されちゃうからifで書いてくしかなくて
それをまともにやるとifがネストになってくんだよね
do
 if not test1 then exit do
 if not test2 then exit do
 if not test3 then exit do
 :
 exit do
loop

上を普通に書くと
if test1 then
 if test2 then
  if test3 then
   :
※各testは最小限で評価したい

660デフォルトの名無しさん2016/01/09(土) 13:39:15.86ID:B4VTiUSo
客が読みにくいという理由でガード(関数の先頭あたりでリターンする)を
すべて if else に書き直させられたが
何でくだらない仕事を増やすのだろうか

661デフォルトの名無しさん2016/01/09(土) 14:08:32.34ID:1QZox6W1
>>660

客の脳みそが腐っているんだからしょうがないんじゃね?

腐っててもお金は払ってくれるんだから、まぁ、ごみ処理だと思えば。

662デフォルトの名無しさん2016/01/09(土) 14:23:51.36ID:1QZox6W1
自称上級者とかほざいてた >>646 は、
そろそろ自分の馬鹿さ加減に気づく頃かな。

663デフォルトの名無しさん2016/01/09(土) 14:30:18.07ID:zAGuqSNS
>>660
else;つけとけばいいだけ
わざわざelse句として書く必要ない

664デフォルトの名無しさん2016/01/09(土) 14:31:17.81ID:hdqMNonU
>>662
ケースバイケースってことを言ってるんだと思うよ。
バカだとは思わないけどなあ。

665デフォルトの名無しさん2016/01/09(土) 14:36:03.18ID:zAGuqSNS
どちらのケースでもやりたいなら呼び出し元にコールさせればいい
分割がなされてないとそうなる

666デフォルトの名無しさん2016/01/09(土) 14:49:14.92ID:1QZox6W1
>>664

5:5 くらいでどっちのケースもあると思ってるなら、
お前も>>646も頭に糠味噌つまってるくらい馬鹿だ

667デフォルトの名無しさん2016/01/09(土) 14:51:11.96ID:hdqMNonU
>>666
バカっていいたいだけなんじゃないの?
なんかあまり中身がないような・・・。

668デフォルトの名無しさん2016/01/09(土) 14:53:07.96ID:hdqMNonU
好みの問題だしなあ。価値観は優劣をつけるためのものじゃないと思うんだよね。
他人の価値観を自分の中に取り込んで自分の世界を広げるためのものなんだよ!!←できる人

669デフォルトの名無しさん2016/01/09(土) 14:53:18.06ID:1QZox6W1
>646
>ifでもelseでも最終的に同じ処理してからリターンしたい場合は?

そういう、共通処理っていうのは呼び出し元の処理なんだよ

いい加減に気づけ馬鹿 >>664

670デフォルトの名無しさん2016/01/09(土) 14:54:33.41ID:1QZox6W1
>>668

究極に頭おかしい人がきました。
好みの問題だと本当に思っているらしい。そりゃ、世の中クソコードで溢れるわ。

671デフォルトの名無しさん2016/01/09(土) 14:55:22.03ID:1QZox6W1
>>667

中身が無いのはお前の頭です。

672デフォルトの名無しさん2016/01/09(土) 14:57:02.55ID:1QZox6W1
IDみたら同じやつか。こいつ、本当に糞コード生産マシンだろうな。

673デフォルトの名無しさん2016/01/09(土) 15:04:09.39ID:1QZox6W1
>他人の価値観を自分の中に取り込んで自分の世界を広げるためのものなんだよ!!←できる人

"←できる人"って、ばーーーーーーーーーーーーか!

674デフォルトの名無しさん2016/01/09(土) 15:06:12.89ID:hdqMNonU
>>673
待って!落ち着いて!いまから私が言うことに耳を傾けて。
びっくりするかもしれないけどホントのこと伝えたいから。
プログラムはケースバイケースなの!!なんでもありなの!!!

675デフォルトの名無しさん2016/01/09(土) 15:14:34.02ID:1QZox6W1
ケースバイケースのことはあるが、今回のことは違う。
以上

馬鹿

676デフォルトの名無しさん2016/01/09(土) 15:22:04.43ID:im9ptLOw
馬鹿バイ馬鹿のことはある

677デフォルトの名無しさん2016/01/09(土) 15:27:26.70ID:5qP+Va2j
さーらバイバイさーらバイということもある。

678デフォルトの名無しさん2016/01/09(土) 15:33:15.50ID:+5afeFvR
>>669
じゃあif elseがない処理=呼び出し元の処理ということ??
関数作る必要ないじゃんwww

>>665
呼び出し元が複数あったときにコードが増えるんですがw
何のための関数化だよ
せめて関数内で別関数としてコールする形式にしないと無駄が増える

経験的に、後から読むとき、関数最初でのreturnは見やすいけど、
途中でのreturnはelseのほうが見やすかったりする
だからケースバイケース

679デフォルトの名無しさん2016/01/09(土) 15:37:06.74ID:hQalMJ4t
>>669
関数でローカルに取得したリソースの解放ってのは関数内部の処理だろう。
C++ならRAIIでやるところかもしれんが。

680デフォルトの名無しさん2016/01/09(土) 16:34:28.92ID:5qnqwO4H
>>678
条件分岐を呼び出してあとに続く処理を実行する方を外から呼び出してもらうようにするだけ
分解すればあとの処理はifの条件にかかわることなく一回でテストが終わる
ダラダラ一つのメソッドに書くとマトリックス的にテストケースが発生し産廃コードが誕生する

681デフォルトの名無しさん2016/01/09(土) 17:46:59.93ID:hQalMJ4t
>>680
そういう等価な書き換えでテストケースが減るわけがないんだがな。
C0カバレッジしか見てなくて途中returnのケースをテストしてないのかとも思ったが、
ひとつの関数だとマトリクス的にケースが増えるってのが意味不明だな。
どういう基準でテストしてるんだか。

682デフォルトの名無しさん2016/01/09(土) 18:23:22.10ID:5qnqwO4H
>>681
if
A
else
B
C

Cが別関数になってないとACとBCのテストパターンコードがいる
一方別関数の場合はAとBそれと独立してCで事足りる
これが長いものになると前者は爆発的にパターンが増えていく
関係性がないものは分離する
関係性があっても関係性の部分だけを取り出し分離する
細かくなってればテストコード自動生成も実用性が出てくる

683デフォルトの名無しさん2016/01/09(土) 18:27:33.31ID:NrfMM3wG
デバッガで見るとreturnで関数の最後に飛んでいるから、
途中でreturnしてもいいんじゃないの?

一方職場でジャンプ関数使う人はいた。
でも1人でやってるプロジェクトなんで見て見ぬふりをしたw
自分以外がメンテナンスできないようにする人っているしね…

684デフォルトの名無しさん2016/01/09(土) 18:31:44.58ID:e4D1bXEw
ジャンプ関数ってまさか
longjmp()とcome_from()?
gotoがましに見えるレベル

685デフォルトの名無しさん2016/01/09(土) 18:54:23.29ID:hQalMJ4t
>>682
分岐網羅ならどっちにしろACとBCの2ケースになるように見えるが。
それともAとBとCの単体テストだけやっておしまいって話?
ついでに言えば、これがどう>>680の説明になっているのかわからん。

686デフォルトの名無しさん2016/01/09(土) 18:56:50.22ID:PkTsY4HK
>>685
由緒正しき「継続」という奴だ,まさか,とかいっていいのか?

687デフォルトの名無しさん2016/01/09(土) 19:26:55.42ID:NrfMM3wG
come_fromって何かと思ったらサンプルコードじゃんw
「returnするのが面倒くさいからと」代わりにジャンプ関数使っていたな…
(なんでも手製でツールを揃えないといけない時代で)独立したツールだったから
誰もソースコードチェックしなかったんだろうね。

688デフォルトの名無しさん2016/01/09(土) 20:03:07.47ID:1QZox6W1
hdqMNonUの戯言に耳を傾ける馬鹿は+5afeFvRみたいな知恵遅れだけだ。

689デフォルトの名無しさん2016/01/09(土) 20:05:22.39ID:j10t/SxZ
人命にかかわる部分はたいていC/C++で書かれているから、C/C++を使う人だけ気を付ければ良いんじゃないだろかね。

690デフォルトの名無しさん2016/01/09(土) 20:05:40.84ID:1QZox6W1
>>680 >>682 に書いてあることの意味が分からない奴が、現役でプログラマしてるって事が恐ろしい…

691デフォルトの名無しさん2016/01/09(土) 20:13:15.02ID:1QZox6W1
>>685
>それともAとBとCの単体テストだけやっておしまいって話?

だったらお前はその上層と下層を全て含めた
ABCDEFGHIJKLMN…
の全てのケースを含んだテストを一生かけてやってろ。

ユニットテストのしかたもする意味もわかってない馬鹿。

692デフォルトの名無しさん2016/01/09(土) 20:18:44.12ID:j10t/SxZ
単体テストのやり方がわかっていないからといって馬鹿とは限らない。
アインシュタインは単体テストのやり方を知っていただろうか。

693デフォルトの名無しさん2016/01/09(土) 20:32:29.40ID:1QZox6W1
単体テストのやり方がわかっていないから馬鹿だといってるのではない。
馬鹿だから単体テストのやり方がわかっていないと言っている。

694デフォルトの名無しさん2016/01/09(土) 20:36:35.31ID:1QZox6W1
AのバグとCのバグを合わせた結果、テストケースでは見かけ上正しい出力がされてグリーンになってしまいました、

ABとCが分けてなかったらどうやって隠れた問題を検出するんだ。

695デフォルトの名無しさん2016/01/09(土) 20:41:02.73ID:+5afeFvR
そもそも全てのプログラマがユニットテスト書くわけでもないしね(技術的にも仕様的にも)

696デフォルトの名無しさん2016/01/09(土) 20:47:18.34ID:1QZox6W1
ユニットテスト出来ない奴がいる事と、理想的なコード自体の書き方と、何の関係があるんだよ。


何がそもそもだ、ばーーーーーーーーーーーか!

697デフォルトの名無しさん2016/01/10(日) 06:54:26.02ID:wBDEYS7B
>>1
RPGツクール2000 , RPGツクールMV https://tkool.jp/mv/ ( JavaScript 採用 )

WOLF RPGエディター http://www.silversecond.com/WolfRPGEditor/

デュエル・マスターズ Android版 ,i-OS版、公式 http://dm.takaratomy.co.jp/extra/dmapp/entrygate_ds/
デュエル・マスターズ対戦CGI ex
https://web.archive.org/web/20150809154946/http://www53.atwiki.jp/dmsuishinparty/pages/314.html

デュエル・マスターズ(デュエマ)DM ONLINE 1.8a  /  VanGuard ONLINE 1.5a
https://web.archive.org/web/20150809160254/http://uhyohyohyo.sak ura.ne.jp/hsp.html

ヴァンガード専用ネット対戦ツール【 VanGuard Online 】
https://web.archive.org/web/20150809155032/http://kiimaa.jugem.jp/?eid=61

「カードファイト!!ヴァンガード」のネット対戦ができる公式オンラインゲーム「Cardfight!! Online」 2015年冬スタート
https://web.archive.org/web/20150809153724/http://supersolenoid.blog63.fc2.com/blog-entry-6886.html

遊戯王 Automatic Dueling System
https://web.archive.org/web/20150809164855/http://www3.atwiki.jp/ads-wiki/pages/20.html

遊戯王 デュエル・オンライン
https://web.archive.org/web/20150809171527/http://www31.atwiki.jp/vipdo/pages/15.html
https://web.archive.org/web/20140628005202/http://do.yugioh-portal.net/

ウィクロス( WIXOSS ) WEBXOSS http://webxoss.com/about_en.html http://webxoss.com/DeckEditor/

BG(ボードゲーム)Engine https://web.archive.org/web/20151209080842/https://bgengine.net/
https://web.archive.org/web/20151209172205/http://14owl.hateblo.jp/entry/2015/12/09/011234

アプレンティス  マジック:ザ・ギャザリング(MtG)オンライン化 http://homepage1.nifty.com/Q_Q/ap.html
https://web.archive.org/web/20151202202725/http://homepage1.nifty.com/Q_Q/ap.html

698デフォルトの名無しさん2016/01/10(日) 06:55:32.25ID:wBDEYS7B
【 オンラインTCGエディター 】   >>1,>>697

デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。

例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
デュエマ、ヴァンガ、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、旧ガンダム・ウォー、ライブオン、ディメンション・ゼロ、シャーマン・キング、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書け。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストしろ。
個vs個、多数乱戦、チームvsチーム、個vsチームを実現し、P2P通信対戦プラグイン有り。

設計思想は 《 RPGツクール 》 が良いかな?  他に、優れたエディター有ったら挙げてみろ。

個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。

エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。

遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
バトスピ、ヴァンガ、デュエマなど発売済みゲームソフトが存在してるTCGはベンダーに研究させる。

各社TCGを再現するテストプレイ ⇒ 更に改良や修正 + コード記述の仕様書(設計書)を作成。

機能制限した下位版を制作しても原則として発売せず + 上位版デュエリ−グ用でサーバー稼動。

下位版を仮に発売した場合の改造および商用利用には、別途で当社との契約が必要。

さ〜て、インド人ベンダーと日本人の翻訳担当SEを見つけよっと!ww
http://wc2014.2ch.net/test/read.cgi/entrance2/1451262577/-16

699デフォルトの名無しさん2016/01/10(日) 13:12:39.79ID:/ndDSiBm
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

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

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

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

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

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

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

電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない

700デフォルトの名無しさん2016/01/11(月) 07:33:36.74ID:+0r+kZff
>>685
funcX(){
funcAB()
funcC()
}

funcAB(){
if
A
else
B
retuen
}

funcC(){
C
}

ってことなんじゃねーの。funcCが、funcABの動作に影響しないんであれば、
テストパターンは減らないけど、テストパターンごとの確認観点が減るんじゃない?

701デフォルトの名無しさん2016/01/11(月) 17:12:25.34ID:L4NGHVvd
ABとCが常にセットにして呼ばれる仕様だとしたら、
関数が増えて見通しが悪くなるだけな気がするけど
ユニットテスト利用する場合ってこうするほうがいいの?

702デフォルトの名無しさん2016/01/11(月) 17:25:55.13ID:WtkSn+b8
ソースコード見て問題なければテストする必要ないと思うの

703デフォルトの名無しさん2016/01/11(月) 17:50:15.50ID:d9M93+6h
完璧なプログラムを書けばテストは必要ない。
テストに頼るのは甘え。

704デフォルトの名無しさん2016/01/11(月) 18:22:50.45ID:zdgy9eHJ
プログラムが完璧でもコンパイラがバグっていて間違った実行ファイルができることもよくある

705デフォルトの名無しさん2016/01/11(月) 18:24:53.18ID:I0GTrlSH
>>703
ほんそれ

706デフォルトの名無しさん2016/01/11(月) 22:08:07.48ID:c8FGpC/F
プログラム通りにペリフェラルが動くと思ったら大間違いだ

707デフォルトの名無しさん2016/01/12(火) 01:19:44.32ID:j5pK34T9
コンパイラのバグは稀たが、スペックシートのミスは日常茶飯事

708デフォルトの名無しさん2016/01/12(火) 01:21:08.98ID:j5pK34T9
ていうか、>>703 はネタだろ?

709デフォルトの名無しさん2016/01/12(火) 06:24:29.22ID:HCPDci+P
バグをバグと認めない鉄の心こそ必要

710デフォルトの名無しさん2016/01/12(火) 07:53:31.84ID:fdNSnT90
16bit系組み込みCで
配列の要素数が16bitに制限されるのを
無視したコード渡されてバグってた事あるな
コンパイラからの警告一切無し

711デフォルトの名無しさん2016/01/12(火) 08:05:23.03ID:fZplAbze
配列の添字が汎用レジスタのサイズ(≒int)の範囲に制限されるのは仕方ない
でもまともなコンパイラなら制限事項として明記してある

712デフォルトの名無しさん2016/01/12(火) 23:54:28.42ID:iltzJQ7p
そんなの8086で散々経験しただろ

713デフォルトの名無しさん2016/01/13(水) 11:46:55.82ID:1mKhW0n4
>>710
要素が16bit 越えるって、どんなソフトなんだ?

714デフォルトの名無しさん2016/01/13(水) 11:49:06.21ID:O1+6xUWF
型がByteだとして
65536Byte=64KByte

組み込みだとしても十分ありうる

715デフォルトの名無しさん2016/01/13(水) 12:18:23.73ID:1mKhW0n4
>>714
それだけ大きくなったら、普通ポインタとか使うだろ?

716デフォルトの名無しさん2016/01/13(水) 18:12:49.86ID:yX2Is5Iq
気付かずに配列使ってたって事だろ。

717デフォルトの名無しさん2016/01/13(水) 18:16:44.87ID:4t9WgEvh
組み込みなら標準ライブラリがないとか
ヒープがないとか普通だからな

718デフォルトの名無しさん2016/01/13(水) 18:21:42.41ID:IMboGSkT
>>715
ROMに大きなテーブルだと配列使うでしょ

719デフォルトの名無しさん2016/01/13(水) 18:29:02.62ID:IMboGSkT
>>717
Cの標準ライブラリが無いってことは最近では非常にマレ
ROM容量の関係で使えないことはある
これを無いって言うなら無い
デカいのはprintfとか
あとはfloat, double, long longもROM容量の関係で使えないことも

720デフォルトの名無しさん2016/01/13(水) 18:32:38.56ID:IMboGSkT
標準ライブラリを使うのをためらうくらいの規模なら、当然ヒープも使わない
当然OSレスで、シングルタスク+割り込みのみ

もっと小さく、時計レベルのコードになると、そもそもコンパイラを使わない

721デフォルトの名無しさん2016/01/13(水) 20:04:23.38ID:AxNHdrPg
>>719
printf使えなかったらデバッグできないじゃん!

722デフォルトの名無しさん2016/01/13(水) 21:23:08.94ID:VbVWsLR9
>>721
リアルタイム性が不要ならICE(デバッガ)が使える
動かしながら変数の読み書きが出来るヤツもある

原始的なのだとポートを上げ下げしてオシロスコープで見るとか、LEDを点灯したりとか

723デフォルトの名無しさん2016/01/13(水) 21:43:03.90ID:XS8ewNNM
>>722
ちげーだろ?
そこはputs使ってるだろ。
見栄はらなくていいよw

724デフォルトの名無しさん2016/01/13(水) 21:57:55.85ID:A49t3q/a
そもそもデバッグなどしない!

725デフォルトの名無しさん2016/01/13(水) 21:58:56.38ID:AxNHdrPg
>>722
すごい世界

726デフォルトの名無しさん2016/01/13(水) 21:59:40.92ID:4t9WgEvh
putsどころかそもそも標準入出力ないからな
汎用ポートの空いてるピン使うか
JTAG使ってICEか計測器繋ぐかだな

727デフォルトの名無しさん2016/01/14(木) 00:14:52.76ID:gzbByfkM
>>726
真っ先に、シリアル入出力とprintfもどきを作るのはデフォだろ?

728デフォルトの名無しさん2016/01/14(木) 00:28:34.09ID:qww60aj8
組み込みは感心する反面潰しきかないのがなんとも言えねぇ
組み込みは程々にした方がいいぞ

729デフォルトの名無しさん2016/01/14(木) 00:37:39.18ID:Xzg+p3Xe
シリアル入出力はよく使うけど、....
規模が小さいとデバッグ用だけにわざわざシリアルドライバを書かなかったり
そもそもシリアル用ハードが無かったり使えなかったり

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

まあ物によってデバッグ方法もいろいろ

730デフォルトの名無しさん2016/01/14(木) 04:32:02.23ID:fK8eMzuy
どんな低速でもソフトUARTぐらい作れるだろ
ドライバって程かよアホが

731デフォルトの名無しさん2016/01/14(木) 15:09:22.15ID:h8CGsofL
低速マイコンでRAMも使わずにCPUも占有せず、場合によってはポートも使わないでソフトUARTか
頑張って作ってね

732デフォルトの名無しさん2016/01/14(木) 15:12:47.78ID:h8CGsofL
8pinマイコンとかしらないのかな?

733デフォルトの名無しさん2016/01/14(木) 20:34:54.74ID:1Js/RlWK
>>730
割り込み禁止にしてCPUサイクルでクロック作るのか
タイマ割り込み駆使してクロック作るのか
どっち?

734デフォルトの名無しさん2016/01/14(木) 20:44:59.00ID:Xzg+p3Xe
もう一個位は方法があるけど...
まあ普通はそんなことはせずもっと普通の方法を使う

スローCPU、RAM使えず、ピンが足りない、パフォーマンスがシビア
とかだと使えないし

735デフォルトの名無しさん2016/01/14(木) 20:46:17.30ID:Xzg+p3Xe
自分の主張を通す為に手段はどうでも良くなってるカワイソウな人は放っておこう

736デフォルトの名無しさん2016/01/14(木) 21:41:12.92ID:fK8eMzuy
なんでマイコン1個でやろうとすんだよ
そんな後付け条件出すなら信号垂れ流し用と信号待ち受け兼UART出力用のマイコン2つ使えばいいだろアホが

737デフォルトの名無しさん2016/01/14(木) 21:47:03.21ID:fK8eMzuy
>>732
AVRやLPC810とかなら知ってるけど?
つーか米粒の6ピンすらソフトで全二重UARTぐらい実装できるだろ
アホが

738デフォルトの名無しさん2016/01/14(木) 21:56:18.73ID:fK8eMzuy
>>733
ソフトUARTつても実装は色々あるからな
その全部かな
つーかアホはオシロやロジアナも使えないのか

739デフォルトの名無しさん2016/01/14(木) 22:09:04.91ID:Xzg+p3Xe
>>736
いや、マイコンの規模によって、いろんなデバッグ方法があるって話だが

デバッグ用にわざわざマイコンを積むのか?
金をかけて
組み込みはコストが非常に重要だったりサイズが非常に重要だったりするんだけど
で、複数マイコンを積んだとして、マイコン間の通信はどうする?
デバッグじゃなくてシリアル通信が目的になってないか?

740デフォルトの名無しさん2016/01/14(木) 22:11:41.02ID:fK8eMzuy
>>739
UART云々はシリアルでやるって流れから書いただけだよ
文脈読めアホが

741デフォルトの名無しさん2016/01/14(木) 22:21:14.63ID:fK8eMzuy
というか組み込みでデバッグ大変だわーで釣ってる奴が気に入らないわ
肝心なコアをMSに握られてるWindowsアプリのデバッグ考えるとただの愚痴にしか見えないんだわ

742デフォルトの名無しさん2016/01/14(木) 22:27:51.95ID:Xzg+p3Xe
>>740
あり得ないデバッグ方法を突然書き出したお前が全て悪い

743デフォルトの名無しさん2016/01/14(木) 22:38:04.92ID:fK8eMzuy
>>742
誰が悪って言うならデバッグ方法いろいろとか書いといて具体的な方法は何一つ提示しないアホが悪いなんじゃないの?
組み込みはこういう口ばっかの奴が多くてうざいわほんと

744デフォルトの名無しさん2016/01/14(木) 22:39:25.50ID:Xzg+p3Xe
は??
具体的な方法はいくつも書いただろうが
日本語が読めない?

745デフォルトの名無しさん2016/01/14(木) 22:39:57.75ID:Xzg+p3Xe
>>721

746デフォルトの名無しさん2016/01/14(木) 22:40:31.37ID:fK8eMzuy
そういやここ絶望的なコードのスレなんだが
そもそも組み込みで絶望的な事なんてあるか?
作った品が売れないとかか?

747デフォルトの名無しさん2016/01/14(木) 22:40:32.18ID:Xzg+p3Xe
あ、間違った
>>722

748デフォルトの名無しさん2016/01/14(木) 22:43:01.11ID:fK8eMzuy
>>745
>>721は別のIDだしお前の発言かなんてわかんねーよ
ID:Xzg+p3Xeで具体的なこと何も書いてねーなーってことだよ
IDも判らないアホだって言いたいのか?

749デフォルトの名無しさん2016/01/14(木) 22:43:56.17ID:Xzg+p3Xe
>>746
いくらでもある
組み込みも規模はいろいろ
時計や簡単なオモチャレベルからWindowsを積んだようなものまで

750デフォルトの名無しさん2016/01/14(木) 22:44:35.38ID:fK8eMzuy
>>747
>>722も違うIDだろ
もうアンカーはいいから自分の口で説明してみ?

751デフォルトの名無しさん2016/01/14(木) 22:45:24.42ID:Xzg+p3Xe
>>722 はおれだ
俺の言葉で書いたレス
証拠はないが

752デフォルトの名無しさん2016/01/14(木) 22:46:09.80ID:fK8eMzuy
>いろいろある
>いくらでもある
吹いた
組み込み業界はこんなんばかりでまさに絶望的だな!

753デフォルトの名無しさん2016/01/14(木) 22:46:34.02ID:Xzg+p3Xe
なんか知らんが、そのあと無理やりUARTでデバッグする書き込みが続いた

754デフォルトの名無しさん2016/01/14(木) 22:48:44.71ID:fK8eMzuy
じゃあ>>726にレスした>>727が悪い

755デフォルトの名無しさん2016/01/14(木) 22:49:40.13ID:Xzg+p3Xe
組み込みを知らないのに知ったかぶって >>730 を書いたのか
出来もしないのに

756デフォルトの名無しさん2016/01/14(木) 22:50:03.06ID:fK8eMzuy
組み込みって一人で何でもやるような商売だから
人とのコミュ力が試されるなー

757デフォルトの名無しさん2016/01/14(木) 22:51:11.33ID:Xzg+p3Xe
>>727 があまりにトンチンカンだからつい >>729 を書いたんだ

758デフォルトの名無しさん2016/01/14(木) 22:52:40.56ID:y5xIxK0W
なんでわざわざUART使うんだよ
普通JTAGとかLFASTとか使うだろ

759デフォルトの名無しさん2016/01/14(木) 22:52:42.42ID:Xzg+p3Xe
>>756
いや、だから組み込みにもいろんな規模のがあるんだって

760デフォルトの名無しさん2016/01/14(木) 22:58:47.53ID:Xzg+p3Xe
>>758
わざわざUARTを使う理由はいろいろある
UARTを使わない理由もいろいろある

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

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

デバッガはデバッガで便利だが、シリアルデバッグもいろいろと便利

761デフォルトの名無しさん2016/01/14(木) 23:00:29.70ID:y5xIxK0W
まあ>>726は俺なんだけど
>>727に言いたいのは
printfもどき作る暇があったらICE使ってステップ実行した方が効率的だってこと

762デフォルトの名無しさん2016/01/14(木) 23:01:56.96ID:si8G2R6b
いちいち止めて、デバッグとかできないのもあるのよ

763デフォルトの名無しさん2016/01/14(木) 23:13:33.49ID:y5xIxK0W
こういうこと言うのもアレだけど
JTAGとかLFASTがシリアルじゃないとでも?
プログラムトレースとかデータトレースはリアルタイムで吐かせようよ
どうせ周辺のIPが勝手にやっといてくれるんだし
ログっておいて後でデバッガで再生すりゃいいんだからさ

764デフォルトの名無しさん2016/01/14(木) 23:35:06.08ID:si8G2R6b
膨大かもしれないログ追えるんだ
すごいな〜〜〜〜〜

765デフォルトの名無しさん2016/01/15(金) 00:04:58.75ID:zaUY/8Xo
>>764
なんで追えないの?
検索機能とか知らないの?

膨大なログを出すだけの実行コード行を
ステップで一行一行実行していく気?w

766デフォルトの名無しさん2016/01/15(金) 01:06:14.87ID:9kMRmw2b
天災さんが降臨されてたんですね
失礼しました

767デフォルトの名無しさん2016/01/15(金) 08:33:23.10ID:3+jxxZHF
膨大と言ってもせいぜい数百MB程度だから検索できない訳がない
printf使ったって結果はファイルにリダイレクトするだろ
同じようなもんだ

768デフォルトの名無しさん2016/01/15(金) 11:05:47.01ID:qP185FEX
       ロギング

  ∧_∧          __
 ( ・∀・)         | i \ \
 ( U U          | i  l =l
 と_)_) ____     | |__ノ  ノ
       | i(;;)H|   | ̄ ̄| ̄ ̄|

769デフォルトの名無しさん2016/01/15(金) 12:53:25.95ID:0fhpXD7V
>>764
追えるようにログを吐くんだよ

770デフォルトの名無しさん2016/01/15(金) 12:55:53.08ID:0fhpXD7V
そもそも、小さいマイコンじゃそんなに多量には吐けない

ブロッキングだと動作速度が大きく変わり
ノンブロッキングだと間引かれる

771デフォルトの名無しさん2016/01/15(金) 13:43:20.23ID:zaUY/8Xo
なんでノンブロッキングだと間引かれるんだよw

772デフォルトの名無しさん2016/01/15(金) 18:16:06.18ID:9X5/eWgr
小さいマイコンはバッファを大きく取る余裕がないから

773デフォルトの名無しさん2016/01/15(金) 18:16:55.68ID:9X5/eWgr
いっぱい出せばすぐにあふれる

774デフォルトの名無しさん2016/01/16(土) 14:50:47.80ID:OsKsEu35
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

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

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

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

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

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

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

電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない

775デフォルトの名無しさん2016/01/16(土) 18:22:51.71ID:wGXFO9/q
社員として使えないなら切れ
使えるなら我慢しろ

776デフォルトの名無しさん2016/01/16(土) 18:23:39.03ID:wGXFO9/q
せんべいはおれも食べる
ダメ?

7777772016/01/16(土) 18:26:19.06ID:XWGZA0lu
777げっち(´・ω・`)b

778デフォルトの名無しさん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的に分散され、特定のサーバーに依存しません

779デフォルトの名無しさん2016/05/01(日) 12:38:30.64ID:5H9PV7Hp
死ねカス

780デフォルトの名無しさん2016/05/01(日) 18:06:50.36ID:XA7YY+e1
>>778
絶望的なコードの紹介?

781デフォルトの名無しさん2016/05/02(月) 16:33:40.01ID:aR8AOrvI
今までみたことのない糞レス

782デフォルトの名無しさん2016/05/22(日) 02:09:26.70ID:PykTFw3U
変数名 data

783デフォルトの名無しさん2016/05/22(日) 12:11:03.96ID:hKJLLsJo
凝集度をあげてほしい

784デフォルトの名無しさん2016/06/02(木) 23:05:04.71ID:ZNUdZI3k
&hearts;

785デフォルトの名無しさん2016/06/03(金) 12:08:02.65ID:cGjwwdHV
Enumを文字列のコード値にswitch文で変換して、それをswitch文で別のEnumに変換する
ってのがいろんな所に書いてあった

786デフォルトの名無しさん2016/06/05(日) 02:49:12.74ID:b0qHmmcL
いまどき変数名が衝突して不具合を生じてたとか馬鹿な報告を上げてくる下請け

787デフォルトの名無しさん2016/06/05(日) 12:52:01.08ID:sTpf+U42
>>786
釣りかもしれんが
納品検収テストで見つけられない発注元の方に絶望するわ

788デフォルトの名無しさん2016/06/05(日) 13:12:06.06ID:OYIyvlQD
国や公務員からしてそんなことやってるから三菱になめられるんだよ

789デフォルトの名無しさん2016/06/06(月) 05:03:16.22ID:QbKl1YZH
>>787
納品前の結合環境のバグだよ
まともなフェーズ管理のある環境で働いたことのないガキは引っ込んでろ

790デフォルトの名無しさん2016/06/21(火) 23:08:20.65ID:GMAXhxXB
>>782
使い所によるのでは?

791デフォルトの名無しさん2016/06/22(水) 08:46:39.65ID:MtYOmoik
「datas」って英語圏でも使ってるの見るね。間違いではないのかな?

792デフォルトの名無しさん2016/06/22(水) 09:59:00.26ID:t1NluOvj
int a[10];
int b[10];
int c[10];

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

信じるか信じないかはあなた次第

793デフォルトの名無しさん2016/06/22(水) 11:15:52.48ID:DmPvlaR4
datumなんて見たことすらないしな

794デフォルトの名無しさん2016/06/22(水) 11:55:36.82ID:yBOVYSwe
datumは見たことあるな
miceとかも見たことあるな

795デフォルトの名無しさん2016/06/22(水) 21:58:10.88ID:aSQEHncx
indicesを最近まで知らずにindexesって書いてたわ

796デフォルトの名無しさん2016/06/23(木) 11:49:21.94ID:332nxUAD
railsみたいにそういうの判っててindexesにしてるケースもある

797デフォルトの名無しさん2016/07/04(月) 21:58:16.57ID:0RWmorvn
2400bpsの通信速度のコンソールに9600bpsの通信回線の通信ログを吐き出すプログラム

798デフォルトの名無しさん2016/07/05(火) 23:20:03.68ID:kKcHGrML
んー、ちょっとスレの趣旨と違うかな。

799デフォルトの名無しさん2016/07/12(火) 09:09:02.35ID:GUx/gdNo
C#で、糞長いメソッド内の処理を、意味のある単位にregionで囲ってるの見ると、切り出したくてムラムラする。

800デフォルトの名無しさん2016/07/12(火) 12:22:44.71ID:DRheqrQu
担当が逃げて押し付けられた、こんなコードに責任は持ちたくない
でも読まなきゃいけない読めなきゃいけない…
その妥協点がregionなのさ

801デフォルトの名無しさん2016/07/13(水) 22:27:12.90ID:cbsCrAwe
読まずに保守するテクニックを身につけないと辛いよ

802デフォルトの名無しさん2016/07/15(金) 09:11:47.85ID:RfCrCFKv
ドキュメンテーションコメントに嘘書くのやめろよ!
嘘になっちゃうような修正をするなら、コメントもちゃんと見直してくれや

803デフォルトの名無しさん2016/07/31(日) 13:48:17.71ID:kJ3Jsux+
forの中が1000行以上・・・

804デフォルトの名無しさん2016/08/29(月) 07:53:30.56ID:7JUajOeD
仕事でFORTRAN77の年代物の科学技術計算コードを最適化(並列化含)したことあるんだがあれはひどかった。

この世の糞が全て詰まってたコードだった。誇張抜きで

805デフォルトの名無しさん2016/09/01(木) 16:00:38.67ID:G1V/juoY
#regionて、IDEで見る以外に意味ないんだよね?

806デフォルトの名無しさん2016/12/08(木) 09:16:13.50ID:FEYStmIt
c++のコード引き継いだら

#define private public

てのを見たことある。
逆に新鮮だった。

もちろんこの行は消した。

807デフォルトの名無しさん2016/12/09(金) 22:56:12.00ID:Pi2Dlq3z
>>806
unit test でもやってたんじゃね?

808デフォルトの名無しさん2016/12/22(木) 11:56:29.60ID:/ytrOsGa
>>807
何の弁明にもならん

809デフォルトの名無しさん2016/12/22(木) 12:31:28.47ID:mlmgTnRW
phpのecオープンソースmagento

810デフォルトの名無しさん2016/12/29(木) 21:32:42.78ID:P8hgWrsI
#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 +

811デフォルトの名無しさん2017/01/01(日) 19:19:04.92ID:HLv5dR03
https://code.hackerearth.com/7b7b82s
https://code.hackerearth.com/431130T
一生懸命に12時間もかかって書いたのにあまりウけませんでした

812デフォルトの名無しさん2017/01/01(日) 21:15:21.45ID:9MvoRZrQ
センスのかけらもない

813デフォルトの名無しさん2017/01/03(火) 18:26:56.42ID:kDLE0pJc
>>812
センスとはどういうことをさすの?

814デフォルトの名無しさん2017/01/04(水) 20:28:14.83ID:EyqoOVTu
エレガンス

815デフォルトの名無しさん2017/01/06(金) 12:03:13.07ID:Iab1DByP
>>813

816デフォルトの名無しさん2017/01/06(金) 12:11:20.90ID:5QBUIDnx
>>815
今ならクーラーではないか?

817デフォルトの名無しさん2017/01/06(金) 14:20:26.76ID:NYT/unlz
>>816
それはシロッコファン

818デフォルトの名無しさん2017/01/06(金) 15:24:21.81ID:XtKi9eaG
Your joke is not Coooool!!!

819デフォルトの名無しさん2017/02/06(月) 19:10:19.87ID:P0M4N+3Y

820デフォルトの名無しさん2017/02/07(火) 11:04:23.35ID:hm/AHdrI
情報エキスパートしか知らないのか、入門書を真に受けたのか
受注クラスに受注のすべてが書いてあった

821デフォルトの名無しさん2017/02/24(金) 06:22:47.09ID:8ATozeRB
// よくここで止まっていた(いつの間にか何故か解消しました)

822デフォルトの名無しさん2017/02/27(月) 12:20:37.06ID:GGu6vxcV
一年前の自分のコード

823 ◆QZaw55cn4c 2017/04/08(土) 18:56:00.33ID:O01wSTFq
>>822
それそれ
自分が書いたかどうかすら忘れて今っているので、今必死に読んでいるんだが、まるで人のコードを読んでいる気分だ

824デフォルトの名無しさん2017/05/06(土) 09:46:21.28ID:Xeh+WPsq
>>804 
シングルタスク(CPU1個)処理しか古い計算ソフトでは使えない。
並列化の描き方とは違う技術が必要。

逆に、当時のコンピューターに並列化したソースを読ませるとかなり遅くなる。

825デフォルトの名無しさん2017/05/06(土) 10:40:45.49ID:RxOQwEqu
いや保守運用を全く考えない使い捨てレベルの俺俺コードを保守させられたって話だろ
素人が描いたVBAに対する愚痴と大して変わらん

826デフォルトの名無しさん2017/05/24(水) 05:02:46.93ID:f/qUGphe
一年前の自分のソースを見たときの俺



    _ □□    _      ___、、、
  //_   [][]//   ,,-―''':::::::::::::::ヽヾヽ':::::/、  誰  書   こ
//  \\  //  /::::::::::::::::::::::::::::::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|

827デフォルトの名無しさん2017/05/25(木) 01:23:57.90ID:hLFywp3s
>>822
それは自分のスキルが上がったらそう思うんだよ(震え声)

828デフォルトの名無しさん2017/05/26(金) 15:58:13.06ID:IgcvauO6
まだ衰えを知らんと見える

新着レスの表示
レスを投稿する