2ちゃんねる★スマホ版★■掲示板に戻る■全部1-最新50

今までみた絶望的なソースコード [転載禁止]©2ch.net

1 :
デフォルトの名無しさん
2015/04/17(金) 23:00:30.63 ID: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.31 ID: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.52 ID:UDbFCugu
>>2
知ってる。
見ればわかるw
4 :
2015/04/17(金) 23:16:09.05 ID:2QruBEl7
最強は迷路のような循環参照だろ
5 :
2015/04/17(金) 23:20:08.61 ID:eE8aPdvb
言語の構文はわずかに例外が有るにしろ、
コードをシンプルで分かりやすく書くことが出来るように
作られたもので、バージョンが上がると追加される機能っていうのは
それを更に良くするもの。

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

もっと最悪なのが、俺がこれ以上勉強したくないから
他の人も使うの禁止!と言い出すリーダー。
6 :
2015/04/17(金) 23:26:55.79 ID:ooZObC6M
>>2
かなり事実じゃね?
7 :
2015/04/17(金) 23:29:30.64 ID:eE8aPdvb
>>6
クソスレたてるな
8 :
2015/04/18(土) 00:50:42.52 ID:dyiDxr2Z
たしかに見に覚えがあるがプログラム書いてて一番楽しい時期でもある
9 :
2015/04/18(土) 11:31:06.97 ID:rVGwSU9K
確かに2の通りだな
俺が見た絶望は、15全下の種類を持つフラグ変数が5つある奴だな
相互に挙動が干渉し、中で呼び出しが積まれたあとに突然最初のエントリーポイントを再帰しやがった
10 :
デフォルトの名無しさん
2015/04/19(日) 13:46:48.22 ID:ESsvP1kn
1000行を超えるswitchを見たときは痺れた
11 :
2015/04/19(日) 14:31:13.67 ID: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.22 ID:nqxUSETS
>>11
変数宣言先頭に書くな
たかだか7バイトmallocするな
ポインタのインクリメント使え
終端文字抜けてるぞ
13 :
2015/04/19(日) 14:54:48.57 ID:B0V38sso
>>12
終端ぬけてねーよ
よくみろはハゲ
14 :
2015/04/19(日) 14:59:17.52 ID:YPSI+AI0
     彡⌒ ミ
     (´・ω・彡⌒ ミ
   彡⌒ ミつ(´・ω・`) ))ハゲで何が悪い!!
(( (´・ω・`) ( つ  )
   ( つ  ヽ  とノ  
    〉 とノ )^(_)
   (__ノ⌒(_)
15 :
2015/04/19(日) 14:59:48.34 ID:nqxUSETS
>>13
マジだw

あと一個
charは一バイトでもsizeof使え
Unicode対応の時に泣く
出れば指定要素を指定数分だけメモリ確保する方があったはずだからあっちの方が安全
16 :
2015/04/19(日) 14:59:48.62 ID:yTHXbUfS
>>12
ネタにマジレスするバカ(笑)
ぬるぽ
って書いてるだけじゃん
17 :
デフォルトの名無しさん
2015/04/19(日) 15:01:51.42 ID:S//ZaxIU
>>11
ガッ
18 :
デフォルトの名無しさん
2015/04/19(日) 15:36:02.22 ID:oJmhIRRr
>>11
くだらねぇ
19 :
2015/04/19(日) 16:05:31.47 ID:dhzBOV6W
絶望的な人間が沸いてるな
20 :
デフォルトの名無しさん
2015/04/19(日) 16:12:46.60 ID:FgPTbLQc
なんだこのスレw
21 :
2015/04/19(日) 16:54:41.99 ID:H3AnyW4d
某一部上場企業で使われてる言語が日本語プログラミングのソースで吐きそうになったな
しかも1ファイル3万行とか普通にありやがるしそれこそ分岐しかしてねえ
22 :
デフォルトの名無しさん
2015/04/19(日) 17:04:27.02 ID:A/MgNyGP
日本語ブロクラミングって実務で使う場所あんのか!
需要なんて絶対無いと思ってたけどw
23 :
2015/04/19(日) 17:10:13.35 ID:H3AnyW4d
あるんだななこれがしかも日本でも半端ない規模の会社よw
中身はcobolを日本語でラップしたような感じで。
「a=1」 というのを 「aを1に代入」って感じで組んでいく。脳が腐ると思ったわ。
24 :
デフォルトの名無しさん
2015/04/19(日) 17:32:24.76 ID:A/MgNyGP
誰得だなw
当初は誰でも保守できるようにしたかったのだろうか?
結果誰も保守できなくなった的な?
25 :
2015/04/19(日) 17:53:27.13 ID:xPXQDkXX
英語がわからないから日本語で書くという
アプローチは200%失敗する。

あー、そういやコードから日本語の仕様書を
作り出すとか言うソフトがあったな。
ね? 見事に失敗したでしょ?
26 :
2015/04/19(日) 18:29:17.86 ID:dhzBOV6W
Interdevelop Desginerは売れたのか
売れたんなら買った企業の評判を聞いてみたいところ

今のところ俺はステップ実行設計書にご縁がない
幸せだ
27 :
2015/04/19(日) 19:04:55.40 ID:Rt7hjrl3
日本語プログラムじゃないけど、ruby で6000行のプログラムなら見た事がある。

オブジェクト指向?何それ?っていう感じのコードだったw
28 :
デフォルトの名無しさん
2015/04/20(月) 07:31:46.14 ID:l0+b2pIW
>>22
FileMakerで作られた信じられないくらい巨大な社内システムの
スクリプト部分が全部日本語だった。

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

いまでも絶賛稼働中
29 :
2015/04/20(月) 12:22:22.82 ID:Mmn5Ftfg
>>22
むしろ、日本語のほうが便利
変な先入観を捨てて使ってみるとわかる

どんな簡単なプログラムでも下手が作ればスパゲティ
30 :
2015/04/20(月) 12:48:14.68 ID:HTLIXLfD
などと下手糞が一丁前に語っちゃってます
31 :
2015/04/20(月) 13:47:35.36 ID:lH6fvovP
変数名が日本語ならまだわかるが、演算子まで日本語にしたらかえってわけわからん。
32 :
2015/04/20(月) 13:53:08.80 ID:SsAC3a+p
ガラパってるな
33 :
2015/04/20(月) 16:31:22.14 ID:EfJAKFWG
大企業に限ってソースはダメなテンプレだよ。1ファイル5万行に及ぶクソコードと
分岐ネスト&goto乱発の超絶スパゲッティで某携帯会社のシステムは稼働している。
この会社で働いてた時は一時期プログラミング出来なくなって鬱で休職したわ。俺の知ってるプログラミングじゃなかった。
34 :
2015/04/20(月) 18:40:19.36 ID:USn+NwOK
RoofRaised って何だと思って、長い時間をかけてヘッダーファイルを調べてみたら、ただの double だった、なんてことがよくあったでしょ。
大規模なプロジェクトのすべてのクラスで暗黙の typedef を見つけ出すのにどれくらい時間がかかると思う?
35 :
2015/04/21(火) 08:08:57.40 ID:cRXNE3Zt
>>34
ダブルだけに二段屋根?
36 :
2015/04/21(火) 08:34:59.52 ID:cJvjjAde
仕事選べない立場ってやっぱクズですね
同情します
37 :
2015/04/21(火) 10:01:54.00 ID:P8FOHws6
>>34
findとgrep組み合わせるだけで、どんなに大きな大規模プロジェクトでも
10分はかからないと思うが。馬鹿なの?
38 :
2015/04/21(火) 12:33:47.15 ID:5PzRDxP4
> 10分はかからないと思うが。馬鹿なの?
そんなにかかったらだめだろ。
せいぜい10秒程度だろ。

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

この程度で分レベルの時間がかかってしまったら
調べている間に、何してたんだっけ?ってなるよ。
思考を中断させる原因となってしまう。
39 :
デフォルトの名無しさん
2015/04/22(水) 20:53:51.72 ID:NZ8QzlQ5
☆ 日本の核ブ装は絶対に必須ですわ。☆
http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html

☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が
3分の2以上を超えると改憲が実現します。皆様方、必ず投票に自ら足を運んでください。
私たちの『日本国憲法』を絶対に改正しましょう。☆
40 :
2015/04/22(水) 22:45:32.37 ID:+mudGifq
増改築を繰り返せばどんなシステムでもスパゲティになる
41 :
2015/04/23(木) 14:29:59.79 ID:z8bFtkdX
>>38
それくらいで止まるとかw
42 :
2015/04/23(木) 16:20:02.46 ID:wgFAW8nP
お前たちは真の絶望を知らない
43 :
2015/04/24(金) 13:08:16.02 ID:E5oc/4Vu
昔だがUNIX C使いがMSDOS Cで作ったソフト
auto変数でサイズ10000バイトとか普通にやってる上に子プロセスも同じだから全見直し

もっと酷かったのがC言語で書かれた移動体の基地局側ファームウェア
処理毎に移動体の数だけフラグ分けとif文の羅列で設計から全見直し
44 :
2015/04/24(金) 14:39:36.66 ID:TFN7oaD8
>>43
その「auto変数でサイズ10000バイトとか普通にやってる」ところが
全部staticに直されていてスレッドで排他されていないコードも
みたことある。絶望的だ。
45 :
2015/04/26(日) 08:28:01.28 ID:pIcJs2te
シングルスレッドの組み込みなら常識的なコードだが
46 :
2015/04/26(日) 13:23:54.32 ID:3kjvd8px
昔のMSDOS環境はメモリ利用領域500KBほどだよ
stackでガバガバ取ったら、あっという間にエラーで落ちるからさw
47 :
2015/04/26(日) 16:19:44.76 ID:T8rMi6ps
ロートルの何の価値もないXMS講座が始まるからDOSの話は止めろ
48 :
2015/04/26(日) 16:40:53.05 ID:zBsfufMM
>>46
ほう。じゃあ今はガバガバの2000倍は
使わないといけないから、
あっという間の2000倍かかるなw
49 :
2015/04/26(日) 19:38:09.53 ID:3kjvd8px
>>48
環境を考慮できないお前みたいな馬鹿ならできんじゃねw
50 :
2015/04/29(水) 20:48:46.78 ID:zWk0Y6jT
んと、UNIXではmallocの領域とスタックの領域は重なった四角形の上辺と下辺から衝突する方向で成長する。
だから、どちらが大きな領域を取れるかというと対等であるのだけれど
ヒープの側はfreeした場合、管理領域に虫食い穴ができてしまう。
そうした事情があるので、仮想記憶領域をムダに成長させたくなければ
可能な限り大きなメモリーはスタックに確保したほうが合理的なの。
51 :
2015/04/29(水) 20:54:30.77 ID:ni+OWwPH
Windowsはスタックが1MBだったかな
52 :
2015/04/29(水) 21:02:54.96 ID:a9t0k9yT
>>50
UNIXはそうかもしれないけど、LinuxもBSDもWindowsも違うよ。
53 :
2015/04/29(水) 21:24:24.10 ID:zWk0Y6jT
>>52

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

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

になってるじゃん。
ヒープが非初期化領域の末端に来て、反対側からスタックが衝突方向
だからLinuxもやっぱりUNIXと同じモデル。
ユーザーランドから見た論理モデルは変わってないじゃん。
54 :
2015/04/29(水) 21:34:48.30 ID:a9t0k9yT
>>53
どこを見たのか知らないけど、違うよ。
55 :
2015/04/29(水) 21:45:11.23 ID:BTL1OO/O
そもそも実装依存過ぎて話にならねえ
56 :
2015/04/29(水) 22:01:22.35 ID:zWk0Y6jT
わかった今確認した。
カーネル2.6では
text, data, (moat?), heap, bss
になってる。
sbrk()にゼロを渡すと dataと heapの間の数値になるから
初期化データに対してヒープが衝突方向に成長し、
ヒープの後ろに非初期化データが続く。

ただ、ドキュメントによれば2.4ではUNIXと同じはず。
57 :
2015/04/29(水) 22:33:43.39 ID:jSKM1nC6
ほーん、で?いちいち書き込むなカス
58 :
2015/05/02(土) 14:37:22.70 ID:xD347L3p
>>28
正直な経験で言うと、社内システムを開発外注して業務改善てのがゆとりな神経だと思う。
成功した会社を一つたりとも見たことがない
59 :
2015/05/02(土) 14:43:12.43 ID:xD347L3p
switch分岐が5段連なった奴は絶望感が酷かったな
そのなかにたらたら転写、フラグ操作した上で、サブルーチンを呼び、サブルーチンでもまた分岐
調べると同じコードでフラグの設定値だけ違う

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

https://www.youtube.com/watch?v=0U15dDLipOw
61 :
2015/05/05(火) 22:49:52.71 ID:bz0m6DRq
CRubyでは、compile.c 内の、iseq_compile_each 関数で、
AST(抽象構文木)を、Ruby仮想マシン用の中間コードに、
コンパイルするのだが、

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

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

「Rubyのしくみ」という本を参照
62 :
2015/05/06(水) 04:06:56.31 ID:cCF2kAXu
rubyのソースが糞ってのは同意
中身見て驚いたわ
63 :
2015/05/06(水) 16:44:48.96 ID:+jUiP52g
変数の頭に$をつけなきゃならん言語は全てゴミ扱いでいいと思うの
というかC++以外滅びろ
64 :
2015/05/06(水) 17:23:42.32 ID:qhtEqerx
htmlとかも滅びてしまうが
65 :
聖マリアンナ医大病院20人資格取り消し
2015/05/10(日) 03:27:12.77 ID:d7SjFAGD
【海外】「さすが日本だな」 自衛隊の国産ヘリ「OH−1」の性能に外国人衝撃!! やはり日本は世界一だった【大和】

https://www.youtube.com/watch?v=kDfbXZZ15s4
66 :
デフォルトの名無しさん
2015/05/10(日) 11:59:03.70 ID:x043ivF3
#本当はうごかないはず
67 :
デフォルトの名無しさん
2015/05/14(木) 19:48:56.69 ID:KwWkhxua
行数が多すぎてコンパイルできない。
68 :
2015/05/14(木) 20:03:23.27 ID:I7g8lu0W
なんだそれ
69 :
2015/05/15(金) 19:31:56.50 ID:WZ+HCGJP
どうみても間違っているソースだな
明らかに昨日要件とは違う実装
数週間前に別のやつが触っているのに誰も申告しない

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

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

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

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

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

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

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

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

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

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

18:21:40.06 ID:UflOEuuo

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

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

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

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

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

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

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

濁してるのは、飛ぶ鳥の方じゃないですからw
117 :
デフォルトの名無しさん
2015/05/18(月) 06:44:46.92 ID:2t3/vjAH
飛ぶ鳥を落とすため、最高のライフルをご用意いたしました。
118 :
2015/05/18(月) 07:08:35.97 ID:hxINsIbc
>>114
ことわざ間違えるのは恥ずかしいから
119 :
デフォルトの名無しさん
2015/05/18(月) 12:17:01.94 ID: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.58 ID:ndOcmHbS
>>118
知って飛び去るのはよくないっていうことでは?逃げるが勝ちの方がふさわしいと思うが。
121 :
2015/05/18(月) 14:17:46.16 ID:oJXHJ+WI
122 :
2015/05/19(火) 20:48:19.66 ID:goeUU+n9
お前らが管理しているソースで一番古いのっていつ頃のソース?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

>>165
銀行だけとは言ってない
銀行(メガバン)ではって話だよ
167 :
デフォルトの名無しさん
2015/05/29(金) 21:35:12.07 ID:Wut4Rhve
>>166
たくさんシステムがあるのに皆無と言い切れるあなたさエスパーですか?
168 :
2015/05/29(金) 21:35:32.81 ID:AM+afDIM
ぐぐったらUFJが採用してたけど・・・
169 :
2015/05/29(金) 22:19:09.92 ID:H91kCqGL
>>166
アホが噛みつくからわざわざ滅多にって書いてるのに... w

>>168
ああ、すまん
Redhat Linux でしょ、一応サポートあるしね
と言うか IBM が zServevr で動作保証してるから
サポートのない OSS をベンダーが勝手に入れるのとは訳が違うよ
170 :
2015/05/29(金) 22:20:19.22 ID:H91kCqGL
アンカー間違えたわ
>>166>>167
171 :
2015/05/29(金) 22:30:12.86 ID:NC9x2l2n
>>169
> サポートのない OSS をベンダーが勝手に入れるのとは訳が違うよ

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

つまり短く言うとOSSは問題ない。
172 :
デフォルトの名無しさん
2015/05/29(金) 22:47:26.35 ID:Wut4Rhve
オープンソースがダメという理屈がわからん。
173 :
2015/05/29(金) 22:54:32.43 ID:XkG9lmPe
毟り取れるなら、そこからケツの毛まで毟り取ってやればいいじゃん
全部がOSSになったりしたら、その有り難みがなくなっちゃうよ
174 :
2015/05/29(金) 23:11:05.04 ID:2X83fotM
>>171
> サポートがある OSS をベンダーが説明してから入れるなら
> 何の問題もないでしょ?

うん

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

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

ソフト屋の浮世離れした常識は通用しないべ
176 :
2015/05/30(土) 04:53:30.49 ID:mWvJuAGp
実際の損害って、逸失利益とかも含まれるの?
含まれるとしたら太っ腹だな
177 :
2015/05/30(土) 09:56:32.74 ID:TSHvBVv0
契約次第に決まってんじゃん
仕事したことないのバレバレ
178 :
2015/05/30(土) 10:22:34.30 ID:nksCNU9d
よっぽどアホな企業とか特殊な場合でない限り、上限を契約の金額にするのは常識だと思うが
179 :
2015/05/30(土) 11:57:42.43 ID:BVpXxfcf
>>150
そうか?
ランプとかが流行ったが、所詮は安物買いの銭失いが大半
銀行はJSPばかりだよ
180 :
2015/05/30(土) 12:58:56.25 ID:mWvJuAGp
>>175でOSS使わない理由が損害補償なのかと思ったから
>>176って書いたんだけど、OSS全然関係なさそうだな
181 :
2015/05/30(土) 14:36:46.82 ID:ebcCMrL3
だって実態を知らないで
想像で言ってるだけだもん
見ればわかるよw
182 :
デフォルトの名無しさん
2015/05/30(土) 22:57:48.60 ID:ptIP/4nN
>>179
jspはWebサーバー、アプリケーションサーバー、OSが全部オープンソースの場合もあるが?
183 :
デフォルトの名無しさん
2015/05/30(土) 23:01:36.15 ID:ptIP/4nN
サポートがあるかどうかなんて格好だけってことも多いからな。

マイナーな機能だと、サポートに聞いても使い方すら分からないことなんてザラ。
184 :
2015/05/30(土) 23:08:00.65 ID:GbYkPqTc
コメントが無く、関数・変数の名前がいい加減な文字列操作関数
185 :
2015/05/31(日) 13:15:34.98 ID:aaI4+yOw
正規表現なら何をやりたいか、書いて欲しい。みんながみんな頭の中で正規表現できるとは限らんので。
186 :
2015/05/31(日) 15:41:07.63 ID:vCKs7HZr
>>182
どこの事例?

>>180
損害保証なんてまあ関係ない
そもそも国内でそんな事態になるケースなんて滅多にない
187 :
デフォルトの名無しさん
2015/05/31(日) 17:11:33.36 ID:nCZZum25
>>186
jspがなんだと思ってんだよ?
188 :
2015/05/31(日) 17:30:33.86 ID:vCKs7HZr
>>187
JSP が何かを知りたかったら Wikipedia でも見とけよ
189 :
デフォルトの名無しさん
2015/05/31(日) 17:38:39.32 ID:LTxgNM08
JSPだとむしろオープンソースと絡むぞ。

ASPと言っておけばいいものを。
190 :
2015/06/01(月) 19:42:40.39 ID:e+Q3qVuq
jsp?ずいぶんとダサいコードを書いてるのね。
191 :
2015/06/02(火) 21:01:27.10 ID:80AN9G/c
>>190
帯をパクるな。キモヲタってバレバレだぞw

関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間
http://www.amazon.co.jp/gp/product/4798043761
192 :
2015/06/02(火) 21:11:09.51 ID:y/vvSKhg
排水溝の髪の毛なんて持ってくんな
汚い
193 :
デフォルトの名無しさん
2015/06/03(水) 00:18:56.27 ID:fWOFbe2S
>>191
なかなかの低評価ですね。
194 :
東京女子医科大学病院プロポフォール大量投与
2015/06/08(月) 23:39:32.28 ID: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.52 ID:APmJNnuF
安楽死って、ただの自殺教唆。
196 :
2015/06/25(木) 08:29:08.25 ID:3LKwgapt
アングラ牧場?
197 :
2015/06/25(木) 08:34:36.81 ID:ni30MNzk
話題のニトリは絶望するほどじゃないけど面白い
198 :
2015/06/25(木) 14:09:47.98 ID:0TJc5kfL
俺もっと酷い所にいたことあるよ
こんなの修羅場でも何でもない(奴隷自慢

が始まると思っていたのにがっかりだぜお前ら
199 :
2015/06/29(月) 10:01:52.20 ID:uRgKjkQ2
そういうのはプログラマー板じゃね?
200 :
2015/06/29(月) 13:05:59.79 ID:ZG8WYZZ5
プログラ魔?(´・ω・`)
201 :
2015/06/29(月) 13:14:48.97 ID:QITtNM5B
プロ グラマー
202 :
2015/07/04(土) 21:24:58.98 ID:i6tiuRGk
スパゲッティでもなんでもない、超綺麗なコードなんだけど
引き継いだプロジェクトのソースファイルがすべて空だったことがあったな
203 :
2015/07/05(日) 00:11:02.21 ID:SYjfN7FW
>>202
「 不射之射 」ってやつかな?(すっとぼけ)
204 :
2015/07/18(土) 16:41:57.48 ID:Elmadk8a
他人の書いたソースを解析する時は
全部まとめて1ファイルにした方が検索で一発で飛べて分かりやすい
205 :
2015/07/18(土) 16:49:11.39 ID:ClZy0R3/
串刺し検索できないとか無能すぎる
206 :
2015/07/18(土) 17:07:50.05 ID:Elmadk8a
会社PCでメモ帳しか使えないからな
207 :
2015/07/18(土) 17:33:22.11 ID:ClZy0R3/
そんなPCでプログラミングするの?どんな糞企業だろうな
208 :
2015/07/18(土) 17:33:36.46 ID:kyfBrlqO
Windows なら findstr
Linux なら grep
209 :
2015/07/19(日) 15:10:05.90 ID:05eNFjFO
とりあえず話はソースをEclipse CDTにぶち込んでからだ
210 :
2015/07/19(日) 16:02:36.84 ID:A8XocGVA
メモリが足らなくてEclipseが起動しないでござる
211 :
2015/07/19(日) 17:15:04.84 ID:hehkSm21
emacs使えばいいんじゃね
それすら動かないならedでも使っとけ
212 :
2015/07/19(日) 17:51:34.68 ID:yGfbtuav
メモリ512MBのatomなんだすまない
213 :
2015/07/20(月) 07:30:50.84 ID:7UJk40NA
窓から投げ捨てろ
214 :
2015/07/20(月) 10:15:18.72 ID:gcbmkQzq
鯖用にいいだろ
512もあればnginx+MariaDBでwordpressでもできるでしょ
215 :
デフォルトの名無しさん
2015/07/23(木) 11:22:55.43 ID:Jym5rlVM
>>212
9800円のWindows8タブレットですら1GBは積んでる
216 :
2015/07/23(木) 13:25:18.90 ID:mmfWdiQl
atom で余分な部品をカットして省電力ならそれが正しい
217 :
2015/07/23(木) 13:44:48.25 ID:WUAvzM35
用途の選択ミス
218 :
2015/07/23(木) 22:37:03.81 ID:DlgtK7Z2
メモリ2GBの安タブにBTのキーボードとマウスを繋げりゃそこそこ使える
219 :
2015/07/24(金) 00:31:36.00 ID:epV3Dcoh
>>218
中古のNexus7にUbuntuいれてそれやると最強
220 :
2015/07/24(金) 07:28:40.25 ID:30gYvqyq
SDカード使える機種でオススメある?
221 :
2015/07/25(土) 10:07:29.97 ID:fFQ7wKxw
jQueryのソースが見ると吐気する。javascriptの方がよほど簡単と思えるのは子供の頃からプログラムしてるせい?
ほんとにあれノンプログラマは見て分かりやすいの?
222 :
2015/07/25(土) 11:53:37.22 ID:AbBoos+r
> jQuery(を使ったサイト)のソースが見ると吐気する。
> (プレーンな)javascriptの方がよほど簡単と思えるのは子供の頃からプログラムしてるせい?
> ほんとにあれノンプログラマは見て分かりやすいの?

で、あってる?
もちろんjQueryを持ち上げるための方便か
全体でせいぜい100行、かつテストなしのコード
しか書いたことがない人が言ってるんじゃないかな
数行で目的を注入するという目的に限れば確かに容易い
223 :
2015/07/25(土) 18:23:12.23 ID:A3Ss5+fR
ノンプログラマがまともにjQueryなんて使うの?
プログラマの俺はjQueryで助かってるけど
224 :
2015/07/25(土) 20:20:37.51 ID:Q65ZCebZ
>>221
病院に行ったほうがいいよw

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

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

良いプロジェクトの見本のようなもんなんだが。
225 :
デフォルトの名無しさん
2015/07/25(土) 20:54:47.06 ID:o6XQJ+h/
>>224
お前だろ病院行った方がいいのは。
誰がjqueryの中身の話なんてしてんだよ?
226 :
2015/07/25(土) 20:55:34.26 ID:paoVPCKX
jQueryのソースが見ると
jQueryのソースが見ると
jQueryのソースが見ると
jQueryのソースが見ると 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
227 :
2015/07/25(土) 20:57:56.19 ID:5BpE4UJW
構文の話してるのに何行あるかなんて始めて馬鹿じゃないの?
いきなり病院いったほうがいいとかキチガイでしょ?
228 :
2015/07/25(土) 21:02:26.92 ID:paoVPCKX
構文? jQueryはJavaScriptの構文そのまんまなんだが?

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

どこか変な構文でもあったか?
その構文を御前が知らないだけでは?
229 :
2015/07/25(土) 21:04:51.82 ID:M9EIeKKB
ソースコードのことより自分の日本語でも見直しとけってのスカタン
230 :
2015/07/25(土) 21:08:14.29 ID:M9EIeKKB
いや、失礼した
「子供の頃からプログラミングをしてるせい」(で言語能力が的に育たなかった)
って書いてあったね
231 :
2015/07/25(土) 21:09:32.45 ID:paoVPCKX
子供の頃の知識で止まってるんだろーなーw
どうせBASICだろう
232 :
デフォルトの名無しさん
2015/07/25(土) 21:16:42.87 ID:aUQYbDBF
質問主の言葉が足りないってのは分かるけどー、
読んだら分かるよねー。
いわゆる信者っていうの?
批判的なことに条件反射しちゃうんだよね。分かる分かるー
っていーかぁ、そもそもスレチだしw?
両方消えてw
233 :
2015/07/25(土) 21:20:01.43 ID:paoVPCKX
質問主の言葉が足りないんだろ。
それが全てだろ。
何言ってるんだか。
234 :
デフォルトの名無しさん
2015/07/25(土) 21:23:52.55 ID:aUQYbDBF
プログラマーって定義されてないと怒るよねwww
10言わなきゃわかんねーのかw小学生かwww
235 :
2015/07/25(土) 21:59:39.64 ID:paoVPCKX
>>234
言葉が足りないのなら補えばいいが、
言葉が間違ってるからな。

お前Underscore.jsのソースコード見たこと有る?
この質問に答えてみるといいよ。
236 :
2015/07/25(土) 23:47:54.23 ID:BtkcRlE5
用語じゃないけどさ、
前に似たようなjQuery信者が煽ってたのでソース読んだが、
同じ変数に別の意味の再代入とか平気でしててはっきり言って汚かったよ

ソースすべてを読んだわけではないが、その部分出したら綺麗とのたまってたね…
こういうのとは絶対一緒に仕事したくないわ
237 :
2015/07/25(土) 23:49:07.03 ID:BtkcRlE5
用語 -> 擁護
238 :
デフォルトの名無しさん
2015/07/25(土) 23:58:07.11 ID:o6XQJ+h/
>>235
>>222
が正しい文に直してくれているし、思い込みをしなければ、正しい意図を紐解けるというのはすでに立証されているんだがw

だから、質問がクソであり、それを思い込みで解釈したやつもクソだなと思うんだけど、俺にどう考えを直して欲しいのかなwww?
239 :
2015/07/26(日) 00:46:52.14 ID:Nu2ySp1+
webアプリの伝票を表示する画面のHTMLで、テーブルタグでエクセル方眼紙作ってあった
列とか必要以上に多くて無駄にセルの結合してあった
240 :
デフォルトの名無しさん
2015/07/26(日) 01:31:08.71 ID:Q7ZjjhPq
方眼紙便利なのに、なぜ方眼紙アプリが売っていないのか。
241 :
2015/07/26(日) 08:33:31.95 ID:Lmm8STAE
>>236
どのファイルだよ?
言ってみ。
242 :
2015/07/26(日) 14:59:14.63 ID: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.35 ID:p/433SX/
他も見たが、基本的に短い変数名ばかりだし、やっぱり読みにくいよ
決してvimほど汚くはないが、これを綺麗とか言っちゃうのは信者だけ
244 :
2015/07/26(日) 18:16:05.04 ID:7EBqSyeY
短い変数名だから読みにくいっていうのは
間違った考え方だな。

スコープが十分小さいなら
長い名前にする必要がない。
245 :
2015/07/26(日) 18:27:45.85 ID:7EBqSyeY
>>242
> bulkの型がめちゃくちゃ

なるほど。

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

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

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

このコードはそれをやってるんだよ。
246 :
2015/07/26(日) 18:57:52.47 ID:p/433SX/
>>245
反論の内容には同意するが、ほぼ無関係だな

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

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

何より、オーバーロードをしようが、通常は実装は汚くはならない
普通は最初に適切に分けるからな
247 :
2015/07/26(日) 19:06:24.32 ID:7EBqSyeY
> まず問題の変数は引数ではないので、根本的に間違えてる

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

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

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

コード短いんだし、直してみれば?
248 :
2015/07/26(日) 19:08:06.07 ID:7EBqSyeY
> JavaScriptにブロックはない。
一応訂正しておくか、ECMAScript5の範囲においてはだ。
249 :
2015/07/26(日) 19:33:15.94 ID:p/433SX/
>>247
>引数でないから間違えというのは短絡的だな。
>コード見ればわかるようにkey(引数)がnullかどうかによる処理だ
だから何なんだとしか
引数でないのだから、オーバーロードの実装のためという言い訳はできない
他の型を意図的に代入し、使い回した時点で汚い

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

なんか前絡んできた人と同じ人っぽいからもう止めるよ
不毛だし
250 :
2015/07/26(日) 19:49:23.12 ID:EHWerROz
bulkの使いまわしはコミットログを見たけど理由がよくわからん

先頭にvarを固めているのはhoistingを理解していたからだろう
251 :
2015/07/26(日) 20:21:13.01 ID:7EBqSyeY
>>249
ん? 帰れ帰れw
252 :
2015/07/26(日) 20:22:00.95 ID:7EBqSyeY
>>250
> 先頭にvarを固めているのはhoistingを理解していたからだろう

この人は、hoistingを理解できないんだろうねw
253 :
デフォルトの名無しさん
2015/07/26(日) 20:26:36.68 ID:k1EUM6QH
なんでJQueryの実装をそんなにマンセーしたいのか理解できない。
ライブラリなんて小規模で作るもんだから、読みやすさという基準は自分の主観で決めるもんだし。
後付けの解釈を止めろよ。
254 :
2015/07/26(日) 20:59:57.20 ID:7EBqSyeY
逆でしょ?
読みやすさという基準は自分の主観で決めるもんなのに
jQueryの実装をそんなに馬鹿にしたいのか理解できない。
255 :
2015/07/26(日) 21:26:25.41 ID:p/433SX/
>>250
hoistingはコード規約で予防しているという事かな?
それでも、宣言はブロックの先頭と制約するだけで十分な気がする
関数スコープに広げて宣言する理由がわからない
256 :
2015/07/26(日) 21:31:57.10 ID:p/433SX/
ああ、意味がわかった
関数スコープで使用していた上に、ブロック内でも使用した場合か
それならバグになる可能性あるな
257 :
2015/07/29(水) 01:58:34.13 ID:CRqVMe5R
やっぱVBの配列(0)で1要素あるってバグの元だろ
引継いだコード前任者が全員間違えたまま使ってて戦慄した
258 :
デフォルトの名無しさん
2015/07/29(水) 09:27:40.97 ID:7C0TLIvw
まあ、多い分にはいいんじゃないの?
行番号付きだった頃から配列は1要素を予備とすることが多かったからねー。
C とかから入ると気になるだろうけど。
自分も今は気になるけどw
259 :
2015/07/30(木) 11:48:36.63 ID:kCCSv6BW
DBに予備項目を作って空を保つのならわかるけど
配列の予備って意味若ランナー
260 :
2015/07/30(木) 21:27:47.71 ID:kTMnRdAz
配列変数を空の状態またはその逆にするのが面倒なので0番目は使わずに取っておく
261 :
2015/07/31(金) 16:17:53.20 ID:Dkg4afbG
動的配列の扱いが内蔵とVariantに代入する配列(Variant配列ではなく)で挙動が違うから
Variantで統一するとvbsと扱い同じにできて捗る
262 :
2015/07/31(金) 21:11:17.11 ID:D+nD3a7O
絶望的なプログラマたち
263 :
2015/07/31(金) 21:48:20.19 ID:17HtGFaS
main(){
int* p=1;
...
264 :
2015/08/01(土) 14:23:13.10 ID:aojbSuUF
*(int*)0=0;
265 :
2015/08/01(土) 14:44:38.33 ID:zTfC3ItF
printf("AとBの積は593です");
もうアホかとなんのためのCなんだか
266 :
2015/08/01(土) 19:29:40.69 ID:KBiDhOrm
593 は素数なんだが‥
267 :
2015/08/01(土) 21:31:08.62 ID:cZ9y3hcR
そうすっうすね。
268 :
2015/08/01(土) 21:39:39.36 ID:5DNs6h6K
1*593
269 :
2015/08/01(土) 22:19:25.72 ID:zTfC3ItF
>>266
掛け算作ってみろって言ったらこれが出てきた
270 :
デフォルトの名無しさん
2015/08/02(日) 00:25:01.79 ID:2p0cp8/y
>>269
最適化出来てる
100点
271 :
2015/08/02(日) 01:45:42.48 ID:MF9TQU9s
掛け算作ってみろってのもおかしな物言いだな
そんなコミュ力だからおかしな物が出てくる
272 :
2015/08/02(日) 02:10:40.49 ID:u7Ju2wRn
>>270
あれだと最適化しないコード作るほうが頭いるだろ
一文字づつあたらしいプロセス作って動かしてくとか?
273 :
2015/08/02(日) 07:33:48.36 ID:AHQOj1TU
>>269
模範解答じゃん
274 :
2015/08/02(日) 17:23:58.64 ID:MF9TQU9s
絶望って程でもない
275 :
2015/08/02(日) 18:37:05.66 ID:sH3CMGQ2
無駄な計算してないとか優秀賞だな
276 :
2015/08/31(月) 12:38:09.95 ID:B5sJg2ZW
>>12
なんで先頭じゃダメなの?
蟹飯本では当たり前のように先頭でまとめて宣言してるからそれに倣って先頭で宣言してるけど
277 :
2015/08/31(月) 13:10:34.00 ID:KuTL4jkJ
>>276
変数は使用する直前で初期化して使うべきだから
初期化と宣言が別だと必ず未初期化で使うバグが出る
また関数が長く分岐が多くなると初期化されてるか判断が難しくなる
変数のスコープは小さければ小さいほどいい
関数先頭に宣言するのは昔のC言語の制約だったと記憶してるが今は上記理由からやめるべき
278 :
2015/08/31(月) 15:56:13.40 ID:UXpAKMEr
>>277
なるほどサンクス
279 :
2015/09/01(火) 20:57:53.90 ID:D3JacxmQ
>>277
どこの説?
280 :
2015/09/12(土) 03:17:33.09 ID:k25bT+vJ
for ループから条件でgotoでforの外に飛んで帰ってもこないプログラム
281 :
デフォルトの名無しさん
2015/09/12(土) 04:01:54.66 ID:XAqQ9sMD
それ普通ですが
breakがまさにそういう動作だし、breakはgotoの一種と言われているわけだが
二重のforを一気に抜けるのにgoto使うとか普通のテクニック
return出来るならそっちのがいいけど

むしろforからgotoで抜けてまたgotoで戻ってくる方が恐ろしいが
そういうサブルーチン的な動作にgoto使われるとかなり鬱陶しいし
それでgotoが禁止されたわけだが
282 :
2015/09/12(土) 08:00:00.87 ID:TErXHjBS
for使ってるの?甘いね
プロは全部gotoしか使わないよ
283 :
2015/09/12(土) 09:09:13.39 ID:lTmP7o65
柔軟に環境に合わせられるのがプロ
284 :
デフォルトの名無しさん
2015/09/12(土) 09:59:18.43 ID:o99yCw3m
真のプロには、製品の方が合わせてくる。

企画原案に意見を求められるし、監修を頼まれる。
285 :
2015/09/12(土) 10:01:01.89 ID:/tgR015i
>>284
それで真のプロのプログラマだと
どうなるわけ?
286 :
デフォルトの名無しさん
2015/09/12(土) 10:11:11.52 ID:o99yCw3m
>>285
その問題については既に解いてあるんだが、2chは数式を張り付けられないからなあ。
287 :
2015/09/12(土) 10:11:50.87 ID:/tgR015i
>>286
つまり解いてないってことかw
288 :
2015/09/12(土) 10:56:04.07 ID:8SKz5ytR
289 :
2015/09/12(土) 11:30:03.64 ID:LQnjc3KY
一休「虎が屏風から出てくれば捕まえられるのにな〜ああ〜残念だなあ〜」
将軍「出したよ」
って状況?
290 :
2015/09/12(土) 11:38:50.74 ID:Xol1TNVu
>>285
達人ともなれば、むしろタンスが小指に恐れをなし、というアレだよ。
291 :
2015/09/12(土) 12:07:10.77 ID:1pxDFhfx
>>286
zipでくれ
292 :
2015/09/12(土) 18:16:31.99 ID:8SKz5ytR
293 :
2015/09/12(土) 22:51:55.44 ID:QkMrh2wn
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

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

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

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

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

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

奴の作ったスクリプトとプログラムは使えない
バグりすぎ
294 :
2015/09/13(日) 00:10:23.04 ID:xBi8Z0XU
ストレス貯まるなそれは
295 :
デフォルトの名無しさん
2015/10/16(金) 11:13:43.44 ID:MgVZXFFO
結論:そんな奴はいない
296 :
デフォルトの名無しさん
2015/10/17(土) 10:29:18.04 ID:y7npm2M7
コメントが一切なくて、ものすこく複雑な処理をやっている。
297 :
2015/10/18(日) 01:32:01.64 ID:dIyeGV/1
ものすごく」の程度は人によるからなあ
複雑そうに見えてイディオム使ってるだけのもあるし
自動生成された物を見て複雑だなあって思ってる場合もあるし
298 :
2015/10/18(日) 08:42:48.35 ID:hNO3eRm0
他人のコード見てコメント無いだの少ないだの騒ぐ奴
本人はクソポエムみたいなコメント書く上にコメントの整備はしないし何がしたいのやら
299 :
2015/10/18(日) 22:58:23.93 ID:1iLNdMOK
>>298
お前の環境にはそんな奴しか居ないってだけ。
300 :
2015/10/19(月) 03:05:21.12 ID:KzhVhXFy
更新履歴すら書くの忘れる
面倒というレベルじゃなく、忘れる
301 :
2015/10/19(月) 12:29:11.07 ID:rwl2uo8/
ああー俺もコメントポエム書きてえぇーーー
本当はポエマーなんだよな俺
俺だってソースにポエム埋め込みてーんだよ!
302 :
2015/10/19(月) 13:51:30.68 ID:taFAn/tB
>>300
最近思うが、更新履歴、コメントはいらないと思う。
その代わりバージョン管理だけは、キッチリ機械的にやって欲しい。

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

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

更新履歴、コメントは百害あって一利無しだと思う。
303 :
2015/10/20(火) 10:03:44.13 ID:ty6VD2oQ
>>298
うちにも居るわ、コメント赤ペン先生
304 :
2015/10/20(火) 15:31:58.74 ID:mXSv7y9K
>>302
コメントの付け方が下手なだけだろ
305 :
2015/10/20(火) 21:25:15.03 ID:4r71MZXj
/*
此処に入って来たらマジやばい。
誰も周りは助けてくれないし。

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


当時、こんなコメントを読んで大変なやぁ…って思った。
306 :
2015/10/21(水) 01:07:37.37 ID:sxvP468z
/*
そのリーダーなわけだが。 ↑そりゃないだろー
引継ぎも満足にできねーで去りやがって
自身の無能を知ってゆっくり野垂れ死んでね
*/
みたいなしょーもない愚痴コメントって実際少ないよね
307 :
2015/10/21(水) 01:09:50.98 ID:VfFXTbSK
だってそんなコメント無駄だし、むしろコメントの質を下げる要因にしかならないじゃん
308 :
2015/10/21(水) 10:26:45.72 ID:ayvh7TPn
こういうコードが入る時点で、
コードレビューも行われていないような
ところだろうなってわかるねw
309 :
2015/10/21(水) 10:33:35.51 ID:t8SS3rgX
コードレビューに夢見過ぎ…
310 :
2015/10/21(水) 12:47:50.82 ID:ayvh7TPn
夢じゃなくて品質を上げるのは
コードレビューしかないよ。

人によって生産性が100倍違うのも当たり前なのは
コードが違うからなんだし。
311 :
2015/10/21(水) 13:05:30.14 ID:t8SS3rgX
コードレビューで品質が上がる…
ますます、夢見る夢子ちゃん確定の発言だな…
312 :
2015/10/21(水) 13:08:00.35 ID:FpYnt2Cv
質を上げるんじゃない
質の低いコードの混入を防ぐんだ
313 :
2015/10/21(水) 13:20:09.67 ID:t8SS3rgX
質の低いコード混入するのは室の低いマしか雇えないブラックだからだよ…
314 :
2015/10/21(水) 13:21:26.33 ID:ayvh7TPn
>>311
否定するなら理由を言えよw
何も言えないから説得力0なんだぞ
315 :
2015/10/21(水) 13:22:22.09 ID:ayvh7TPn
>>313
> 質の低いコード混入するのは室の低いマしか雇えないブラックだからだよ…

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

コードレビューしかないね。
316 :
2015/10/21(水) 13:24:43.24 ID:ayvh7TPn
コードレビューするのはどの業界でも当たり前の話なんだけどね。
新聞社でも新人が書いた記事をそのまま出すわけ無い。
317 :
2015/10/21(水) 13:36:50.19 ID:t8SS3rgX
いや、そんなに必死になって連投して否定しなきゃならないようなことじゃないから…
コードレビューは、より良いコードを生み出す為でなく、室の悪いマのリカバリをする
だけだって、言ってるだけだよ…
318 :
2015/10/21(水) 14:11:29.69 ID:ayvh7TPn
質が悪いのを直せば、質が良くなるのは当たり前ですね。

あんたコードレビューして、あんたが直してるの?
質の悪いプログラマは成長しないの?
319 :
2015/10/21(水) 14:23:16.59 ID:t8SS3rgX
だ・か・ら、質が良くなるんじゃなく、悪い質じゃなくなる=極普通、になるだけだよ…
未成熟なマなら成長したりするかもしれないけど、まあ、質の悪いマは多分成長
できなかったから、質の悪いマになったんであって、それが成長するというのは
見通し的に暗いと思うよ…
320 :
2015/10/21(水) 14:31:53.30 ID:ayvh7TPn
えとなぁ、どんな優れた奴でも普通の時代がなかったわけじゃないんだよ。
駄目なやつがいきなり優秀になるわけないんだよ。
極普通になって、それから成長すれば良くなるだろ。
321 :
2015/10/21(水) 14:32:32.69 ID:ayvh7TPn
だいたいな、悪いやつがなんでずっと悪いかって言うと、
それが悪いってわかってないからなんだよ。
それを教えるのもコードレビューなわけで。
322 :
2015/10/21(水) 15:01:27.32 ID:t8SS3rgX
すまんな、あんた俺と違って幸せな環境にいるみたいだから、どこまで行っても平行線だわ…
323 :
2015/10/21(水) 15:36:18.25 ID:FAEyKeYo
相手が単に嫌いとか理解できないってコードへの無意味な批判が無くなれば、コードレビューもありだとは思うんだけどな。

俺はテストパターン増やしたくないから、ダメなら途中でreturn false
最後まで到達出来ればreturn trueする関数書くけど、
returnは必ず一つ、って人となかなか言い合いになる。
324 :
2015/10/21(水) 16:58:05.40 ID:FpYnt2Cv
>>323
MISRAで決まってるから仕方あるまい。
俺はその辺resultにNG入れておいて
resultがOKじゃなかったら残りの処理はスルーして最後にreturnで返すようにしてる。
業界によって作法が違うからいろいろあるよな。
325 :
2015/10/21(水) 18:10:39.28 ID:ayvh7TPn
>>322
コードレビューしないのが幸せってなんだそりゃw
お前の所はブラックなんだろうな。
326 :
2015/10/21(水) 20:13:39.10 ID:djlLkbUb
>>323
途中returnだからってパターン減るわけないだろ
327 :
2015/10/21(水) 20:17:59.29 ID:OBk5CbCK
教えて解るのなら誰も苦労していない。
解る人も少数ながら、もちろんいるが。
328 :
2015/10/21(水) 20:54:58.96 ID:ayvh7TPn
>>326
早期returnっていうのは、パターンを減らすのが
目的じゃなくて可読性を上げるのが目的。
可読性っていうのは人間にとっての読みやすさだから。

人間が読まないコードであるなら別にどんな書き方でもいいが、
そうじゃないだろう?
329 :
2015/10/21(水) 21:16:36.85 ID:djlLkbUb
そうじゃないだろう?って俺に言われてもw
330 :
2015/10/21(水) 22:38:13.09 ID:/T8JjMZv
>>328
確かに可読性は人間にとっての読みやすさだけど、
理由じゃなくてただ単語の意味を説明してるだけなのが笑える
331 :
2015/10/21(水) 23:31:28.17 ID:FpYnt2Cv
returnが増えるほど可読性は下がる、という文化もある
332 :
2015/10/22(木) 00:05:08.39 ID:85+TyuI7
可読性というか、一見上から下に素直に流れる関数のように見えて実は
文の最後にちょろっとreturnがあるのを見落とす、なんてのはあるね。
333 :
2015/10/22(木) 00:12:05.24 ID:T+i/NslY
ねーよw
334 :
2015/10/22(木) 00:17:58.38 ID:85+TyuI7
いや、俺はあるw
335 :
2015/10/22(木) 00:36:51.97 ID:T+i/NslY
その理屈だと、そのreturnと同じ位置にi++とかあった場合、
それを見落とすんだろうなw
336 :
2015/10/22(木) 07:19:28.30 ID:cVNIxwjP
>>326
減らないけど、記載するマトリックスは減るんだよ。
通るifとかswitchを列挙して、真の場合偽の場合を分けないといかんから、
頭でフラグ持ったとしても、通過する限り「処理なし」と書く必要がある。
処理なしと書く限り、処理なしのエビデンス取らなきゃならん。
それが嫌なら、通過もしないようネストを深くしなきゃならん。

>>328
可読性ももちろん上がるな。対応する括弧を追う必要も無いし。
337 :
2015/10/22(木) 07:45:32.98 ID:ItL1bO9f
俺はすぐにreturnしちゃうけど、可読性は上がるよね
I/Fの仕様が変わった場合、戻り値の変更漏れとかたまにあるけど
338 :
2015/10/22(木) 07:58:12.26 ID:85+TyuI7
>>336

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

だと管理しなきゃならなくて if (...) return; だと書かなくていいの?妙な規則だね。
ひとごとながら、if (...) return 関数(); とか大丈夫なのかと思ってしまった。
339 :
2015/10/22(木) 08:03:40.68 ID:+hTJzDQ0
MISRA準拠のときに困るからreturnは複数書かないな
340 :
2015/10/22(木) 08:41:43.01 ID:RDDiuVvk
(関数){
hage
}

(関数)
{
hage
}
だとどっちがいいの?
341 :
2015/10/22(木) 08:50:50.09 ID:4CKbsFsK
コーディングルールにある通りでいい
なければ多数派に合わせるようにコーディングルールを決めてしまえばいい
342 :
2015/10/22(木) 09:17:53.18 ID: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.97 ID:HZFkMara
>>325
コードレビューしないことじゃなく、コードレビューして
「成長可能かもしれない奴が周りにいる」という
環境が幸せなんだよ…
344 :
2015/10/22(木) 09:59:20.88 ID: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.78 ID:UfhH3fQc
>>344
そうそう。だから割と俺は早期リターンでネスト深めずに処理出来るものはしたいんだよね。
346 :
2015/10/22(木) 22:05:36.79 ID:85+TyuI7
>>342
等価なのは後者なんだからやっぱりテストパターンは関係ないでしょ。
あとマトリクスと言ってるけど、もしかして前者の形で書いた場合は処理1を通過せずに
処理2を実行するケースも考慮しないとならないとか?

ツール使わずに手作業でC1カバレッジ管理しなきゃならないプロジェクトなんて
やったことないからよくわからないけど、大変だねw
347 :
2015/10/22(木) 23:53:09.22 ID:+hTJzDQ0
>>344
こっちの方が絶望的なコードに見える
348 :
2015/10/23(金) 00:40:43.08 ID:zprVcqwH
>>347
お前の目が腐ってるのでは?
349 :
2015/10/23(金) 00:41:38.26 ID:zprVcqwH
基本的に腐ってる人っていうのは
ルールで決まってるから、そうなんだ。みたいに
ルールのためのルールを愛する。
自分で考える脳を持たない。
350 :
2015/10/23(金) 01:25:49.95 ID:m57abRZG
>>346
だから後者はネスト深くて嫌いなの。
当たり前だろ。
通る限り、例え結果がわかりきってようがその分のパターンも書かなきゃならんし、
スタック壊れた時のことも考えにゃならん。

ツールがどうのとかMISRAがどうのいってるお偉方には意味ないの。
机の上で紙でデバッグできなければ意味がない、検算は手計算、の人らだよ。
351 :
2015/10/23(金) 02:16:55.96 ID:/EixmTmg
こういう派閥争いの結果、複数の形式が混ざった糞コードが生まれるのであった
352 :
2015/10/23(金) 06:14:19.52 ID:7M5zkgCU
モーゼ<俺は中道を行くぞー!バリバリ ヤメテ!>
353 :
2015/10/23(金) 07:59:46.43 ID:80H6ZXcx
>>350
じゃあまとめると、>>323で途中returnを使わないとテストパターンが増えるかのように書いて
いたのは、おまえが深いネストが嫌い+おまえのところの妙な管理 の合わせ技ってことね。
354 :
2015/10/23(金) 08:50:27.33 ID:37mdpbh4
#define HOGE 128
355 :
2015/10/23(金) 09:44:51.05 ID:CBW+Dc/b
>>353
何に噛み付いてるかわからんけど、増えるよ。
356 :
2015/10/23(金) 10:06:04.43 ID:zprVcqwH
>>351
この問題に関して言えば、どっちがいいかは
ツールで計測可能なので、それ持ち出せば一発だよw
357 :
2015/10/23(金) 12:07:57.91 ID:CBW+Dc/b
>>356
必要、だから、文書化されてたらノーカンだよ。そういう意味では本来。
358 :
デフォルトの名無しさん
2015/10/24(土) 01:19:57.16 ID:geIuzf9u
>>344
だせーから1行でretunrnできねーならガード使うな
359 :
2015/10/24(土) 02:07:32.78 ID:WDIk1BPV
意外と盛り上がってて吹いた

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

switch(state){
360 :
2015/10/24(土) 02:11:21.79 ID: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.10 ID:WDIk1BPV
んでここがちょっと言いたかったことだけど
このstate switchは当然状態の数だけ関数も長くなるんだが
この場合いくら長くなっても可読性は全く落ちないという特性がある
みんなで使って幸せになろう
362 :
2015/10/24(土) 02:18:17.66 ID:WDIk1BPV
この場合エラー処理もえらい単純化できる
つまりdefault:に来たもの=エラーということ
最初に状態設計をきっちり行えばこの方法が今のところ最も効率が良いと
言ってしまおうかな
363 :
2015/10/24(土) 02:24:39.55 ID:ymg0YeVe
>>361
ifの代わりにswtchになってるだけじゃねーか。

こういうのは関数テーブル使えばいいんだよ。
364 :
2015/10/24(土) 02:59:11.22 ID: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.12 ID:ymg0YeVe
そして関数テーブルにすると

1テストパターン = 1関数になるので
もっと単純化できるという話。
366 :
2015/10/24(土) 03:14:15.86 ID:WDIk1BPV
関数テーブル覚えたての人なのかなあ
そういう言語機能寄りの話は今してないの判んないかな
367 :
2015/10/24(土) 03:29:27.06 ID:WDIk1BPV
この方法は見ての通りコードレビューも短期間で終わるのが判ってもらえると思う
状態が一箇所にまとまってる
状態によって必要になる処理が一箇所にまとまってる
どういう条件でエラーになるか簡単に調べられる

設計書やテストパターンとも一致させやすい
全て一箇所にまとまってるのがポイント
結局これ以上の物はできないんじゃないかな
368 :
2015/10/24(土) 08:06:55.53 ID:0ZjLfKs0
テストケース数に合わせる為にロジックを分かりにくく記述する本末転倒手法
369 :
2015/10/24(土) 09:12:17.67 ID:TC4yVlx1
手段と目的をはき違える典型
370 :
2015/10/24(土) 09:20:03.81 ID:VUwmRE0S
>>354
良く見るな。
括弧を章する俺かっけーってな奴。
371 :
2015/10/24(土) 09:22:43.39 ID:t+kkgTrx
テストファーストならそれもありだろ。ブラックボックスでいいんだから。
372 :
2015/10/24(土) 10:30:44.28 ID:ZlXT9FOV
ネストが増えるのは問題だけど
returnパスが増えるのは問題じゃないのかな
373 :
2015/10/24(土) 11:49:30.75 ID: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.07 ID:geIuzf9u
>>364
なんで意味ないことするの?
同じもんを外に抜き出してるだけじゃん。

そもそも入出力のパターンはテストで確認すりゃいいんだから、コードをパターンと一致させるのは無駄としか言いようがない
375 :
2015/10/24(土) 20:55:59.55 ID:Kwmejtcx
>>373
それで解決するなら最初からそう書いてればいいんじゃないの
376 :
2015/10/24(土) 21:00:18.64 ID:ab4ZAHgL
>>375
いや、解らない?

returnを一つにするというのはこれらと同じように、
無意味なことだって言ってるんだよ。
377 :
2015/10/25(日) 07:35:45.91 ID:Ypes6KAb
return複数あったらレビュー通らないじゃん
378 :
2015/10/25(日) 07:48:44.18 ID:5rFsh/xs
コーディング規約って、一種類しか無いとでも?

ゆとりって面倒臭いな。
379 :
2015/10/25(日) 10:47:02.39 ID:ffqR9+22
コーディング規約の為のコードじゃなくて、なんのためのコーディング規約かを考えろよ
そんなだからクソコード量産するんだよ
380 :
2015/10/25(日) 11:28:29.91 ID:4coy8BX6
性能が必要ないカテゴリでは性能を低下させるコードでも許容されるだけ
性能が必要なカテゴリではレビューでもreturnパスどうのより、そのコードが
速いかどうかだけが吟味される。
381 :
2015/10/25(日) 11:55:36.82 ID:ZLo4bLRN
基本は可読性高いコードが評価高い
それでパフォーマンス悪くてもボトルネック部分の速度を改善すればいい
しかし速度重視の難解コードはクソソースと呼ばれ後ろ指さされる
速度はアーキテクチャで解決していくのがベストだわな
382 :
2015/10/25(日) 12:38:39.93 ID:4coy8BX6
だから、それを待てるカテゴリは、元々性能が問題になるようなカテゴリじゃ
なかったというだけ、「次がある(キリッ」「後がある(キリッ」なんて言ってられる
生温いとこじゃないものも沢山ある。
383 :
2015/10/25(日) 12:56:40.32 ID:cc/DQ18H
>>377
こっちには、return複数あったらだめなんて言う
意味のないレビューをする人はいないんでねw
384 :
2015/10/25(日) 12:59:23.67 ID:cc/DQ18H
>>381
> しかし速度重視の難解コードはクソソースと呼ばれ後ろ指さされる

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

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


速度を速くするアルゴリズムがある場合で、そのアルゴリズムが
複雑な場合に限って、速度を重視したら難解になるんだが。
385 :
2015/10/25(日) 13:27:45.84 ID:OGZ3vopz
> しかし速度重視の難解コードはクソソースと呼ばれ後ろ指さされる

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

>>384
それな
386 :
2015/10/25(日) 13:36:24.73 ID:dX8FdDRX
速度自体が無駄w
なんで初心者って無駄に速度にこだわるのw
387 :
2015/10/25(日) 13:58:48.56 ID:EgatYw+c
皆、自分の意見こそが正しく正義であると信じ、
他者を必要以上に攻撃する傾向がみられる
なるほどこれが宗教ってやつか
世界から戦争が無くならない訳だ
388 :
2015/10/25(日) 14:06:03.46 ID:ZLo4bLRN
>>384
例えば時間のかかるデータ取得が100個あるとする
速度重視の場合早い時点でスレッド作って先行処理しておく
実際値使う箇所では中でスレッド待ちしていてなんでわけわからないことやってるんだと言われる
データなんてGet回すだけだろと

アルゴリズム難解といえば自前のHashMapは最初わからんかった
文字列足しこんでへんなビット演算やって
コメントもなかったからあれはなかなか理解されない
389 :
2015/10/25(日) 14:19:23.12 ID:Ypes6KAb
>>388
スレッド使えるなんて羨ましい
こっちは標準Cライブラリどころかcrtすら使わせて貰えないから
RAMをクリアしてmain関数を自分で起こすところから書かなきゃいけない絶望的な状況
390 :
2015/10/25(日) 14:28:46.60 ID:ZLo4bLRN
>>389
組み込み系?
クラスも使えずレジスタがどうだとかリソース最小限に留めるとか無理だわ
基本は作りやすさ重視で必要に応じてチューニングが1番仕事しやすい
391 :
2015/10/25(日) 14:44:38.49 ID:cc/DQ18H
>>388
だからそれ、アルゴリズム変わってるじゃん。
馬鹿なの?
392 :
2015/10/25(日) 14:46:27.63 ID:GUBs2NMK
クソソース書いといてその言い訳に速度重視とかザコ過ぎない?
お前が速度なんて語るの百年早いのはそのクソソースに丸出しなわけで
よくあんなクソソース書いててそんな態度取れるなっていう不思議な子知ってる
393 :
2015/10/25(日) 14:50:33.48 ID:ffqR9+22
>>386
おまえは一生ソートに可読性の高いバブルソートでも使ってろよ
394 :
2015/10/25(日) 14:51:52.18 ID:ZLo4bLRN
>>391
アルゴリズム同一でと言った覚えないんだが?
むしろアルゴリズム同一で速度が飛躍的に上げれるならマジで教えて欲しいが
395 :
デフォルトの名無しさん
2015/10/25(日) 14:52:32.88 ID:Kc4QEJg+
16進数やビット演算とか使ってるコードは見にくいからクソソースでいいですか?
396 :
2015/10/25(日) 14:57:39.09 ID:k5OqwX9E
>>395
マクロ被せれば見やすくなる
397 :
デフォルトの名無しさん
2015/10/25(日) 16:48:51.96 ID:h5QU0gDZ
マスクをtypedefしとけば良いんじゃないの。
398 :
2015/10/25(日) 17:17:54.69 ID:Ypes6KAb
>>395
何進数だろうが関数内にマジックナンバーは入れちゃダメだろうね
定数かマクロにして実行部とは分けて宣言・定義するようにしてるよ
399 :
2015/10/25(日) 21:29:44.35 ID:dX8FdDRX
じゃあ何進数だったらマジックナンバー使っていいんだよ!
400 :
2015/10/26(月) 14:29:54.04 ID:o+3h9F6B
「定数は定義して使え」に対して

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

とかいう馬鹿もいるんだよな
401 :
2015/10/26(月) 14:33:27.86 ID:otoyrobt
#define value_one (1)
#define value_two (2)

これなら大丈夫(キリッ
402 :
デフォルトの名無しさん
2015/10/26(月) 17:54:07.18 ID:2NCHgOBb
#define ZERO 1
はGNUで見たことある。
403 :
2015/10/26(月) 18:15:12.01 ID:oKHb2SJo
マジックナンバーは基本だが定数を使った判定をあちこちに書かないことも重要
例えばファイルの存在チェックでファイルのビットフラグ立ってないことで判定
しかしフォルダも除外したい等仕様変更が予想される
その度多数の修正を入れるのは危険
isExist()などでラップして判定処理は1箇所にすると変更に強くテストも楽
404 :
2015/10/26(月) 23:04:21.65 ID:nye5D6dJ
マジックナンバーは必要悪でしょ。
周知されてて、全体で統一されてたら何も文句無いけどな。
日時未定を29991231で持ってるシステムに関わってたけど。

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

挙動を変えるのに、変えた意識が無い方が、
あり得ないくらい誰も原因に気づかない、どハマりする障害を起こす元。
405 :
2015/10/27(火) 01:11:27.89 ID:Ay4zuTZ6
>>404
例が悪かったからマイナンバー導入を例にする
従来は同一判定をequal()で中身は住所と指名で判定してたとしよう
この場合マイナンバー対応は中身をID比較にすればそれだけで対応完了
これが比較箇所に直接住所と氏名の比較を行っていた場合修正は時間がかかる
修正ソース毎にドキュメント書かないといけないプロジェクトでは発狂もの
言いたいのはやりたいことを外に出して実現手段は中に閉じ込めろってこと
要はカプセル化だが簡単なものだと忘れられることがよくある
406 :
2015/10/27(火) 07:32:20.87 ID:z76BTGB+
>>405
ダメ。
名前と住所で比較するロジックと、
マイナンバーで比較するロジックは別物。
それだけで対応完了にならないよ。
それでは、既存の比較するロジック全部洗って、それ呼んでる所を全部テストせなならん。
普通は、呼び出し側ソース修正と同じかそれ以上になるんだよ、ライブラリの挙動変更に対するドキュメントとテストって。
やりたい事をカプセル化するライブラリの、内部挙動が変わったらそれは最早カプセル化されてないとしか言いようが無い。

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

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

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

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

現実手段を閉じ込めるのは、同じ動きをする事が大前提。
407 :
2015/10/27(火) 07:44:38.08 ID:ecThD4uO
>>406
理想はそうだけど現実解じゃないよそれ。
408 :
2015/10/27(火) 07:55:35.31 ID:GLkDzmBJ
いつのまに絶望的なコーディング論を紹介するスレになったのか
409 :
2015/10/27(火) 08:09:05.01 ID:HvIk3KYT
>>404
#define DATE_UNDEFINED 29991231
みたいな感じにマクロ化してあればいいだけじゃん?
マジックナンバーで許されるのは0と1くらいだと思う
410 :
2015/10/27(火) 08:17:38.90 ID:ExQg5u4l
括弧位つけろ
411 :
2015/10/27(火) 08:41:24.34 ID:z76BTGB+
>>407
実際にこのルールでやってるよ。
412 :
2015/10/27(火) 08:55:24.16 ID:xbbraB1s
UNREFFERENCE_PARAM(hCurInst)とかいう無意味マクロまーじ
413 :
2015/10/27(火) 09:39:20.90 ID:Ay4zuTZ6
>>406
また言葉足らずだったが話の前提として住所と氏名でユニークキーになる場合の話
勿論結果が修正前と異なるようなら別のメソッドにしたり置き換えたりが必要
あとソース修正毎にドキュメント作るのは金融くらいしか聞かない
テスト自動化してればシナリオ流して終わり
必要以上に金かけるよりほぼ間違いないでコスト削減が今の主流だと思う
スマホゲームでメンテ後に即メンテとかよくあるだろw
414 :
2015/10/27(火) 10:38:11.22 ID:z76BTGB+
>>413
医療だけど、特殊例だったのか。
だとすると、医療でそういう運用してても出る障害考えたら、世の中のプログラマは一体どんな気持ちでプログラムしてるかわからんな。
必要以上に金かけずにコスト削減して、障害出したら、それは必要な金だったんじゃねーかなぁ。
415 :
2015/10/27(火) 11:41:33.67 ID:Ay4zuTZ6
>>414
なるほど医療か
医療は周りにいなかったからわからなかった
医療だと慎重にならざるを得ないがバグ出ても修正すれば問題ない分野はそんなにテストに時間をかけない
毎回手動テストしてリリースするより自動テストでバグ出たら修正のほうがトータルコストはかからない
リリース優先か品質優先かは分野で全く異なる
ゲームで慎重なテストで時間使ってたら首飛ぶし逆もまた然り
416 :
2015/10/27(火) 11:52:03.16 ID:Ay4zuTZ6
あと金の話だけどリリース時期は作る前から決まってる
そこがずらせないとなればバグのリスクとってもリリースを優先しないといけない
もしくは機能のそぎ落とし
3末リリースが遅れると決算への影響が大きいとかいろいろ事情がある
バグは出るものだからリリース後に改修すればいい
なかなか思ったとおりに仕事できないのは世の中の常w
417 :
2015/10/27(火) 13:00:39.45 ID:HvIk3KYT
自動車とか産業機械とか医療は厳しいよね。
バグ流出したら普通に人が死ぬからなあ。
418 :
2015/10/27(火) 20:49:01.37 ID:5DDR/Lis
工作機械の制御も簡単に死人出るからなぁ…。
419 :
2015/10/27(火) 20:58:17.64 ID:ohI0PO9P
絶望的なソースコードか〜
俺のソースコードは、いつでもスパゲッティになってるな〜
420 :
2015/10/27(火) 20:58:59.55 ID:LyVSHq6d
FXのツールとかで時限で誤動作爆発させたら大量に電車に飛び込みそう
421 :
2015/10/28(水) 00:18:14.32 ID:v41KDir5
糞みたいなコードにはもれなく言い訳がついて来る
もし本気を出せば綺麗なコードが書けるかのような
422 :
2015/10/28(水) 07:34:37.69 ID:dd+rVZmo
つまり全てのコードにはもれなく言い訳がついて来る
423 :
2015/10/29(木) 12:41:13.98 ID:jYkr1Igb
最近JavaScriptのswitch(true)イディオムを知ったが
do { ... } while(false)と同じような邪悪さを感じた
424 :
2015/10/29(木) 12:56:10.88 ID:ywbX+Z6L
でもどこが邪悪なのか言えない?
425 :
2015/10/29(木) 13:15:18.74 ID:l+jiBzQW
>>423
>do { ... } while(false)

これ最適化でdoの中に入ってこないイカしたコンパイラに昔遭遇して
発狂したことがある
426 :
2015/10/29(木) 14:23:06.65 ID:ywbX+Z6L
それは最適化じゃなくてバグだろ
427 :
デフォルトの名無しさん
2015/10/29(木) 18:25:23.55 ID:jIkfL+wY
マイナンバークラスから氏名クラスへの変換関数が存在した場合の問題点。
428 :
2015/10/29(木) 19:45:11.73 ID:lCX/HIGL
適用日付も引数にほしい
429 :
2015/10/29(木) 20:06:17.64 ID:K+6ZCqNU
期間持つのと、変換日時を任意に設定出来ることが最低条件かな。
変換ではなく、取得クラスになるだろうけど。
430 :
2015/10/30(金) 16:02:41.19 ID:ZjC0FpzU
>>409
0すら定数定義させられた事があったわー
431 :
2015/10/30(金) 20:53:45.70 ID:gPbmFrsE
#define NULL 0
432 :
2015/10/30(金) 21:45:25.79 ID:eJ2e2Hn1
>>431
これは正しいんだよなw

マジックナンバーはだめ
じゃあ数字に対して全部defineすればいいってわけじゃない。
何が数値そのまま書いて良くて、何がダメなのかもう少し良い説明ない?
433 :
2015/10/30(金) 22:31:55.26 ID:gPbmFrsE
たとえばVBAの話になるが、VBAからシートの特定のカラムのセルを参照するには
Cells(行, カラム)やRange("行:カラム")のように指定する
これはカラムの配置を変えただけでプログラムが破綻することを意味する
さてExcelにおいてカラムの配置を変えたいことは良く思うことである
そこで1行目のヘッダとなる名前とカラム番号を連想配列に登録しておき
名前でカラム位置を特定するという方法がある
こういった対策をしとかないとVBAはマジックナンバーだらけのコードになる
対策したコードは処理の最初に名前から番号への変換のコストが発生するが
それは些細なコストである
・・・わかったかね
434 :
2015/10/30(金) 22:32:38.22 ID:eJ2e2Hn1
長い
435 :
2015/10/30(金) 22:34:14.14 ID:WJjMGMJs
その値が何を意味してるのかを定義して同じ意味のものをまとめるだけ
もともと可読性と変更に強くするためにしてるのだから
あとdefineはundefで消すこともできるため難解コードは解析しづらい
定数もしくはenumを使うのがいい
436 :
2015/10/30(金) 22:47:48.69 ID:gPbmFrsE
上のRangeの場合は"カラム行"だけどまあどうでもいいわな
さてCOMインターフェースの1つIDispatchはこれの逆をやっている
IDispatchは全て名前ベースでプロパティやメソッドを呼び出せるようになっている
が実はそれらには一意のIDが割り振られており、事前に名前からIDを特定しておくこともでき
うまく書けば名前からIDへの変換は1度のコストで済む連想配列を内蔵した形だ
ちなみにここで登場した連想配列に名前を格納する仕組みは
主に文字列リテラルとして実装されるが、これはマジックナンバーではない
これをマジックナンバーとみなしてさらに別名定義するアホはいないだろう
437 :
2015/10/30(金) 22:51:56.22 ID:gPbmFrsE
GUIDという概念がある
コイツハマサニマジックナンバーデコノアイデーハセカイニヒトツシカナイコトガホショウサレルアイデーナノデアル
デモニンゲンハコンナモノイチイチオボエテラレナイカラマサニマジカルナウンヨウガナサレテイル
438 :
2015/10/30(金) 23:03:28.91 ID:gPbmFrsE
マイナンバー制度という概念がある
主に国内でやりとりされることを想定した奴隷番号である
公開すると害があるらしく最後には官憲が動くかもしれない危険な番号として最近認知された
439 :
2015/11/01(日) 18:19:18.77 ID:tjf5Il2M
国民総背番号制という古来からの論争の種だったのだが,最近は抵抗運動はなかったのか?
440 :
2015/11/02(月) 00:51:12.93 ID:IGWJLfrm
そもそも既に番号振られてるよね、事実上、って気づいたからじゃない?
441 :
2015/11/02(月) 08:32:28.83 ID:jypI/AIk
マイナンバーの本体そのものは民主時代に通ってるがな
今騒いでるのは改正と称して悪用するための変更
442 :
2015/11/03(火) 11:58:57.65 ID:gpyirAk3
急に政治臭くなった
443 :
2015/11/03(火) 12:02:06.64 ID:Cvaj+aOI
そういやテストデータの人名に政治家やら備考欄に真実()入れてきた外注があったわ
444 :
2015/11/03(火) 13:50:13.77 ID:i649bMmf
ワロタ
俺も真似しよう
445 :
2015/11/12(木) 07:13:20.33 ID:b0I3If93
>>432
function pi() の中で3.14。
function month() の中で12。
function hour() の中で24。
こんなん、常数にする?俺はしない。
446 :
2015/11/12(木) 10:32:56.67 ID:iZs6jymX
>>445
お前誰だよw お前ごときがしないからってどうでもいいわ。

一般的にそれらは定数に良くなっている。
447 :
デフォルトの名無しさん
2015/11/13(金) 22:33:07.13 ID:Ztn/Y8j7
>>446
日本人か?
448 :
2015/11/14(土) 00:40:00.13 ID:H4hEy7EE
>>447
日本人だが?
449 :
2015/11/14(土) 00:40:45.97 ID:iuWQx+BT
pi みたいな浮動小数は用途による。
450 :
2015/11/14(土) 14:17:51.36 ID:fm2vcKXc
>>446
#define マクロのない言語は哀れだね
451 :
2015/11/14(土) 14:34:31.48 ID:bF3EVbPf
いや、マクロが欲しければm4みたいな汎用のマクロプロセッサを使えばいいし、
単なる文字列置換であるマクロは、コードの静的解析能力を下げ
(例えばプリプロセッサを通さないと構文エラーかどうかわからない)
エラー時の情報をわかりにくくしたり、分かりにくいバグの元になったりするので
排除する方向にあるんだけど。

C言語でもdefineよりもconstやinlineを使うのが常識だしさ。
452 :
2015/11/14(土) 14:36:18.15 ID:bF3EVbPf
おっと、軽く探したら#defineはダメだっていういい記事見つかったので紹介

http://d.hatena.ne.jp/takehikom/20140807/1407420548
453 :
2015/11/14(土) 16:30:08.93 ID:EuJ2f84U
#define ABC 5 + 10

void func(void)
{
int abc = ABC * 10;
print("%d", abc);
}

このパソコンは算数が苦手になったみたいです。
150と表示されません。

………………死ね!
454 :
2015/11/14(土) 16:36:15.32 ID:Wquzevs4
コンパイラさんがどういうことやってるかわかってない人が
455 :
2015/11/14(土) 16:53:07.63 ID:bF3EVbPf
コンパイラじゃなくて、余計なことをやってる
プリプロセッサが原因だけどねw
456 :
2015/11/14(土) 16:56:04.42 ID:Wquzevs4
プリプロ 何ですか それ
な方たちがやってるんでは
457 :
2015/11/14(土) 20:11:50.05 ID:MSvtHxf5
>>450
extern constにしておけば実体持ってるライブラリを入れ替えるだけで
piの中身が3.14なのか3.1416なのか3.1415927なのかを切り替えてリンクできる
組み込みなんかではここのセクションに特別な絶対アドレスを振っておいて
Sフォーマットのファイル作ってから後で値を書き換えたりする
458 :
2015/11/15(日) 10:36:26.12 ID:Xo3Zb28z
>>451
いいこと言うね
使う側からは便利に使える反面複雑な使い方してると解析不可
defineはundefで消せるからコンパイル順通りに解析していかないとそのdefineは別の定義かもしれない
459 :
2015/11/16(月) 21:09:30.08 ID:nSSKBNI/
>>458
プリプロセッサだけ通せばいいだけだろ
解析不可とかアホか
460 :
2015/11/16(月) 23:26:56.71 ID:ozqa//mh
>>459
小さい規模ならまだしも業務用のでかいのに毎回やるのは非効率
後続の言語が切り捨てたとおり現状マクロは負の遺産
今の時代はフレームワーク使って読みやすいそこそこのものを短期で作ることが求められてるからね
461 :
2015/11/16(月) 23:43:11.58 ID:+ZSgD8xZ
今時の言語にプリプロとか無いよな
462 :
2015/11/17(火) 04:44:48.22 ID:91LH4JJH
>>459
プリプロセッサを通した結果に対して、
コンパイラがエラーを出したとき、

プリプロセッサを通す前のコードみても意味がわからんし、
通した後のコードは自分が書いたコードじゃないし。

プリプロセッサを通した結果に対するエラーから、
プリプロセッサを通す前のコードをどこをどう直せばいいのか
そのつながりを人間が判断するしかなく意味不明になるんだよ。
人間が頭の中で逆プリプロセッサをしなくちゃいけなくなる
463 :
2015/11/17(火) 19:22:30.78 ID:5ylAZ1WH
>>462
IDEと相性がわるいからね
464 :
2015/11/17(火) 20:09:29.80 ID:/RqDC1dK
>>463
IDEはまだましよ。
そういう変則的なものであっても頑張って対応してるから。

問題はテキストエディタを使ってる場合。
そういう細かいところの対応までできてないからなぁ。
465 :
2015/11/21(土) 13:08:19.06 ID:kjUNvnu/
C ( or C++ ) のソースで

#if 0

#endif

でコメントにするのはやめて欲しい。
466 :
2015/11/21(土) 13:34:03.37 ID:HbP98col
SublimeTextなどを使って範囲選択して
一気に行頭に//を入れたほうがいい。
467 :
2015/11/21(土) 19:54:17.89 ID:1zgwhmXP
>>466
え,便利じゃないか?
468 :
2015/11/22(日) 00:13:36.89 ID:G5+yWL2h
>>465
理由を述べよ。
単に嫌うのは、食わず嫌いと一緒。
469 :
デフォルトの名無しさん
2015/11/22(日) 00:20:00.47 ID:QRD2Q6hy
>>468
自分で考えろ。
考える前に聞くのはバカ。
470 :
2015/11/22(日) 00:23:37.90 ID:G5+yWL2h
>>469
単なる食わず嫌いか、納得した。
471 :
デフォルトの名無しさん
2015/11/22(日) 00:25:10.28 ID:QRD2Q6hy
>>470
バカのうえに早合点のトンチンカンで三冠王だな。
472 :
2015/11/22(日) 00:27:24.52 ID:DDbKY7qA
俺の考えが正しいことが証明されたな。
俺の考えはググった程度じゃわからんよ。
473 :
2015/11/22(日) 18:12:36.68 ID:DWgTsAXH
>>465
この方式はテキスト直編集や文字列検索の側面から懸念される
しかしメリットもあってコードの切り替えがしやすい
ifdefなら複数箇所修正も一気に元に戻すことも可能
誰かの修正でも消した人間がやってくれていれば修正当時の状態に戻せる
また修正が重なると//はインデントずれるがifの方はズレの発生もないメリットもある
俺はそのコードを検証等で使用する可能性があるかどうかで使い分けてる
474 :
2015/11/22(日) 20:44:55.89 ID:eRa8fYqU
デメリットもブロックコメントと同等かそれ以下だと思うがな。
まぁ、ネストが重なるとわかりにくくなるから1レベルに限定されたコメントの方が
いいという意見もあるだろうけど。
475 :
2015/11/23(月) 11:31:07.22 ID:UYP2wI74
うちは//も複数行にわたるブロックコメントも禁止だし
コードのコメントアウトは#if 0 〜 #endifが推奨になってる
Eclipse使ってればこっちの方が楽
476 :
2015/11/23(月) 12:46:13.70 ID:JP3x9Qw8
>>475
その規約をどうにかしたほうがいいんじゃないか
477 :
2015/11/23(月) 17:25:09.75 ID:pAAcXv2U
#if 0じゃ意味が判らんから定数使えや、とエスパーしてみた
478 :
2015/11/23(月) 17:28:56.89 ID:I/A9+n8X
またそれかw

定型句は意味がわかるから問題ないんだよ。
479 :
2015/11/24(火) 00:07:51.39 ID:XdzjW60L
#define NOUSE 0

#ifdef NOUSE
  :
  :
#endif
480 :
2015/11/24(火) 01:12:38.90 ID:7a+QKmK9
NOUSEってなんや?ってなるから意味ない。
481 :
2015/11/24(火) 01:16:48.61 ID:XArPpnwT
#if 1 // どっちにしようかな
//速いけど詠み難いコード
#else
//遅いけど判り易いコード
#endif
482 :
2015/11/24(火) 07:23:59.50 ID:vXeBzDQX
バージョン管理システムのチケット番号でifdefしてるのは見たことあるわ。
果たして本当に、それでそのチケット番号の状態に戻るのかは誰もやってないと言う。
483 :
2015/11/24(火) 19:08:07.34 ID:1vZRhgQx
>>482
同じ個所弄ったらネストしていくのか…?
484 :
2015/11/25(水) 21:24:16.64 ID:MMxhWoOe
>>482
戻るかどうかは二の次
一番重要なのはどんな修正をしたかということ
自分はいなくなってもコードは10年20年先の人間も目にすることがあるのだから
バージョン管理でやればいいという声もあるが果たしてそれ20年後に見れるか疑わしい
国際標準でなければ廃れると見たほうがいい
やっておいて損はない
485 :
2015/11/26(木) 02:18:49.76 ID:oAsmLq1R
> バージョン管理でやればいいという声もあるが果たしてそれ20年後に見れるか疑わしい

絶対確実に見れる。
486 :
2015/11/26(木) 02:19:46.90 ID:oAsmLq1R
見れるというのは読めるということ。

無駄な情報ばかりで、重要な事がわからなければ、
それは「見れない」という。
487 :
2015/11/26(木) 02:23:40.75 ID:oAsmLq1R
見れるというのは探し出せるということでもある。

ある事柄に関する修正は、一箇所で終わるとは限らない。
複数ファイルを同時に修正することがある。

複数のファイルに分散された、ある事柄に修正をもれなくすべて確実に
把握できる保証がなければ、それはどんな修正をしたかがわからないということ。

これはファイルのコメントなんかじゃ絶対にわかりっこない。
それはバージョン管理ツールでなければ不可能である。
488 :
2015/11/26(木) 02:36:19.49 ID:xxU4HAk9
20年後の人「なんだこの糞コードは・・・当時でもバージョン管理くらいあっただろ!?」
489 :
2015/11/26(木) 02:42:53.30 ID:oAsmLq1R
クソコードとバージョン管理に直接の関係はない。
だが、バージョン管理を使えないような奴は
クソコードを書くというのは大体あっている。
490 :
2015/11/26(木) 06:03:03.13 ID:veIBFmvN
>>484
CVSは25歳
SVNは15歳
Gitは10歳

バージョン管理ツールでやればいいな
491 :
2015/11/26(木) 07:12:00.03 ID:8nlnWQy6
>>482
バージョン管理システムは手段であって、
本来はその改修モジュールの対応前、対応後のソース一式がまとまってれば文句はないんだよ。
対応後の一式があれば、それは次の対応前の一式だし。
そこをサボって1つのファイルに前後を入れるから意味がわからなくなる。
492 :
2015/11/26(木) 10:10:24.97 ID:oAsmLq1R
>>491
小さいアプリならそれでいいだろうけど、
複数人が開発している大きなアプリだと、

1. どうやって各自の変更をまとめるのか?
2. 改修は何百、何千となるが(少なくともバグの数と機能の数以上になる)、それだけの数の「一式」を欲しいのか?

それを実現してくれる手段がバージョン管理システム
493 :
2015/11/26(木) 10:34:31.16 ID: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.52 ID:GuU354a3
楽したつもりで道具に使われてる奴等多すぎ
495 :
デフォルトの名無しさん
2015/11/26(木) 12:23:36.36 ID:Vr8PtFgH
言っとくが楽してるつもりは一切ないからな
496 :
2015/11/26(木) 13:09:36.25 ID:XoDybxjV
>>493
では聞くが、

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


思い出すだろう? 大量の台帳の山から
その時の情報を探すのに数日かけたことを。
497 :
2015/11/26(木) 13:12:08.20 ID:d/ZxLVhV
>>493
ソフトウェア会社なのに、それをコンピュータで
実現してないってのがダメな所だよなw

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

それをコンピュータ化したのがバージョン管理ツールだからね。
498 :
2015/11/26(木) 13:16:44.70 ID:d/ZxLVhV
>>494
> 楽したつもりで道具に使われてる奴等多すぎ

>>495
> 言っとくが楽してるつもりは一切ないからな
だよなw 同じことができる道具。それがあって、
楽できない道具を使うの(手動で管理w)が偉い!って思っちゃう。
体育会系かよw エクセル使うとズル呼ばわりする老害と一緒だ。

同じ道具なら、より効率的に早く楽にできる方がいいじゃん?
バージョン管理ツール使えば、台帳なんかで情報を調べるだけじゃなく、
その時のソースコードに戻すこともまで簡単にできる。


一番重要な事をお忘れか?

最終的に九州から北海道まで歩いていけるから問題ない?
それだけでは全然足りない。どれだけの時間がかかるまで考えてこそプロ。
499 :
2015/11/26(木) 13:19:52.08 ID:MDkVIHz0
まあ、あれだよな。

使える形で保存されてないデータは、使われない。
使える形で保存されているならば、使われる。

使われないデータをたくさんためても
自己満足程度の意味しかないわけで。
500 :
2015/11/26(木) 13:30:59.58 ID:GuU354a3
>>498
それで新幹線と飛行機と船で行けたとして、
「着くのが早いから」って理由で飛行機に乗るのはいいと思うけど
「マイル貯めるために」とか「ボンバルディアの機材こそ至高」ってのは
なんだかなあ、って話っしょ
こういうのはその時にベターなもの使えばいいの
501 :
2015/11/26(木) 15:44:00.39 ID:MDkVIHz0
>>500
例え話はわかった。具体的にはどういうことかって話だ。

バージョン管理を使わないと凄く非効率だから
殆どの場合はバージョン管理ツールを使う方がいい。

ただしバージョン管理を使えないという呆れるほど技術力が低くて
使えないものを大量に生成し多くの無駄に時間がかかって、あとで
自分らが苦しむだけなんだが、それを許容するのならば、
手動で管理しするのがベター(笑)ってことだよね。
502 :
2015/11/26(木) 15:44:29.61 ID:uY2sGP6D
>>490
VSSやCVSやSVNやら今使ってるの皆無だろ
以降の際に履歴捨ててるだろうし
標準化されない限り結局は短命
Gitも20年先使えてるかわからんしな
503 :
2015/11/26(木) 15:44:54.51 ID:8nlnWQy6
>>496
>>497
何言ってるんだ…
実現自体は昔から出来ている、それを便利にするのがバージョン管理システム、と言っているだろ。うちでも使ってるよ。
台帳自体もそっから今は自動で作ってる。便利だよ。
2000年代前半は内製システムだったけど、今は普通にバージョン管理システムとチケットトラッキングシステムだよ。

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

検索したらわかるっしょ、と適当にする奴居るけどね。
今でも、サーバ、ネットワーク全部落ちてもサポート程度は回る程度に台帳も文書も刷ってるよ。
お陰様で震災でもなんとかなった。
504 :
2015/11/26(木) 15:54:46.61 ID:8ZZhqZvl
>>502
使ってないだけで、使える。

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

他に標準化されているものなどない。
紙の管理? ソースコードのコメント? どれも標準化されてない。
今のデファクトスタンダードがgit

Gitから移行することはあっても、Gitがなくならないことは
1982年(33年前)に登場したRCSがまだ使えることからも
歴史が証明してくれている。
505 :
2015/11/26(木) 16:42:28.92 ID:veIBFmvN
20年が短命ならOSは夭逝だな
506 :
2015/11/26(木) 18:24:28.50 ID:8nlnWQy6
>>504
うちはパッチ当ててでも使うだろうな。
多分デファクトスタンダードはあるけど、
デファクトスタンダードなんてどうでも良いと思うよ。
管理できれば良いんだから、無理に流行りに乗らなくても。

あと、gitはおそらく向いてないな。うちには。cloneに時間やたら掛かりそう。
507 :
2015/11/26(木) 18:51:30.63 ID:8ZZhqZvl
> 管理できれば良いんだから、

だからまたw

管理できるのは最低限の条件で、
それを素早く確実にやるのがプロでしょ。

出来ればいいんでしょじゃないってw

> あと、gitはおそらく向いてないな。うちには。cloneに時間やたら掛かりそう。
ん? cloneするのは最初の一回だし、ネットワークが遅いなら
特定のディレクトリからでもcloneできるが。
508 :
2015/11/26(木) 20:14:42.11 ID:lIaAWQ2A
>>504
使ってないなら見てないんだから活用できてないわな
大きな修正にはバージョン管理は当然としてソースにも履歴を残してリスク軽減が当然だと思うんだけどな
そのバージョン管理のソフトも必要なときには使えなくなってる可能性を考えるべきよ
その履歴が標準化されてれば将来もコンバートできたりするんだろうがな
何かに過信してリスク分散もできない会社のシステムなんて怖くて使えないわ
509 :
2015/11/26(木) 20:32:29.36 ID:8ZZhqZvl
>>508
卑怯ですね。

バージョン管理ツールには、凄くいろんなことを求めて
それが出来ないと悪く言うくせに、

最初から何も出来ないものは、出来なくても文句言わないんですか?

> 何かに過信してリスク分散もできない会社のシステムなんて怖くて使えないわ

リスク管理っていうのはね。コストを考えなきゃだめなの。
ソースに履歴を残すことのデメリットを計算に入れてないから、
あんたの考え方は、考えるに値しないの。
510 :
2015/11/26(木) 20:54:13.06 ID:8nlnWQy6
>>507
何言ってるかわからん。
バージョン管理システムに反対してるつもりはない。使ってるし。
ソースにコメントで残す事を肯定もしてない。
素早く確実に出来るに越したことは無いよ。

出来れば良いんだよ。手段なんだから。
やらなくて良いことをやらないと決めるのもプロの仕事。
そう決めるにあたって、もちろん使ってみたり選定したりしてるけどね。
その選定や決断や調査にも工数かかるの。≒お金なの。
知らんで言ってるわけではない。

cloneするのは最初の一回、な。
常駐が入れ替わる度に数ギガのトラフィックか。

空論も良い所。
一回まともな体制のある程度の規模の開発に関わったらどう?
511 :
2015/11/26(木) 20:59:18.56 ID:sSZIJZMB
お、このスレでは日頃のストレスをぶつけ合えばいいのか?
512 :
2015/11/26(木) 21:13:24.35 ID:lIaAWQ2A
>>509
悪く言うつもりはないよ
ただあまりに頼りすぎてるとそれがダメになった時に崩壊するってこと
原発然りデータ分散保存してなかった会社然り
コストカットをやり過ぎた結果が全電源喪失なったの忘れたの?
東日本大震災あってコストカットのために東京にしかデータ残してなくて全データ喪失しましたで顧客は納得するの?
二重に安全策を行っておくくらい基本じゃないか?
余談だが俺の会社に20年前のバージョン管理の履歴残ってるプロジェクトひとつもない
513 :
2015/11/26(木) 21:17:07.03 ID:8ZZhqZvl
なんかいきなり原発の話しだしてきワロタw

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

また今度は関係ないアップルの話しだすし。
次はISISが戦争を始めるとかいいだしそうだ
516 :
2015/11/26(木) 21:55:52.71 ID:veIBFmvN
原発おじさんはVCSの謎の突然死よりも
部下がこのスレに書き込んでいないかを心配した方が良いと思う
517 :
2015/11/26(木) 21:58:43.37 ID:lIaAWQ2A
言いたいのは未来を予測できない以上二重以上の策を提供すべきということ
その必要かどうかはこの先ソースを保守する人間が判断するのであって今の人間が決めれることじゃない
20年前のプロジェクトの修正履歴見れるか試みたらすぐわかる話
518 :
2015/11/26(木) 22:23:35.43 ID:jGsOshgR
サンプルでないコーディングで
foo だ bar だ hoge だのと
519 :
2015/11/26(木) 22:40:27.99 ID:8nlnWQy6
>>512
うち、20年前のはコメントでの変更履歴がまだあるわww
未だ動いてるのが凄いんだけど。
520 :
2015/11/26(木) 23:09:16.39 ID:lIaAWQ2A
>>519
うちもコメントやifdef等で残ってるのがある
修正入る部分にこれがあると何となく当時の背景が見えてくるから助かってる
バージョン管理は次々鞍替えして数年分しかない
どこが早く履歴の標準規格化してくれたらもっと分かりやすく差分や経緯を見れるんだけどな
521 :
2015/11/27(金) 07:13:44.65 ID:vrZOFMnm
> 修正入る部分にこれがあると何となく当時の背景が見えてくるから助かってる

過去のバージョン見ればいいだけでは?
コミットログを見れば、何をしたのかもわかるし。
522 :
2015/11/27(金) 07:14:59.83 ID:vrZOFMnm
> どこが早く履歴の標準規格化してくれたらもっと分かりやすく差分や経緯を見れるんだけどな

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

一体、何を標準化しろと言ってるのかわかんね。
お前なら、どういう規格を作るのか言ってみなさい。
523 :
2015/11/27(金) 07:29:24.45 ID:8OTsJ1NX
>>521
もちろん過去のバージョンと台帳と突き合わせて見ればいいんだろうけど、
そこに変更が入っている事、がソース変更時に読めるのはわかりやすいよ。
今でもチケット番号だけ書いてる。
チケット番号書いとけば、コミット時に拾ってくれて、チケットに対象として載るしね。
524 :
2015/11/27(金) 07:45:03.01 ID:vrZOFMnm
> そこに変更が入っている事、がソース変更時に読めるのはわかりやすいよ。
ほぼすべての行に変更は入る。最初から何万行というコードが一気に出来上がるわけじゃない。

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

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

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

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

変更したものを全部残すという考え方をしていると、現在のコードではなく
過去に存在し今は存在してないコードに対しての履歴まで残ってしまうだろ。
不要な履歴コメントは消すべきだ。
525 :
2015/11/27(金) 08:24:51.55 ID:8OTsJ1NX
>>524
何が言いたいかわからん。
関数の頭のブロックにもチケット番号列挙してあるんだけど、
古すぎるコメントはチケット番号だけ残して消せば良いんだよ。

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

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

一切残さない、もありなくらい。
526 :
2015/11/27(金) 08:44:05.48 ID:vrZOFMnm
1998年度○月○○法改正により計算方法が変更になり、下記の計算方法で計算する必要がある
 以下計算式 資料 No.xxxxx Pp y-z及び…


これは消していいだろう?
527 :
2015/11/27(金) 08:47:54.68 ID:vrZOFMnm
>>525
> 何が言いたいかわからん。

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

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

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

>>527
だから、チケット番号で良いって言ってるんだけど。
文書載せられないようなトラッキングシステム使ってたらすまん。
529 :
2015/11/27(金) 12:04:27.10 ID:2nzZgJ9X
そもそもチケットがない
530 :
2015/11/27(金) 16:09:25.59 ID:nnLHIxqV
>>523
ソースコードに書かれたチケット番号をBTSが拾ってくれるの?
というか拾って何になるのか判らないけど
531 :
2015/11/27(金) 16:31:27.16 ID:de7c81om
チケット=作業、作業が終わるタイミング=コミットなのだから、
チケット番号(≒Issue番号)はコミットログにつけるもんだと思うが?
特に重要な事に関しては、Issueに対してソースコードで注釈入れるけどな。

Issue駆動で開発すると

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

という流れになる。

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

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

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

あと、逆にリリース用チェックアウトした時にリビジョン等のスタンプも押される。
533 :
2015/11/27(金) 18:19:01.79 ID:G3gCBxYm
手動でソースコードに変更履歴書いて
古いコードを残す文化とまるで違うw
534 :
2015/11/27(金) 18:29:07.73 ID:nnLHIxqV
>>532
チケット番号←→コミットログ←→変更ファイルで芋づる式に取り出せる情報なのに
人間が変更ファイルをマーキングして周ってるのか
本人が言ってるならそうなんだろうけど随分変なやり方してるね
535 :
2015/11/27(金) 20:07:14.94 ID:8OTsJ1NX
>>534
正確には変更ファイルにマーキングしてる訳じゃないよ。
変更箇所にマーキング入れてるだけ。

いつでもdiff取れるわけではないからね。
536 :
2015/11/27(金) 20:15:00.15 ID:D0U2RhLm
> いつでもdiff取れるわけではないからね。

いつでもdiff取れるようにしなさいよw
あほだなぁ。
537 :
2015/11/27(金) 20:41:52.19 ID:nnLHIxqV
>>535
納得した
そういうやり方ならありかもね

つってもソースコードから参照されてるチケットが陳腐化してないか
一々管理しなきゃならない不毛さを思うと
その時間でコメントを真面目に書けよって思うけどねw
538 :
2015/11/27(金) 21:17:32.03 ID:DVR9xOkV
>>521
その時コミットログ見れればそれでベストだが環境移行等で見れなくなった時の話
>>522
差分やコミットログをどんな環境でも見れるためのファイルフォーマットだよ
ファイル仕様が決まれば別のバージョン管理ソフトも必ず対応するからOS変わろうがツール変わろうが将来見ることができるだろう
コードが理解不能になって作り直しってのはよくあるからな
539 :
2015/11/27(金) 21:34:46.43 ID:D0U2RhLm
> その時コミットログ見れればそれでベストだが環境移行等で見れなくなった時の話
見れなくならないように、ちゃんと環境移行すればいいだけ

> 差分やコミットログをどんな環境でも見れるためのファイルフォーマットだよ
差分はgit diffでテキスト形式に変換される。
gitじゃなくてもすべてテキスト形式に変換できる。
テキスト形式が見れない環境など無い。
540 :
2015/11/27(金) 21:59:12.67 ID:DVR9xOkV
>>539
同じところにも存在してればなんとかなるかもしれんが配置変わったり消したりするのは普通に発生する
その時見れないのでは話にならない
古いプロジェクトやったことある人間ならわかると思うが修正履歴が完全に残ってすぐ見れるなんて夢物語
ドキュメントなんてないしあっても嘘八百
ソース=仕様ってのしかお目にかかったことないわ
10年くらい放置されてて突然手を加えるとなったときには開発環境が動かせないとかなw
541 :
2015/11/27(金) 22:03:24.34 ID:8OTsJ1NX
>>536
そりゃまあ、もちろんそうだけどね。それが実現するなら構わんけど。
地震が起きて、停電は起きるわ、窓ガラスは割れるわ、
支社とネットワークが上がらないわ、端末の何割かが壊れるわ、
なんやかんやで大変な事になっても
「今差分取れないし履歴も読めないのでわかりません、復旧まで待ってね」って投げちゃえるなら全部電子媒体で持ってて、必要な時に必要な分を随時取り出してもいいだろうね。
542 :
2015/11/27(金) 22:07:56.50 ID:D0U2RhLm
>>541
火事になって会社焼けたら困るなら、
別の所にあるHDDとコンピュータを使えばいいのでは?
543 :
2015/11/27(金) 22:09:31.08 ID:D0U2RhLm
紙媒体だと、燃えたら全損だからな。
バックアップも取れないだろうし。
544 :
2015/11/27(金) 22:10:31.74 ID:D0U2RhLm
>>540
だから、デジタルで記録された、現在動いている
ソースコード以外役に立たないんだよw.
いくら紙の資料があっても、それが最新とは限らないからね。
545 :
2015/11/27(金) 22:11:26.12 ID:D0U2RhLm
>>540
> 古いプロジェクトやったことある人間ならわかると思うが修正履歴が完全に残ってすぐ見れるなんて夢物語

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

修正履歴が残ってないのは、バージョン管理していない頃と、
紙媒体で履歴を保存していたものだけ。
546 :
2015/11/27(金) 22:14:12.17 ID:D0U2RhLm
地震でてんやわんやですが、
「差分取れるし、履歴も読めます。ただ、沢山の紙の資料の中から
探すのに時間がかかるのでちょっと待ってください。
パソコンを直すよりも時間がかかりますがねwww」
547 :
2015/11/27(金) 22:16:58.51 ID:D0U2RhLm
俺なら、地震で仕事にならないなら、
別の場所に支社があるんだろう?
そこに仕事まわすだろうな。

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

命の危険もある中で、地震で散らかっている倉庫を探しまわって
仕事をする必要はない。優先順位を考えれば当然そうなる。
548 :
2015/11/27(金) 22:28:38.44 ID:DVR9xOkV
>>545
紙で履歴保存してた頃にソース記述しとけば今でも見れたわけよ
俺は履歴は現行ソースと同等レベルで重要と思ってる
履歴がなくてコメントもろくにない中データ保存に分割してよくわからん計算してる理由わかるやつなんかそうそういないわ
わかった時には脱帽したよフロッピー先輩w
履歴あればすぐにわかったんだろうがな
今の時代にデータ保存にそんなことしない無理すぎた
549 :
2015/11/27(金) 22:47:37.06 ID:upceL5UO
つ ランプ型秘密分散法
550 :
2015/11/27(金) 23:01:18.56 ID:8OTsJ1NX
>>542
火事になっても大丈夫なように複写は他の所にも保管はしてあるよ。

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

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

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

>>547
サブシステム毎に担当わかれてるからね。
こっちの命の危険なんか関係ないよ。
客先にはどんどん怪我人搬送されてたり、自家発電切れそうで縮退運転始まったり、
それこそこっちが一人二人死んだ位どうという事は無いよ。ただの労災。
命を預かる物作ってるのに、その責任に自分の命を代えられないほど情けない人間でもない。
551 :
2015/11/28(土) 00:28:53.24 ID:Fdg/GjsY
支社があるような会社の運用ではないように見えるのだが
552 :
2015/11/28(土) 08:03:00.10 ID:ozKXYRIx
老害ってほんとうに嫌なものだ。
553 :
2015/11/28(土) 12:25:04.44 ID:THprgENb
>>551
平時とは違うよ。
それこそ電子化されたもの見りゃいいからね。
電話が復帰したら関西に投げたし。
当日翌日があんな状態になってもちゃんと回っただけいい方だと思うけど。

>>552
古い物を知らん奴が、解決策も無く古い物は良くないと言ってもなんの説得力も無い。
中学生の政治への憤りみたいに見える。
554 :
2015/11/28(土) 17:31:18.96 ID:hiaEqByC
資産を異なるメディアでバックアップする事と
ソースコードからドキュメントを自動生成する事は完全に別問題なんだけどね
今後者のアプローチとして突っ込みが入ってるのに
なんで災害を強調するの?
555 :
2015/11/28(土) 19:20:09.38 ID:W/xTcAqm
災害だと体験した人が少ない。

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

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

それが「お前らにはわからんだろ」という言葉で
圧力をかけること。そのために災害を強調している。
556 :
2015/11/28(土) 22:46:57.94 ID:ozKXYRIx
何の根拠もなしに、古いものを知らないと断定出来る才能自体が老害だとは思う。
557 :
2015/11/28(土) 22:57:48.59 ID:W/xTcAqm
>>555はこういう喩え話でも説明できる。

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


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


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

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

議論の内容ではなく、その外側から圧力をかけて
黙らせているだけにすぎない。実に便利で姑息な手段だよ。
558 :
2015/11/28(土) 23:14:55.87 ID:tSvPCfh1
姑息か?
559 :
デフォルトの名無しさん
2015/11/28(土) 23:19:08.72 ID:fFSPKhVt
ジジイに叱られて黙る奴w
560 :
デフォルトの名無しさん
2015/11/29(日) 01:31:27.76 ID:XQ9qPP+R
ここまで構成管理という言葉なし。

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

よほどなんか負い目あるの?
562 :
2015/11/29(日) 09:27:52.62 ID:X6CLD+vb
無駄な労力を使わせているのが問題かと。
563 :
2015/11/29(日) 13:49:38.76 ID:Q4OmYaLr
無駄じゃ無いじゃん
564 :
2015/11/30(月) 15:53:15.93 ID:XLc7iLvb
おっ 無駄か無駄じゃないかの水掛け論か?
565 :
2015/11/30(月) 16:31:16.32 ID:JF8UCarw
ほんとね、理由言わずに無駄っていうやつ、何なんだろうねw
水掛け論始めたいのかってな。
566 :
2015/11/30(月) 16:33:31.10 ID:JF8UCarw
>>561
> システムも、アナログな管理でも、管理さえ出来てれば良いよね、

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

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

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

全然ソースコード関係ないけど。
568 :
2015/11/30(月) 17:37:12.45 ID:JF8UCarw
>>567
じゃあ文句言う対象は俺じゃねーだろ。

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

一般論でしか無いし全く無意味な説教だがな。
569 :
2015/11/30(月) 17:50:09.32 ID:JF8UCarw
管理さえできていればいいよね・・・そこで思考停止
管理できるのは当たり前で、効率的に管理するのが重要・・・思考停止していない。
570 :
2015/11/30(月) 19:42:10.76 ID:Psvq4v1+
>>568
何をそんなにいきり立ってるの?
明後日のカイゼンかなんかを提案して怒られて拗らせてるの?

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

全部手段で道具で、目的は「満足に管理して業務を回すこと」だよね。
思考停止でも何でもないよ。
571 :
2015/11/30(月) 19:44:53.23 ID:JF8UCarw
>>570
> 何をそんなにいきり立ってるの?

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

> 明後日のカイゼンかなんかを提案して怒られて拗らせてるの?
お前の思い込みって、ほんと面白いよなw そんなの実経験から思いつくの?w
572 :
2015/11/30(月) 19:45:36.33 ID:JF8UCarw
>>570
だから管理できるのは最低限だって。

ここから更に効率が良くてコストも低い方法に変えていくの。
573 :
2015/11/30(月) 21:27:42.17 ID:Psvq4v1+
>>571
俺に言うべきこととかどうでもいいよ。
よっぽど自己評価高いのな。

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

>>572
何言われてるか理解できなければいいよ。
結果論として無駄に効率が悪くて無駄にコストがかかる運用なんて、その最低限を満たして無いよね、って話。
574 :
2015/11/30(月) 22:55:34.80 ID:5dGYmvKM
VCS標準化おじさんに原発おじさんに
面白い人がよく集まるスレですね
575 :
2015/12/01(火) 09:43:08.58 ID:vya/mPuO
導入コストっつーか慣熟期間に一時的に落ちる効率が
導入後に取り返せる見込みがない場合ってあるよな。
太陽光発電システムを数年スパンで丸ごと入れ替える
みたいな、全然元が取れてないパターン。
576 :
2015/12/01(火) 17:07:22.23 ID:N36zTOa2
俺が正しい
俺だけが理解している
俺の意見が理解できないやつはクソ

という論調の書き込みは読むに値しない
例え正しいことが書いてあったとしてもな
577 :
2015/12/01(火) 17:55:19.70 ID:d/SZPXKT
>>576
それで、その意見は正しいのかね?
578 :
2015/12/01(火) 18:18:42.51 ID:N36zTOa2
>>577
正しくないぜ
当然じゃないかハハハ( ´∀`)
579 :
デフォルトの名無しさん
2015/12/03(木) 15:32:59.30 ID: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.33 ID: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.96 ID:xWHq0tVP
あー、これ系のソース書いたことあるわ。
バイナリファイル中のファイル位置、サイズだったか、
固定長電文のフィールド位置だったか。
582 :
2015/12/03(木) 18:20:54.04 ID:d0OCrfZD
データセットを DataGridView に表示するのに、バインドせずにループで回して代入。
583 :
2015/12/04(金) 09:44:59.80 ID:pcaxFgNv
>>582
ループしてるならまだ絶望的じゃないな
584 :
2015/12/04(金) 10:54:45.80 ID:QmIGWywN
データバインドとかここ10年くらいのものだろ
585 :
2015/12/04(金) 15:17:07.67 ID:prxSfFNA
>>582-583
バインドなしループなしを見たことがある
586 :
2015/12/04(金) 16:01:55.05 ID: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.25 ID:u0bQfuw3
そうだね
588 :
デフォルトの名無しさん
2015/12/04(金) 23:55:01.31 ID:wuaQKlp3
#define zero 1
589 :
2015/12/05(土) 00:48:19.55 ID: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.51 ID:pK0sc289
#define TRUE 1
...
if(hoge == TRUE){...}
591 :
デフォルトの名無しさん
2015/12/05(土) 12:16:35.79 ID:vOhmiziG
>>590
if((hoge == hoge) == TRUE)
592 :
2015/12/05(土) 12:17:21.84 ID:4CEShJeO
なにかを召喚しようとしているとみた。
593 :
デフォルトの名無しさん
2015/12/06(日) 11:01:47.05 ID:pIhfFp+J
A4紙ペラ1枚の仕様書兼設計書しかないのに、10万行のソースコード。
594 :
2015/12/07(月) 01:49:58.36 ID:7ba3d2ub
昔、偽装請...派遣でいった会社で
ありとあらゆる引数が

const boost::shared_ptr<XXX> &val

となっている現場があった。
何かが、狂っていた。
595 :
2015/12/07(月) 07:56:35.00 ID:RcyQXLEI
開放領域への参照で落ちて地獄のデバッグよりか遥かにまし
596 :
2015/12/07(月) 09:53:30.69 ID:7ldc1+VM
C++の世界って相変わらず
ごちゃごちゃしてんのなw

動くのに間違いっていうのが多すぎる
597 :
2015/12/07(月) 10:15:40.28 ID:ybmjRjHL
>>594
銀行だろ
598 :
2015/12/07(月) 15:38:41.09 ID:KuRdWB2c
>動くのに間違い

ほんそれ
599 :
2015/12/08(火) 21:57:19.96 ID:uAong+Yo
ループ変数がグローバルにおいてあって、
そのループ変数を使ったfor文の中から呼び出される
各関数内でループ変数がインクリメント・デクリメントされているコードに絶望した覚えがある
600 :
2015/12/08(火) 22:39:43.83 ID:ofZrfRww
やばいなそれ
それ仕様どおりなん?
601 :
2015/12/09(水) 10:07:13.59 ID:3EPxHLPC
再帰処理の中で再帰の深さ調べて云々するプログラムにそんなのあったな
602 :
2015/12/09(水) 21:23:43.29 ID:VkHBWGUX
>>600
コードが仕様だ!

コーディングミスの副作用が絡み合い何故か動いているのだが
書いたやつやめたから誰も手が出せない、なんとかしろという展開。
603 :
2015/12/09(水) 22:54:35.69 ID:ZwktDk40
 
配列に間違って一つ余計なデータを加える

   +

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

   =

_人人 人人_
> 正常動作 <
 ̄Y^Y^Y^Y ̄
604 :
2015/12/10(木) 00:26:28.57 ID:ydUpcr2T
境界テストすらしない前提なの
605 :
2015/12/10(木) 00:28:09.29 ID:Ti4G586p
関数内部の境界テストはしないね。
606 :
2015/12/10(木) 09:15:52.53 ID:PYxURZ6w
番兵さんを「余計なデータ」と言われた事ならある
607 :
2015/12/10(木) 12:17:34.93 ID:gg94mj0B
>>603
最後にnull終端が(暗黙に)期待されてるバグありコードで
たまたまメモリが0で埋まってて動いてるソフトが世界中に沢山ある
608 :
2015/12/10(木) 12:28:09.15 ID:UXNiSsD5
C言語でbssセクションに配置された未初期化変数はzero-fillが保証されている
ことを知らない無能は結構多いよね。
609 :
デフォルトの名無しさん
2015/12/10(木) 12:36:25.02 ID:bHHbe/Q2
お前知ってる無能だな
610 :
デフォルトの名無しさん
2015/12/10(木) 13:00:08.77 ID:v8EHsCoC
>>606
余計なデータだろう。
番兵はあくまでテクニックだ。
611 :
2015/12/10(木) 15:44:51.44 ID:Sckq1QsI
>>608
そんなの知らねーが未初期化でReleaseビルドの時だけ発生するバグを埋めるアホはよく見てきた
新人でもはっきり判断できるような可読性高いもの書け
それがプロの最低条件
612 :
2015/12/10(木) 15:50:47.73 ID:Ti4G586p
正確には「新人でも上級者でもわかる可読性が高いコード」な

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

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

わかりやすさの基準は上級者が決める
613 :
2015/12/10(木) 15:56:11.47 ID:pXSC4Dqg
>>608
俺の使ってたCスタートアップは.bssゼロフィルしてなかった
妥当な理由があったからなんだが、何だかモヤモヤした
614 :
2015/12/10(木) 16:01:16.70 ID:yNsK6Fxm
bssゼロフィルなんてものを前提にコード書く奴は素人
こういうバカはやっかいなバグをしこたま仕込むタイプ
615 :
2015/12/10(木) 16:04:42.64 ID:pXSC4Dqg
グローバル変数とかスタティック変数は
初期値を入れてなければゼロが初期値ってのは前提でしょ
616 :
2015/12/10(木) 16:36:51.55 ID:Ti4G586p
むしろ初期値が決まってない言語のほうが少ない。
617 :
2015/12/10(木) 16:42:29.28 ID:2ifIvV3l
>>613
そういうのは処理系がエラーを吐けば問題ない
618 :
2015/12/10(木) 17:32:31.12 ID:iwZgNtxz
前提つーか言語仕様に書いてあるからなあ
619 :
2015/12/11(金) 00:36:04.85 ID:AA1k5ebD
言語仕様なんて現実の処理系の前じゃ単なるガイドラインにしか過ぎん
620 :
デフォルトの名無しさん
2015/12/13(日) 09:45:48.97 ID:+eRy+6gb
言語仕様としてプラットフォーム依存も定義されてるよ
621 :
デフォルトの名無しさん
2015/12/13(日) 20:56:58.02 ID:XKUJpg79
1クラスが6000ステップ以上のJavaソースをちらりと見た。
内部クラスを使っているかも知れんが、Javaってもっと細切れに
クラスを作るものかと思っていた。
622 :
2015/12/13(日) 20:57:59.03 ID:NoovkWNN
Javaだけじゃなくて、どんな言語でも、
クラスがある言語なら細切れにクラスを作るよ。
623 :
デフォルトの名無しさん
2015/12/13(日) 23:37:51.49 ID:WlyYs++B
>>621
6000行くらい見ればいいのに。
624 :
2015/12/13(日) 23:57:49.37 ID:hOFu3SKo
>>621
ダメな例だな
まとまってるから解析は比較的しやすいがテストとなると内部の状態が多すぎてまともなテストできない
クラスは小さいひとつのことに集中し他とはできるだけ疎結合
625 :
2015/12/18(金) 21:22:05.47 ID:FDwGFOf2
>>621
クラスの責務があやふやなんやな
626 :
デフォルトの名無しさん
2016/01/06(水) 11:59:50.90 ID:nQqbz+/u
中級者はトリッキーはコードを好む
これだけは間違いない
627 :
2016/01/06(水) 12:29:20.52 ID:UK0rI12O
確かに上級者のコードは見やすい。
ロジックは複雑だがコードとしての見やすさ。
628 :
デフォルトの名無しさん
2016/01/06(水) 12:30:26.18 ID:Fg9nLK8i
トリッキーを好むのは意識高い系の無能やで
629 :
2016/01/06(水) 18:08:14.05 ID:/H9q/T9T
中級者と上級者の違いは?
630 :
2016/01/06(水) 19:38:59.22 ID:yluT1kPN
上級者:バカの相手をしない。馬鹿にかかわらない。
中級者:バカがいると頑張る。
初心者:バカをバカと認識出来ない。
631 :
2016/01/07(木) 12:52:08.23 ID:z61lpkpg
バカをコケにして楽しむ天才もいるけど
632 :
2016/01/07(木) 16:39:58.08 ID:Pe5rEwkw
それは中級者のことだな
633 :
2016/01/07(木) 17:03:25.06 ID:h6IODMw0
上級者は比較的謙虚だよ。
まあ、悟りが入っているからだが。
634 :
2016/01/07(木) 19:56:13.36 ID:JRHaZSLM
いろいろいる
635 :
デフォルトの名無しさん
2016/01/07(木) 20:47:13.40 ID:lRIC4Lm0
上級者をコケにしまくるノイマン
636 :
デフォルトの名無しさん
2016/01/08(金) 15:07:08.09 ID:tqKW36Gu
ifもelseも全部一行に詰め込むガイジは死ね
読みにくいんじゃボケ!!!!!!!!!!!!!!
637 :
2016/01/08(金) 15:14:42.00 ID:yBRKo/VZ
>>636
個人的には、

if(kinoko == stick){

}else{

}

という書き方ではなく、

if(kinoko == stick)
{


}
else
{

}

って書く人は嫌い。
638 :
2016/01/08(金) 15:29:13.63 ID:d7AXElGo
>>637
それが嫌いだと生きていくの辛いだろ
639 :
2016/01/08(金) 15:43:23.58 ID:BspTamKY
俺はできるだけ改行しないほうが好きだが、コメントの位置が上手くできないのが悩みどころ

// このコメントはOK
if(){

}else{ // このコメントを先頭にしたいけどelseはこの位置が好き

}
640 :
2016/01/08(金) 16:04:25.38 ID:phA/d0Uk
こーだろ

if(){
  // 真の場合は・・・する

}else{
  // 偽の場合は・・・する

}
641 :
2016/01/08(金) 16:48:23.58 ID:OUzXo7qx
>>637
嫌いだけど、 C#ってその形なんだよね
642 :
2016/01/08(金) 18:17:24.00 ID:/YBx4YCU
設定で変えられますよ。
643 :
2016/01/08(金) 20:08:25.88 ID:cnaeBvqG
つーか、elseはあまり書くべきでない。

if(){
  // 真の場合は・・・する

}else{
  // 偽の場合は・・・する

}

ではなく、できるだけ

if(){
  // 偽の場合は・・・する
  return;(またはエクセプションをthrow)
}

// 真の処理

という形になるように常に心がける。

if else という書き方が深いネストを作るきっかけになっている事に気づかないと
いつまでたっても、初心者、中級者のまま。
644 :
デフォルトの名無しさん
2016/01/08(金) 20:43:14.71 ID:YP1TscYa
一画面で収まるなら別にネストしてていいや。
それ以上はオブジェクト化するかな
645 :
デフォルトの名無しさん
2016/01/08(金) 20:57:13.43 ID:KfqZIdgm
>>643 MISRA を否定するのか。是非とも MISRA の連中を説教してやってくれ

MISRA-C ルール 15.5 推奨 関数は、その最後に1つだけの出口を持たなけらばならない
646 :
2016/01/08(金) 21:08:22.83 ID:BspTamKY
>>643
ifでもelseでも最終的に同じ処理してからリターンしたい場合は?
決め付けるのは自称上級者

途中リターンが見やすいと思った場合は使うしそうでない場合はelseも使う
647 :
デフォルトの名無しさん
2016/01/08(金) 21:14:13.17 ID:/AzKcaKs
>>645
C言語ではそっちの方がよかったんかね。
いまって関数単位で単一責務原則を適用して関数が小っちゃくなるから
あまりこだわる必要なさそうだけど。
648 :
2016/01/08(金) 21:19:49.24 ID:7GZox6yu
話ぶった切るけど今まで見た中で最高に頭沸いてると思ったのはこれ

// 前略

/*
* きっとキミは来ない 独りきりのcarch anything
* silent kill. do ignore.
*/
} catch (Throwable e) {
assert(true, "来ちゃった♪" + e);
}

書いた人は壊れて辞めたらしい
649 :
2016/01/08(金) 21:21:27.58 ID:cnaeBvqG
>>646

あまり書くべきではない とか できるだけ心がける
という、超初歩的な日本語の意味を理解できない馬鹿がいるとは…
さすが初心者はプログラムだけでなく日本語も不自由と見える。

そう書くのが妥当なら書けばいいに決まってるじゃないか。
650 :
2016/01/08(金) 21:25:13.38 ID:cnaeBvqG
>>645

世の中のコードが全てCで書かれているとは知らなかった。
そんな世の中なら、さぞ住みにくかろう。
651 :
2016/01/08(金) 21:38:36.07 ID:RkD3LFtP
客先ですごいお金が絡むシステムがスパゲティコードだったから担当になるまえに怖くて会社辞めた
652 :
2016/01/08(金) 21:51:57.46 ID:BspTamKY
>>649
常に心がける=できるだけ心がける?
653 :
デフォルトの名無しさん
2016/01/08(金) 22:15:24.88 ID:cnaeBvqG
できるだけ〜になるように、常に心がける

なんかおかしいか?
ほんとに日本語不自由な奴ばっかだな。
654 :
2016/01/08(金) 23:40:56.27 ID:VOVSZHMX
>>645
> MISRA-C ルール 15.5 推奨 関数は、その最後に1つだけの出口を持たなけらばならない

そのルールを守るのは簡単だよ。

途中でreturnしたくなったら、代わりに関数の最後にgotoすればいいw
655 :
2016/01/08(金) 23:50:27.25 ID:278l3d2Z
そのMISRAのバカルールはな大昔の最適化が物凄くしょぼかったコンパイラ
で出たコードをこれまたしょぼいデバッガでデバッグするために関数の入り口と出口を
アセンブラレベルで1つずつにするためのものなのだよ
もう完全に時代錯誤
656 :
デフォルトの名無しさん
2016/01/08(金) 23:53:53.14 ID:/AzKcaKs
>>654
gotoもダメなんじゃないかな?みすら的に考えて。
みすらそう思う。
657 :
2016/01/09(土) 00:43:27.67 ID:5qP+Va2j
>>656
ならwhile(1)してbreakすればいいよw
658 :
2016/01/09(土) 02:10:42.82 ID:zAGuqSNS
マルチスレッド対応が当たり前になった今クソ長いコードや分岐だらけとか終わってる
シンプル・イズ・ベスト
大きな建造物と同様細かく作業を分けて小さな単位を積み上げていって大きくするのがセオリー
659 :
2016/01/09(土) 06:38:25.50 ID: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.86 ID:B4VTiUSo
客が読みにくいという理由でガード(関数の先頭あたりでリターンする)を
すべて if else に書き直させられたが
何でくだらない仕事を増やすのだろうか
661 :
2016/01/09(土) 14:08:32.34 ID:1QZox6W1
>>660

客の脳みそが腐っているんだからしょうがないんじゃね?

腐っててもお金は払ってくれるんだから、まぁ、ごみ処理だと思えば。
662 :
2016/01/09(土) 14:23:51.36 ID:1QZox6W1
自称上級者とかほざいてた >>646 は、
そろそろ自分の馬鹿さ加減に気づく頃かな。
663 :
2016/01/09(土) 14:30:18.07 ID:zAGuqSNS
>>660
else;つけとけばいいだけ
わざわざelse句として書く必要ない
664 :
デフォルトの名無しさん
2016/01/09(土) 14:31:17.81 ID:hdqMNonU
>>662
ケースバイケースってことを言ってるんだと思うよ。
バカだとは思わないけどなあ。
665 :
2016/01/09(土) 14:36:03.18 ID:zAGuqSNS
どちらのケースでもやりたいなら呼び出し元にコールさせればいい
分割がなされてないとそうなる
666 :
2016/01/09(土) 14:49:14.92 ID:1QZox6W1
>>664

5:5 くらいでどっちのケースもあると思ってるなら、
お前も>>646も頭に糠味噌つまってるくらい馬鹿だ
667 :
デフォルトの名無しさん
2016/01/09(土) 14:51:11.96 ID:hdqMNonU
>>666
バカっていいたいだけなんじゃないの?
なんかあまり中身がないような・・・。
668 :
デフォルトの名無しさん
2016/01/09(土) 14:53:07.96 ID:hdqMNonU
好みの問題だしなあ。価値観は優劣をつけるためのものじゃないと思うんだよね。
他人の価値観を自分の中に取り込んで自分の世界を広げるためのものなんだよ!!←できる人
669 :
2016/01/09(土) 14:53:18.06 ID:1QZox6W1
>646
>ifでもelseでも最終的に同じ処理してからリターンしたい場合は?

そういう、共通処理っていうのは呼び出し元の処理なんだよ

いい加減に気づけ馬鹿 >>664
670 :
2016/01/09(土) 14:54:33.41 ID:1QZox6W1
>>668

究極に頭おかしい人がきました。
好みの問題だと本当に思っているらしい。そりゃ、世の中クソコードで溢れるわ。
671 :
2016/01/09(土) 14:55:22.03 ID:1QZox6W1
>>667

中身が無いのはお前の頭です。
672 :
2016/01/09(土) 14:57:02.55 ID:1QZox6W1
IDみたら同じやつか。こいつ、本当に糞コード生産マシンだろうな。
673 :
2016/01/09(土) 15:04:09.39 ID:1QZox6W1
>他人の価値観を自分の中に取り込んで自分の世界を広げるためのものなんだよ!!←できる人

"←できる人"って、ばーーーーーーーーーーーーか!
674 :
デフォルトの名無しさん
2016/01/09(土) 15:06:12.89 ID:hdqMNonU
>>673
待って!落ち着いて!いまから私が言うことに耳を傾けて。
びっくりするかもしれないけどホントのこと伝えたいから。
プログラムはケースバイケースなの!!なんでもありなの!!!
675 :
2016/01/09(土) 15:14:34.02 ID:1QZox6W1
ケースバイケースのことはあるが、今回のことは違う。
以上

馬鹿
676 :
デフォルトの名無しさん
2016/01/09(土) 15:22:04.43 ID:im9ptLOw
馬鹿バイ馬鹿のことはある
677 :
2016/01/09(土) 15:27:26.70 ID:5qP+Va2j
さーらバイバイさーらバイということもある。
678 :
2016/01/09(土) 15:33:15.50 ID:+5afeFvR
>>669
じゃあif elseがない処理=呼び出し元の処理ということ??
関数作る必要ないじゃんwww

>>665
呼び出し元が複数あったときにコードが増えるんですがw
何のための関数化だよ
せめて関数内で別関数としてコールする形式にしないと無駄が増える

経験的に、後から読むとき、関数最初でのreturnは見やすいけど、
途中でのreturnはelseのほうが見やすかったりする
だからケースバイケース
679 :
2016/01/09(土) 15:37:06.74 ID:hQalMJ4t
>>669
関数でローカルに取得したリソースの解放ってのは関数内部の処理だろう。
C++ならRAIIでやるところかもしれんが。
680 :
2016/01/09(土) 16:34:28.92 ID:5qnqwO4H
>>678
条件分岐を呼び出してあとに続く処理を実行する方を外から呼び出してもらうようにするだけ
分解すればあとの処理はifの条件にかかわることなく一回でテストが終わる
ダラダラ一つのメソッドに書くとマトリックス的にテストケースが発生し産廃コードが誕生する
681 :
2016/01/09(土) 17:46:59.93 ID:hQalMJ4t
>>680
そういう等価な書き換えでテストケースが減るわけがないんだがな。
C0カバレッジしか見てなくて途中returnのケースをテストしてないのかとも思ったが、
ひとつの関数だとマトリクス的にケースが増えるってのが意味不明だな。
どういう基準でテストしてるんだか。
682 :
2016/01/09(土) 18:23:22.10 ID:5qnqwO4H
>>681
if
A
else
B
C

Cが別関数になってないとACとBCのテストパターンコードがいる
一方別関数の場合はAとBそれと独立してCで事足りる
これが長いものになると前者は爆発的にパターンが増えていく
関係性がないものは分離する
関係性があっても関係性の部分だけを取り出し分離する
細かくなってればテストコード自動生成も実用性が出てくる
683 :
2016/01/09(土) 18:27:33.31 ID:NrfMM3wG
デバッガで見るとreturnで関数の最後に飛んでいるから、
途中でreturnしてもいいんじゃないの?

一方職場でジャンプ関数使う人はいた。
でも1人でやってるプロジェクトなんで見て見ぬふりをしたw
自分以外がメンテナンスできないようにする人っているしね…
684 :
2016/01/09(土) 18:31:44.58 ID:e4D1bXEw
ジャンプ関数ってまさか
longjmp()とcome_from()?
gotoがましに見えるレベル
685 :
2016/01/09(土) 18:54:23.29 ID:hQalMJ4t
>>682
分岐網羅ならどっちにしろACとBCの2ケースになるように見えるが。
それともAとBとCの単体テストだけやっておしまいって話?
ついでに言えば、これがどう>>680の説明になっているのかわからん。
686 :
2016/01/09(土) 18:56:50.22 ID:PkTsY4HK
>>685
由緒正しき「継続」という奴だ,まさか,とかいっていいのか?
687 :
2016/01/09(土) 19:26:55.42 ID:NrfMM3wG
come_fromって何かと思ったらサンプルコードじゃんw
「returnするのが面倒くさいからと」代わりにジャンプ関数使っていたな…
(なんでも手製でツールを揃えないといけない時代で)独立したツールだったから
誰もソースコードチェックしなかったんだろうね。
688 :
2016/01/09(土) 20:03:07.47 ID:1QZox6W1
hdqMNonUの戯言に耳を傾ける馬鹿は+5afeFvRみたいな知恵遅れだけだ。
689 :
デフォルトの名無しさん
2016/01/09(土) 20:05:22.39 ID:j10t/SxZ
人命にかかわる部分はたいていC/C++で書かれているから、C/C++を使う人だけ気を付ければ良いんじゃないだろかね。
690 :
2016/01/09(土) 20:05:40.84 ID:1QZox6W1
>>680 >>682 に書いてあることの意味が分からない奴が、現役でプログラマしてるって事が恐ろしい…
691 :
2016/01/09(土) 20:13:15.02 ID:1QZox6W1
>>685
>それともAとBとCの単体テストだけやっておしまいって話?

だったらお前はその上層と下層を全て含めた
ABCDEFGHIJKLMN…
の全てのケースを含んだテストを一生かけてやってろ。

ユニットテストのしかたもする意味もわかってない馬鹿。
692 :
デフォルトの名無しさん
2016/01/09(土) 20:18:44.12 ID:j10t/SxZ
単体テストのやり方がわかっていないからといって馬鹿とは限らない。
アインシュタインは単体テストのやり方を知っていただろうか。
693 :
2016/01/09(土) 20:32:29.40 ID:1QZox6W1
単体テストのやり方がわかっていないから馬鹿だといってるのではない。
馬鹿だから単体テストのやり方がわかっていないと言っている。
694 :
2016/01/09(土) 20:36:35.31 ID:1QZox6W1
AのバグとCのバグを合わせた結果、テストケースでは見かけ上正しい出力がされてグリーンになってしまいました、

ABとCが分けてなかったらどうやって隠れた問題を検出するんだ。
695 :
2016/01/09(土) 20:41:02.73 ID:+5afeFvR
そもそも全てのプログラマがユニットテスト書くわけでもないしね(技術的にも仕様的にも)
696 :
2016/01/09(土) 20:47:18.34 ID:1QZox6W1
ユニットテスト出来ない奴がいる事と、理想的なコード自体の書き方と、何の関係があるんだよ。


何がそもそもだ、ばーーーーーーーーーーーか!
697 :
デフォルトの名無しさん
2016/01/10(日) 06:54:26.02 ID: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.25 ID: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.79 ID:/ndDSiBm
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

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

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

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

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

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

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

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

funcAB(){
if
A
else
B
retuen
}

funcC(){
C
}

ってことなんじゃねーの。funcCが、funcABの動作に影響しないんであれば、
テストパターンは減らないけど、テストパターンごとの確認観点が減るんじゃない?
701 :
2016/01/11(月) 17:12:25.34 ID:L4NGHVvd
ABとCが常にセットにして呼ばれる仕様だとしたら、
関数が増えて見通しが悪くなるだけな気がするけど
ユニットテスト利用する場合ってこうするほうがいいの?
702 :
デフォルトの名無しさん
2016/01/11(月) 17:25:55.13 ID:WtkSn+b8
ソースコード見て問題なければテストする必要ないと思うの
703 :
デフォルトの名無しさん
2016/01/11(月) 17:50:15.50 ID:d9M93+6h
完璧なプログラムを書けばテストは必要ない。
テストに頼るのは甘え。
704 :
2016/01/11(月) 18:22:50.45 ID:zdgy9eHJ
プログラムが完璧でもコンパイラがバグっていて間違った実行ファイルができることもよくある
705 :
2016/01/11(月) 18:24:53.18 ID:I0GTrlSH
>>703
ほんそれ
706 :
2016/01/11(月) 22:08:07.48 ID:c8FGpC/F
プログラム通りにペリフェラルが動くと思ったら大間違いだ
707 :
2016/01/12(火) 01:19:44.32 ID:j5pK34T9
コンパイラのバグは稀たが、スペックシートのミスは日常茶飯事
708 :
2016/01/12(火) 01:21:08.98 ID:j5pK34T9
ていうか、>>703 はネタだろ?
709 :
2016/01/12(火) 06:24:29.22 ID:HCPDci+P
バグをバグと認めない鉄の心こそ必要
710 :
2016/01/12(火) 07:53:31.84 ID:fdNSnT90
16bit系組み込みCで
配列の要素数が16bitに制限されるのを
無視したコード渡されてバグってた事あるな
コンパイラからの警告一切無し
711 :
2016/01/12(火) 08:05:23.03 ID:fZplAbze
配列の添字が汎用レジスタのサイズ(≒int)の範囲に制限されるのは仕方ない
でもまともなコンパイラなら制限事項として明記してある
712 :
2016/01/12(火) 23:54:28.42 ID:iltzJQ7p
そんなの8086で散々経験しただろ
713 :
2016/01/13(水) 11:46:55.82 ID:1mKhW0n4
>>710
要素が16bit 越えるって、どんなソフトなんだ?
714 :
2016/01/13(水) 11:49:06.21 ID:O1+6xUWF
型がByteだとして
65536Byte=64KByte

組み込みだとしても十分ありうる
715 :
2016/01/13(水) 12:18:23.73 ID:1mKhW0n4
>>714
それだけ大きくなったら、普通ポインタとか使うだろ?
716 :
2016/01/13(水) 18:12:49.86 ID:yX2Is5Iq
気付かずに配列使ってたって事だろ。
717 :
2016/01/13(水) 18:16:44.87 ID:4t9WgEvh
組み込みなら標準ライブラリがないとか
ヒープがないとか普通だからな
718 :
2016/01/13(水) 18:21:42.41 ID:IMboGSkT
>>715
ROMに大きなテーブルだと配列使うでしょ
719 :
2016/01/13(水) 18:29:02.62 ID:IMboGSkT
>>717
Cの標準ライブラリが無いってことは最近では非常にマレ
ROM容量の関係で使えないことはある
これを無いって言うなら無い
デカいのはprintfとか
あとはfloat, double, long longもROM容量の関係で使えないことも
720 :
2016/01/13(水) 18:32:38.56 ID:IMboGSkT
標準ライブラリを使うのをためらうくらいの規模なら、当然ヒープも使わない
当然OSレスで、シングルタスク+割り込みのみ

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

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

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

まあ物によってデバッグ方法もいろいろ
730 :
2016/01/14(木) 04:32:02.23 ID:fK8eMzuy
どんな低速でもソフトUARTぐらい作れるだろ
ドライバって程かよアホが
731 :
2016/01/14(木) 15:09:22.15 ID:h8CGsofL
低速マイコンでRAMも使わずにCPUも占有せず、場合によってはポートも使わないでソフトUARTか
頑張って作ってね
732 :
2016/01/14(木) 15:12:47.78 ID:h8CGsofL
8pinマイコンとかしらないのかな?
733 :
2016/01/14(木) 20:34:54.74 ID:1Js/RlWK
>>730
割り込み禁止にしてCPUサイクルでクロック作るのか
タイマ割り込み駆使してクロック作るのか
どっち?
734 :
2016/01/14(木) 20:44:59.00 ID:Xzg+p3Xe
もう一個位は方法があるけど...
まあ普通はそんなことはせずもっと普通の方法を使う

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

デバッグ用にわざわざマイコンを積むのか?
金をかけて
組み込みはコストが非常に重要だったりサイズが非常に重要だったりするんだけど
で、複数マイコンを積んだとして、マイコン間の通信はどうする?
デバッグじゃなくてシリアル通信が目的になってないか?
740 :
2016/01/14(木) 22:11:41.02 ID:fK8eMzuy
>>739
UART云々はシリアルでやるって流れから書いただけだよ
文脈読めアホが
741 :
2016/01/14(木) 22:21:14.63 ID:fK8eMzuy
というか組み込みでデバッグ大変だわーで釣ってる奴が気に入らないわ
肝心なコアをMSに握られてるWindowsアプリのデバッグ考えるとただの愚痴にしか見えないんだわ
742 :
2016/01/14(木) 22:27:51.95 ID:Xzg+p3Xe
>>740
あり得ないデバッグ方法を突然書き出したお前が全て悪い
743 :
2016/01/14(木) 22:38:04.92 ID:fK8eMzuy
>>742
誰が悪って言うならデバッグ方法いろいろとか書いといて具体的な方法は何一つ提示しないアホが悪いなんじゃないの?
組み込みはこういう口ばっかの奴が多くてうざいわほんと
744 :
2016/01/14(木) 22:39:25.50 ID:Xzg+p3Xe
は??
具体的な方法はいくつも書いただろうが
日本語が読めない?
745 :
2016/01/14(木) 22:39:57.75 ID:Xzg+p3Xe
>>721
746 :
2016/01/14(木) 22:40:31.37 ID:fK8eMzuy
そういやここ絶望的なコードのスレなんだが
そもそも組み込みで絶望的な事なんてあるか?
作った品が売れないとかか?
747 :
2016/01/14(木) 22:40:32.18 ID:Xzg+p3Xe
あ、間違った
>>722
748 :
2016/01/14(木) 22:43:01.11 ID:fK8eMzuy
>>745
>>721は別のIDだしお前の発言かなんてわかんねーよ
ID:Xzg+p3Xeで具体的なこと何も書いてねーなーってことだよ
IDも判らないアホだって言いたいのか?
749 :
2016/01/14(木) 22:43:56.17 ID:Xzg+p3Xe
>>746
いくらでもある
組み込みも規模はいろいろ
時計や簡単なオモチャレベルからWindowsを積んだようなものまで
750 :
2016/01/14(木) 22:44:35.38 ID:fK8eMzuy
>>747
>>722も違うIDだろ
もうアンカーはいいから自分の口で説明してみ?
751 :
2016/01/14(木) 22:45:24.42 ID:Xzg+p3Xe
>>722 はおれだ
俺の言葉で書いたレス
証拠はないが
752 :
2016/01/14(木) 22:46:09.80 ID:fK8eMzuy
>いろいろある
>いくらでもある
吹いた
組み込み業界はこんなんばかりでまさに絶望的だな!
753 :
2016/01/14(木) 22:46:34.02 ID:Xzg+p3Xe
なんか知らんが、そのあと無理やりUARTでデバッグする書き込みが続いた
754 :
2016/01/14(木) 22:48:44.71 ID:fK8eMzuy
じゃあ>>726にレスした>>727が悪い
755 :
2016/01/14(木) 22:49:40.13 ID:Xzg+p3Xe
組み込みを知らないのに知ったかぶって >>730 を書いたのか
出来もしないのに
756 :
2016/01/14(木) 22:50:03.06 ID:fK8eMzuy
組み込みって一人で何でもやるような商売だから
人とのコミュ力が試されるなー
757 :
2016/01/14(木) 22:51:11.33 ID:Xzg+p3Xe
>>727 があまりにトンチンカンだからつい >>729 を書いたんだ
758 :
2016/01/14(木) 22:52:40.56 ID:y5xIxK0W
なんでわざわざUART使うんだよ
普通JTAGとかLFASTとか使うだろ
759 :
2016/01/14(木) 22:52:42.42 ID:Xzg+p3Xe
>>756
いや、だから組み込みにもいろんな規模のがあるんだって
760 :
2016/01/14(木) 22:58:47.53 ID:Xzg+p3Xe
>>758
わざわざUARTを使う理由はいろいろある
UARTを使わない理由もいろいろある

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

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

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

膨大なログを出すだけの実行コード行を
ステップで一行一行実行していく気?w
766 :
2016/01/15(金) 01:06:14.87 ID:9kMRmw2b
天災さんが降臨されてたんですね
失礼しました
767 :
2016/01/15(金) 08:33:23.10 ID:3+jxxZHF
膨大と言ってもせいぜい数百MB程度だから検索できない訳がない
printf使ったって結果はファイルにリダイレクトするだろ
同じようなもんだ
768 :
2016/01/15(金) 11:05:47.01 ID:qP185FEX
       ロギング

  ∧_∧          __
 ( ・∀・)         | i \ \
 ( U U          | i  l =l
 と_)_) ____     | |__ノ  ノ
       | i(;;)H|   | ̄ ̄| ̄ ̄|
769 :
2016/01/15(金) 12:53:25.95 ID:0fhpXD7V
>>764
追えるようにログを吐くんだよ
770 :
2016/01/15(金) 12:55:53.08 ID:0fhpXD7V
そもそも、小さいマイコンじゃそんなに多量には吐けない

ブロッキングだと動作速度が大きく変わり
ノンブロッキングだと間引かれる
771 :
2016/01/15(金) 13:43:20.23 ID:zaUY/8Xo
なんでノンブロッキングだと間引かれるんだよw
772 :
2016/01/15(金) 18:16:06.18 ID:9X5/eWgr
小さいマイコンはバッファを大きく取る余裕がないから
773 :
2016/01/15(金) 18:16:55.68 ID:9X5/eWgr
いっぱい出せばすぐにあふれる
774 :
2016/01/16(土) 14:50:47.80 ID:OsKsEu35
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

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

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

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

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

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

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

電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない
775 :
2016/01/16(土) 18:22:51.71 ID:wGXFO9/q
社員として使えないなら切れ
使えるなら我慢しろ
776 :
2016/01/16(土) 18:23:39.03 ID:wGXFO9/q
せんべいはおれも食べる
ダメ?
777 :
2016/01/16(土) 18:26:19.06 ID:XWGZA0lu
777げっち(´・ω・`)b
778 :
デフォルトの名無しさん
2016/05/01(日) 10:15:32.72 ID: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.64 ID:5H9PV7Hp
死ねカス
780 :
デフォルトの名無しさん
2016/05/01(日) 18:06:50.36 ID:XA7YY+e1
>>778
絶望的なコードの紹介?
781 :
2016/05/02(月) 16:33:40.01 ID:aR8AOrvI
今までみたことのない糞レス
782 :
2016/05/22(日) 02:09:26.70 ID:PykTFw3U
変数名 data
783 :
2016/05/22(日) 12:11:03.96 ID:hKJLLsJo
凝集度をあげてほしい
784 :
2016/06/02(木) 23:05:04.71 ID:ZNUdZI3k
&hearts;
785 :
2016/06/03(金) 12:08:02.65 ID:cGjwwdHV
Enumを文字列のコード値にswitch文で変換して、それをswitch文で別のEnumに変換する
ってのがいろんな所に書いてあった
786 :
2016/06/05(日) 02:49:12.74 ID:b0qHmmcL
いまどき変数名が衝突して不具合を生じてたとか馬鹿な報告を上げてくる下請け
787 :
2016/06/05(日) 12:52:01.08 ID:sTpf+U42
>>786
釣りかもしれんが
納品検収テストで見つけられない発注元の方に絶望するわ
788 :
2016/06/05(日) 13:12:06.06 ID:OYIyvlQD
国や公務員からしてそんなことやってるから三菱になめられるんだよ
789 :
2016/06/06(月) 05:03:16.22 ID:QbKl1YZH
>>787
納品前の結合環境のバグだよ
まともなフェーズ管理のある環境で働いたことのないガキは引っ込んでろ
790 :
2016/06/21(火) 23:08:20.65 ID:GMAXhxXB
>>782
使い所によるのでは?
791 :
2016/06/22(水) 08:46:39.65 ID:MtYOmoik
「datas」って英語圏でも使ってるの見るね。間違いではないのかな?
792 :
2016/06/22(水) 09:59:00.26 ID:t1NluOvj
int a[10];
int b[10];
int c[10];

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

信じるか信じないかはあなた次第
793 :
2016/06/22(水) 11:15:52.48 ID:DmPvlaR4
datumなんて見たことすらないしな
794 :
2016/06/22(水) 11:55:36.82 ID:yBOVYSwe
datumは見たことあるな
miceとかも見たことあるな
795 :
2016/06/22(水) 21:58:10.88 ID:aSQEHncx
indicesを最近まで知らずにindexesって書いてたわ
796 :
2016/06/23(木) 11:49:21.94 ID:332nxUAD
railsみたいにそういうの判っててindexesにしてるケースもある
797 :
2016/07/04(月) 21:58:16.57 ID:0RWmorvn
2400bpsの通信速度のコンソールに9600bpsの通信回線の通信ログを吐き出すプログラム
798 :
2016/07/05(火) 23:20:03.68 ID:kKcHGrML
んー、ちょっとスレの趣旨と違うかな。
799 :
2016/07/12(火) 09:09:02.35 ID:GUx/gdNo
C#で、糞長いメソッド内の処理を、意味のある単位にregionで囲ってるの見ると、切り出したくてムラムラする。
800 :
2016/07/12(火) 12:22:44.71 ID:DRheqrQu
担当が逃げて押し付けられた、こんなコードに責任は持ちたくない
でも読まなきゃいけない読めなきゃいけない…
その妥協点がregionなのさ
801 :
2016/07/13(水) 22:27:12.90 ID:cbsCrAwe
読まずに保守するテクニックを身につけないと辛いよ
802 :
2016/07/15(金) 09:11:47.85 ID:RfCrCFKv
ドキュメンテーションコメントに嘘書くのやめろよ!
嘘になっちゃうような修正をするなら、コメントもちゃんと見直してくれや
803 :
2016/07/31(日) 13:48:17.71 ID:kJ3Jsux+
forの中が1000行以上・・・
804 :
2016/08/29(月) 07:53:30.56 ID:7JUajOeD
仕事でFORTRAN77の年代物の科学技術計算コードを最適化(並列化含)したことあるんだがあれはひどかった。

この世の糞が全て詰まってたコードだった。誇張抜きで
805 :
2016/09/01(木) 16:00:38.67 ID:G1V/juoY
#regionて、IDEで見る以外に意味ないんだよね?
806 :
2016/12/08(木) 09:16:13.50 ID:FEYStmIt
c++のコード引き継いだら

#define private public

てのを見たことある。
逆に新鮮だった。

もちろんこの行は消した。
807 :
2016/12/09(金) 22:56:12.00 ID:Pi2Dlq3z
>>806
unit test でもやってたんじゃね?
808 :
デフォルトの名無しさん
2016/12/22(木) 11:56:29.60 ID:/ytrOsGa
>>807
何の弁明にもならん
809 :
デフォルトの名無しさん
2016/12/22(木) 12:31:28.47 ID:mlmgTnRW
phpのecオープンソースmagento
810 :
2016/12/29(木) 21:32:42.78 ID: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.92 ID:HLv5dR03
https://code.hackerearth.com/7b7b82s
https://code.hackerearth.com/431130T
一生懸命に12時間もかかって書いたのにあまりウけませんでした
812 :
2017/01/01(日) 21:15:21.45 ID:9MvoRZrQ
センスのかけらもない
813 :
2017/01/03(火) 18:26:56.42 ID:kDLE0pJc
>>812
センスとはどういうことをさすの?
814 :
2017/01/04(水) 20:28:14.83 ID:EyqoOVTu
エレガンス
815 :
2017/01/06(金) 12:03:13.07 ID:Iab1DByP
>>813
816 :
2017/01/06(金) 12:11:20.90 ID:5QBUIDnx
>>815
今ならクーラーではないか?
817 :
2017/01/06(金) 14:20:26.76 ID:NYT/unlz
>>816
それはシロッコファン
818 :
2017/01/06(金) 15:24:21.81 ID:XtKi9eaG
Your joke is not Coooool!!!
819 :
2017/02/06(月) 19:10:19.87 ID:P0M4N+3Y
820 :
2017/02/07(火) 11:04:23.35 ID:hm/AHdrI
情報エキスパートしか知らないのか、入門書を真に受けたのか
受注クラスに受注のすべてが書いてあった
821 :
2017/02/24(金) 06:22:47.09 ID:8ATozeRB
// よくここで止まっていた(いつの間にか何故か解消しました)
822 :
2017/02/27(月) 12:20:37.06 ID:GGu6vxcV
一年前の自分のコード
267KB

新着レスの表示

★スマホ版★■掲示板に戻る■全部前100次100最新50

名前:E-mail: