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

■ このスレッドは過去ログ倉庫に格納されています

短いコードはわかりやすい ← これは間違いだった

1 :デフォルトの名無しさん:2012/08/05(日) 18:53:07.02
中級者にありがち。

なんでも一行で済ませようとする。
短く書くのが絶対にいいことだと思って疑わない。

少し冗長に書いたり、付加情報をつけたほうが
コードは読みやすくなる

2 :デフォルトの名無しさん:2012/08/05(日) 19:03:47.31
(自称)中級者の間違いだろ。

3 :デフォルトの名無しさん:2012/08/05(日) 19:04:49.26
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所


4 :uy:2012/08/05(日) 20:01:23.02
俺も>>1には同意する
ロジックを1行にまとめてしまう部分にも言えるが
設計全体についてもいえる
大規模になるはずの設計を小さくまとめると
複雑さが増したりしてる

で、それを繰り返していくと誰には扱えない超効率的なシステムが出来上がる

俺はそこまでいった後、未熟な俺にも扱えるように、わざと最近はコードを冗長させてることもある
コピペしたほうがいい部分もあるんだよ

すべてを妥協なしでコピペなしで作って果てまでいくと、マジで凄いものが出来上がるぞ
絶対に使えない凄いものが

5 :デフォルトの名無しさん:2012/08/05(日) 20:22:25.03
1行の単純ロジックで、読み易さ云々って、低レベル過ぎだろ。

6 :uy:2012/08/05(日) 20:29:51.22
>>5
p [*"a".."f"].zip(["_"].cycle.with_index(100)).join
よめる?
実行せずに実行結果予測できる?

7 :デフォルトの名無しさん:2012/08/05(日) 21:12:22.01
必要以上に短いコードは判りにくいだけ。

バカは変数名を1文字にする。

8 :デフォルトの名無しさん:2012/08/05(日) 21:42:15.14
>>6

「説明用変数の導入(Introducing Explaining Variable)」
という名前がついているリファクタリングを行う必要があるな。

9 :デフォルトの名無しさん:2012/08/05(日) 21:42:46.38
正直ソースをテキストだけで記述するってのは限界だと思う。
xml化でもいいけど、もっと設計内容や変更履歴、修正内容まで全てぶち込めるような
形式に移行してもいいんじゃないかと。

10 :デフォルトの名無しさん:2012/08/05(日) 21:47:45.89
>>9
そこでWEBですよ。

11 :デフォルトの名無しさん:2012/08/05(日) 22:28:47.16
>>1
まあ一般的にはその通りだが、まさか
Cなどの3項演算子ごときが理解できないんじゃないだろうなw

12 :デフォルトの名無しさん:2012/08/05(日) 23:26:28.08
大企業では3項演算子は禁止です><

13 :デフォルトの名無しさん:2012/08/06(月) 02:26:39.91
んなこたあねえだろ
どこの大企業だ

14 :デフォルトの名無しさん:2012/08/06(月) 02:59:04.98
言えるわけ無いだろw

恥ずかしすぎるから。

15 :デフォルトの名無しさん:2012/08/06(月) 10:07:13.34
>>9
同意
上から下へ記述するだけの平面的エディタはそろそろ終了

16 :デフォルトの名無しさん:2012/08/06(月) 11:09:34.11
>>15
今時、構造を把握出来ないエディタで仕事になるのか?

17 :デフォルトの名無しさん:2012/08/06(月) 11:38:38.60
そういう事を言ってるわけじゃないんだけどな

18 :デフォルトの名無しさん:2012/08/06(月) 11:41:50.74
>>16
言語にもよる。Prologなんかだと、構造なんて概念がないから要らないと思う。

19 :デフォルトの名無しさん:2012/08/06(月) 17:50:58.29
COBOLを使えということだな

20 :デフォルトの名無しさん:2012/08/06(月) 18:31:04.40
>>19
不要、と実現出来ない、の違いが有るけどな。

21 :デフォルトの名無しさん:2012/08/07(火) 15:50:01.93
具体的に
短くて解らないのを長くして解るようになった例を
見せて

22 :デフォルトの名無しさん:2012/08/07(火) 16:53:25.95
>>21
スレタイでは一般化してるから、2、3の事例では不足だけどな。

23 :デフォルトの名無しさん:2012/08/07(火) 21:53:10.29
>>21
7行プログラミングとかその極みだろ
あとビット数を数えるやつとか1/√nを求めるアルゴリズムとか

24 :デフォルトの名無しさん:2012/08/07(火) 22:41:42.59
>>21

一瞬でも、ん? って思ったら負けな

n = 28 + (1 / (y % 4 + 1)) * (1 - 1 / (y % 100 + 1)) + (1 / (y % 400 + 1));























n = 28;
if(y % 4 == 0) n++;
if(y % 100 == 0) n--;
if(y % 400 == 0) n++;

25 :デフォルトの名無しさん:2012/08/07(火) 22:50:02.31
普通
if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) n++:
だろ

26 :デフォルトの名無しさん:2012/08/07(火) 22:57:44.29
そもそも、どっちも似たような長さじゃん
趣旨理解してないのか?

27 :デフォルトの名無しさん:2012/08/07(火) 23:03:59.03
>>25
それみても、ん?って思うだろw

28 :デフォルトの名無しさん:2012/08/07(火) 23:05:34.23
ん?って一瞬思考が止まるのが
わかりにくいコード。

すらすら読めるのが、わかりやすいコード。


コードの長さを短くするのではなく
(他人が読んだ時に)理解するまでにかかる時間が短いのが
良いコードである。

29 :デフォルトの名無しさん:2012/08/07(火) 23:10:52.61
%って==より優先だっけ?

30 :デフォルトの名無しさん:2012/08/07(火) 23:10:56.65
しかしコード量が多いとわかった気になって罠を見過ごすことも

31 :デフォルトの名無しさん:2012/08/07(火) 23:17:02.37
別にこんなコードでも、ん?とはならないな

n = 28 +!(y % 4) - !(y % 100) + !(y % 400);

32 :デフォルトの名無しさん:2012/08/07(火) 23:26:53.80
そりゃお前が書いたからだろw

33 :デフォルトの名無しさん:2012/08/07(火) 23:27:03.25
短いとか長いってこういうののことだと思っていたw
theDay.isLeapYear?
d.isLeap?

34 :デフォルトの名無しさん:2012/08/07(火) 23:30:34.92
なんだメソッド名の長さか?
そんなもんJavaさんの圧勝だろ

35 :デフォルトの名無しさん:2012/08/07(火) 23:53:56.38
「短いコードは読み難いからそんなコード書くな」と言い出す奴の低能率は異常

36 :デフォルトの名無しさん:2012/08/08(水) 00:02:35.58
>>35
リーダブルコード、もう読んだ?

読んでないよねw

37 :デフォルトの名無しさん:2012/08/08(水) 00:12:09.15
え?The Art of Readable Code読んだの?と思ったら
日本語訳出てたのか

38 :デフォルトの名無しさん:2012/08/08(水) 11:23:24.85
2012年8月8日以降に販売されるパソコンを全部買ったのか


39 :デフォルトの名無しさん:2012/08/08(水) 11:25:16.43
       \    ;;;--‐''''::::::::::::::::::ヽ        _,,−''
          /:::::::::::::::::::::::::::::::::::::::::::、    _,,−''
`−、、      /::::::::::::::::::::::::::::::::::::::::::::::::::::、        _,,−''
    `−、、 i':::::::::::::::::/、::::::::::::::::::::::::::::::::::::i         
         |::::::::::::::/  :、:::::::::::::::::::::::::::::::::|  
         |::::::::;/ ‐─ ヽ─ヾ::::::::::::::::::::|   LISPは俺の妄想やねん
────   .|:::::i'   ヾ●) (●ノ   `i:::::::|  
         .゙:、:|    "" ノ 、 ゙゙     |:::/
            |      (__)     |     
    _,,−'     .i    ^t三三テ'    ,!   `−、、
_,,−''         ヽ、          ノ       `−、、
        .     \___    ___/
                 | ̄ ̄|     

40 :デフォルトの名無しさん:2012/08/08(水) 15:41:51.43
短いコードほど検索に掛かり難いということはないのかな?

41 :デフォルトの名無しさん:2012/08/08(水) 16:34:58.32
7行プログラミングみたいにやり杉なのはともかく

言語特有の短い記述を利用した事によって
読めない奴が出てくるっていうのは
熟練度の問題だけどね

42 :デフォルトの名無しさん:2012/08/08(水) 17:54:34.36
>>41
いろいろなプログラマレベルが存在することは当然で、ある水準にならないと
読めないコードが存在するなら、それは言語の問題。

43 :デフォルトの名無しさん:2012/08/08(水) 18:04:52.20
チームのコミュニケーションの問題だろ。

44 :デフォルトの名無しさん:2012/08/08(水) 18:07:26.64
オブジェクト指向で書かれたプログラムを与えても、上から下に流れるプログラムしか読めないプログラマ()は読めないから言語の問題だけではないだろう。
新しい方法で綺麗に書けば、新たに学べる人には読みやすいだろうけど、古い読み方しかできない人には読みづらい。
多くの言語は、いろんな書き方ができる。

45 :デフォルトの名無しさん:2012/08/08(水) 20:15:23.63
>短いコードはわかりやすい
単純にして読みやすく

46 :デフォルトの名無しさん:2012/08/08(水) 20:18:25.08
いろんな会社でプログラム組んできたけど
少し自信のある(大抵は若い)プログラマーは
技術の高い人しか分からないような高度なプログラムを書いてるんだ
って思って貰いたい傾向があるから、必要以上に
複雑な処理をしたがる気がする

特徴的に分かり難いと思ったのは、関数分割の時代はとにかく極限まで、
細かい処理に分割するし、オブジェクト指向時代は極限までオブジェクトを
細分化して定義しようとする。そしてそれぞれに付けられる名前は
暗号のような短縮された名前だったりする。
プログラムのエントリーポイントは初めて見た人が見ても
わかりやすい名前ですか?
モジュール分割しているなら、それぞれのモジュールの名前は
その役割が誰でもが分かりやすいものですか?

充分に単純なプログラムは、充分に単純なプログラムで書けるはずです。
単純なプログラムを単純に書けない人は、大規模プログラムを
安全でメンテナンスを容易に書く事は出来ないですよ

47 :デフォルトの名無しさん:2012/08/08(水) 20:19:20.52
要するにあれだ、
漢字を使うと読めない人が出てくるから
みんなひらがなを使いましょう、ってやつだ

48 :uy:2012/08/08(水) 20:45:31.26
短くても読みやすいコードはあるけど
ゴミカスが短くまとめるとゴミカスってだけ
ただ純粋にそいつのスキルが低い

極限まで短くするなら最適解のコードをかけよ? いや100点とはいわず、せめて90点くらいの
短くまとめたのにアルゴリズム的に点数つけるなら50点とかそこらだとゴミでしかない

49 :デフォルトの名無しさん:2012/08/08(水) 21:09:49.98
uyは小物ほどよく吼えるっていうのを体言してるな

50 :uy:2012/08/08(水) 23:15:05.51
小物()

口数減らせば大物のフリ出来るよね

51 :デフォルトの名無しさん:2012/08/08(水) 23:22:15.13
>47
ああそういうことか。

つまり、正しいのはこういうことだな。

漢字を使ったら、全部ひらがなよりも分かりやすくなることが多いが
だからといって、必要以上に難しい感じを使うと、読みづらくなる。

法律用語のような難しい言葉で書くよりも
平坦な言葉で書いたほうがわかりやすい。

52 :uy:2012/08/08(水) 23:45:51.03
なんでさぁ
ストレートにそれはそれ。これはこれ。 と、考えりゃいいのに
一々別のものに例えなきゃ思考すらできねーのお前ら

アホなの?

バカなの?

53 :デフォルトの名無しさん:2012/08/09(木) 00:09:40.55
コード書けないから
例えで分かった気になってるだけ

54 :デフォルトの名無しさん:2012/08/09(木) 00:17:24.96
>>52
どうでもよくね?

反論したいわけじゃないでしょ?

55 :uy:2012/08/09(木) 08:04:45.16
>>54は例えるなら人間ではなく動物に近い
例えるならこのスレはまるで牧場のようだな
例えるならスレッドにレスという草が生えていてお前らはさながらそのレスをムシャムシャと
牛のように食べていく家畜に似ている
例えるならしかし実際食べているつもりでもその草には毒草が混じっていて
バカな牛はなぜか毒草をこぞって食べようとする
例えるならそして胃の中で消化不良を起こし体と精神を内面から崩していくのに
そう例えるならお前らは家畜に似た実験動物
実験動物がプログラミングについて語っている様は例えるなら
逃げられない運命からの現実逃避に似ている
例えば意味のないレスに躍起になってレスを返すのはその証拠
例えば「?」というクエスチョンマークはこの場合疑問符ではなく
例えるなら小鳥が親鳥からエサをもらう時に上を見上げ物欲しげな顔をする行為に似ているレスを欲する為の「?」に過ぎない

あー、例え話をしてみたら54を分かった気になれた

56 :デフォルトの名無しさん:2012/08/09(木) 08:47:07.96
「短いのが必ずしもいいプログラムではない」という誰でもわかる誤解のしようがない言葉をわざわざ何かに例える自体、
わざわざ複雑にしたがる、または何でも単純化したがる奴らのすること。


57 :デフォルトの名無しさん:2012/08/09(木) 10:34:26.53
コードの長さは関係ない
一行にまとめようが、数行に分けようが理解の難しさは全く変わらない
それよりも抽象化の多用がコードを読みにくくしている最大の原因


58 :デフォルトの名無しさん:2012/08/09(木) 10:51:23.54
>>57
同意。

59 :デフォルトの名無しさん:2012/08/09(木) 12:13:13.25
begin...end;    vs  {...}
if (a = b) then  vs  if (a == b)
a := b       vs  a = b

どっちがわかりやすい?

60 :デフォルトの名無しさん:2012/08/09(木) 12:41:12.38
このスレの短くってその話じゃないです

61 :デフォルトの名無しさん:2012/08/09(木) 15:40:49.20
int val = (a == b) ? c : d;

int val = c;
if (a == b) {
  val = d;
}

int val;
if (a == b) {
   val = c;
} else {
  val = d;
}
短いほどわかりやすくね?

62 :デフォルトの名無しさん:2012/08/09(木) 15:52:53.15
短すぎるとハマった時にハマりまくるとか?

63 :デフォルトの名無しさん:2012/08/09(木) 17:28:05.48
>>24
ん? 2つ目掛けるのか?
yが100で割り切れる時は * 0
割り切れない時は * 1 になりそうだが。

あ、ん?って思ったら負けなのか

64 :デフォルトの名無しさん:2012/08/09(木) 20:27:52.18
まだ「短くて分かり難い」コードが出ていない件

65 :デフォルトの名無しさん:2012/08/09(木) 21:01:25.08
(defun Y (f)
((lambda (x)
(f (x x)))
(lambda (x)
(f (x x)))))

66 :デフォルトの名無しさん:2012/08/09(木) 21:15:32.49
>>59
どっちも同じ。

構文が違うだけで
表面は同じだから。

そして、文字数は違うがタイピングに
かかる時間にほとんど違いはないだろう。

なぜなら実際の開発では
タイピング以外の部分がコーディング時間の
大半だから。

67 :デフォルトの名無しさん:2012/08/09(木) 21:15:35.10
y f = f (y f)

68 :デフォルトの名無しさん:2012/08/09(木) 21:57:07.76
昔の人は短く書くために色んな技法を使ってたよね
もうわざと読みにくくしてんのかと思うぐらい
そうしたのはいろいろ制約があったからだろうけど
そんなのを保守することがあったから>1の言うことはわかる

69 :デフォルトの名無しさん:2012/08/09(木) 22:01:53.26
短いコードを冗長な等価なコードにトランスレートしてから保守すりゃいいだろカス

70 :デフォルトの名無しさん:2012/08/09(木) 22:22:10.65
やっぱり冗長なのは良くないよ
Javaですら分かってる

http://www.flickr.com/photos/33583790@N00/7465233960/

71 :デフォルトの名無しさん:2012/08/09(木) 23:47:18.67
書く奴がバカなのか

読む奴がバカなのか


72 :デフォルトの名無しさん:2012/08/09(木) 23:54:15.23
>>57
それは設計が間違ってるんじゃね。 アセンブラレベルの命令を判りやすく抽象化したC言語がわかりにくいとは思わない。

73 :デフォルトの名無しさん:2012/08/10(金) 00:39:07.84
馬鹿には無理

74 :デフォルトの名無しさん:2012/08/10(金) 02:32:12.18
>>70
冗長というのは、コードに含まれてる
情報量が同じなのに、長いコードのことを言う。

たとえば、動的言語は型情報をなくしているだけ。
つまり情報量が減っている。その分開発が大変になる。
それと比較して情報量が多いJavaが冗長。という言い方は間違い。

75 :デフォルトの名無しさん:2012/08/10(金) 07:14:34.90
>>69
短いコード: http://nojiriko.asia/prolog/fizzbuzz_6.html
長いコード: http://nojiriko.asia/prolog/fizzbuzz_4.html
w


76 :uy:2012/08/10(金) 08:48:01.32
>たとえば、動的言語は型情報をなくしているだけ。
>つまり情報量が減っている。その分開発が大変になる。

開発は楽

大変なのは「デバッグ」な?知ったか君


77 :デフォルトの名無しさん:2012/08/10(金) 08:50:39.47
さすが xor で and や or を再現できる有能なお方は、デバッグが開発工程に入っていないようですねwwww
謝れば楽になるよw

78 :uy:2012/08/10(金) 08:53:29.33
それから動的言語は静的言語に比べれば
速度を犠牲にしても書きやすい構文・機能を入れたり
(↑本当は静的言語でも入れられるにもかかわらず入れてこない)

しているんで普通にいまは動的言語で書いていけるレベルなら動的言語のほうが開発効率は高い
いつまで末尾「;」のついてる言語で遊んでんの?
この「;」打つ事が積み重なってどれだけの時間無駄にしているか気づいてないか?

79 :uy:2012/08/10(金) 08:56:53.89
>>77
人の文章読み間違えていらねーもん開発しちゃった方ですか?

デバッグは1人で開発する場面においては全然時間かからないだろうに
まさか自分で書いたコードを完全に忘れるとか、自分で書いたコードのテストに梃子摺るなんていう事態は考えられない
デバッグというのは開発人数が増えるにしたがって加速的に増えていく
少人数なら問題にならない

というのをお前らにいくら「教えても」無駄ってことは分かっているんだ

80 :uy:2012/08/10(金) 08:58:05.87
俺には、1人や少人数で開発したプログラムにおいて

一体どこにデバッグに梃子摺る要素があるのか分からない

分けが分からないw
自分で書いたコードすら管理できないならプログラミングやめろよ

81 :デフォルトの名無しさん:2012/08/10(金) 09:19:50.42
>>76
デバッグしてから開発クローズしろよw

82 :uy:2012/08/10(金) 09:48:44.95
誰がお前の意見を聞きたいと言った?
お前に発言権を与えた覚えはない

1人で書いたソースコードのデバッグ作業に梃子摺るようなレベルで
自分で書いたコードすら管理できないならプログラミングやめろよ


83 :デフォルトの名無しさん:2012/08/10(金) 12:10:22.75
I/Fの少ない、或いは抽象度の高いプログラムに限定するなら、同意。
デバッグが必要なプログラミングをしているのなら、何か間違っている。
しかし、GUIやドライバのような自分が全てを知り得ないようなものとのI/Fを
プログラミングするのであれば、相性と言う問題も含めてデバッグが必要になってくる。
或いは、チューニング作業もある意味デバッグと言ってもいいかもしれない。

それはさて、トリッキーで短いコードは判り難いと言うことはそんなに受け容れ難いことなのかねぇ。

84 :デフォルトの名無しさん:2012/08/10(金) 14:14:21.21
それ以前に発言権を奪う権限を与えた覚えがない。
自分の書いたプログラムにバグがないと思ってるのか。よっぽど使い道のないプログラムならそういうこともあるか。

85 :59:2012/08/10(金) 14:33:04.95
>>66
学生の教育用として開発されたPascal言語と
OSも書ける言語として開発されたC言語、その目指す方向性は違う。

Pascalは教育用として一般の人にも理解しやすい言語仕様となっている。

>if (a = b) then  vs  if (a == b)
一般社会では、aとbが等しいかは、”=”を使っているし
>a := b       vs  a = b
代入の意味で”=”を使うこともない。
>begin...end;    vs  {...}
あと、始まりと終わりを”{}”で表すなんて言語仕様をしらないと分からない。

C言語はOSも書けるよう可読性を有る程度犠牲にしても
効率や速度などを重視する。

同じ言語なら可読性が高い方が良いが
可読性は技術者のスキルによっても違ってくる。
初心者に合わせた可読性なんて逆に読みにくいし
上級者ぶって書かれたソースも分かり難い。

つまり、可読性は主観的な部分が多いということ。



86 :デフォルトの名無しさん:2012/08/10(金) 15:12:24.91
上級者は大抵文句たれずに読むから
読めねーって騒ぐ層はおのずと分かる

87 :デフォルトの名無しさん:2012/08/10(金) 15:15:36.83
>>85
>begin...end; 初めと終わり
そういう意味なのか。初めて知った。

88 :デフォルトの名無しさん:2012/08/10(金) 15:58:02.31
そういうやつもいるなら、これしかないな。

こっから→

←いまここ

←ここまで

89 :デフォルトの名無しさん:2012/08/10(金) 16:21:04.03
末尾に;のある言語はゴミ

90 :デフォルトの名無しさん:2012/08/10(金) 16:30:31.42
言語が統一される事がまずないんだよな
でも少し散らばりすぎ
XML(ML) Lisp(S式) C系(ふつう。) begin~end のブロック構文でかける言語
この4種類あたりが必要だと思える

で、消し去った言語の概念はこの4言語がすべてカバーする
言語数が少なくなれば初心者とかあまり関係ない
プログラミングをするにあたっての覚えるべき知識が一気に減る

91 :デフォルトの名無しさん:2012/08/10(金) 16:36:24.66
>>90
勝手に使わなければいいだろ。

92 :デフォルトの名無しさん:2012/08/10(金) 17:31:01.79
いみふ

93 :デフォルトの名無しさん:2012/08/10(金) 17:45:42.30
>>90
> C系(ふつう。)
> begin~end のブロック構文でかける言語

これを分けてる時点で、知恵遅れということがバレバレだな。

94 :デフォルトの名無しさん:2012/08/10(金) 18:19:05.68
ふむ、PascalとCを同一視すると。

95 :デフォルトの名無しさん:2012/08/10(金) 18:58:44.06
begin〜endと { } が
アルゴリズム的にもかなり別物というのを理解してないな

96 :デフォルトの名無しさん:2012/08/10(金) 19:14:57.83
rubyなんかは大体同じだろ
高階関数のシンタックスシュガーに使えるだけで

97 :デフォルトの名無しさん:2012/08/10(金) 19:22:19.73
ブロック構文は別物

98 :デフォルトの名無しさん:2012/08/10(金) 19:30:37.50
1分は書き捨てるだけじゃなくてもっと主張しろよ雑魚

99 :デフォルトの名無しさん:2012/08/10(金) 19:42:35.12
>>95
セマンティックスによるだけだから、別物と決めつけるのも間違い。

100 :デフォルトの名無しさん:2012/08/10(金) 19:43:09.33
誤字どんまい

101 :デフォルトの名無しさん:2012/08/10(金) 19:46:02.64
実際>>90この中から選ぶんだったら
XML C Ruby で十分ってことだよね

その他の言語はいらない

102 :デフォルトの名無しさん:2012/08/10(金) 19:51:29.93
>>79
いいから動的言語向けヘッダライブラリの実物を一つでいいから見せてみろよw
謝れば楽になるのにw

103 :デフォルトの名無しさん:2012/08/10(金) 20:09:31.01
全部shでいいよ。中にヒアドキュメントで好きな言語書くから。

104 :uy:2012/08/10(金) 20:12:23.68
彼は
include(笑)

とrequireの違いは理解できたのだろうか

105 :uy:2012/08/10(金) 21:16:49.01
もうさ
使わないなら使わないでいいと思うよ
お前らの人生は俺に関係ない
仕事がJAVAしかないなら家でもJAVAで、
そんで何もかもJAVAで、作っていればいいよ
仕事でしかプログラミングやらないやつは、そのほうが幸せなのかもしれない

俺は一番効率の良い道具じゃないと精神的にプログラミングしてられないから
俺はお前らよりも全然ダメだよ
効率のでないプログラミングなんてプログラミングじゃないと思ってんだ
お前たちはJAVAでもかけるっていうならある意味才能
そういう我慢のできる人間共のほうが使い勝手がいいしな
否定すんのやめるよ
JAVAやってろ

でもJAVAPGは二度と話しかけんなよ

106 :uy:2012/08/10(金) 21:20:19.93
マシでバカとゴミとJAVAPGと低脳とサルとゴミカスと人間共は二度と話しかけんなよ

107 :デフォルトの名無しさん:2012/08/10(金) 21:27:34.71
JavaのHogeHoge hoge = new HogeHoge(foo, bar, baz)
は流石に無いと思った
なんでC++の HogeHoge hoge(foo, bar, baz)から更に冗長になるのだろうか・・・

108 :デフォルトの名無しさん:2012/08/10(金) 21:30:31.91
>>107
そりゃやってることが違うからだろ。

109 :uy:2012/08/10(金) 21:48:41.71
同じだよバカ

そもそもnewの位置がおかしいんだよ
newはメソッドにしろよ
new演算子て。
なに考えて言語作ってんだよ

でもお前らはJAVAやれ

110 :デフォルトの名無しさん:2012/08/10(金) 21:54:33.83
メソッドチェーンをつなげすぎとかね。あんなの自己満足以外の何者でもない。読みづらいし、修正しづらいし。

111 :デフォルトの名無しさん:2012/08/10(金) 22:21:56.05
rubyやってるやつってちょっと頭かわいそうな感じなのは何故?

112 :デフォルトの名無しさん:2012/08/10(金) 22:38:43.16
javaやってるやつってちょっと人生かわいそうな感じなのは何故?

113 :デフォルトの名無しさん:2012/08/10(金) 22:46:32.47
Javaは使い捨て奴隷だからね

114 :デフォルトの名無しさん:2012/08/10(金) 22:49:42.74
それはJavaには限らない

115 :デフォルトの名無しさん:2012/08/10(金) 22:55:10.25
PGSEやってるやつってちょっと人生かわいそうな感じなのはなぜ?

116 :デフォルトの名無しさん:2012/08/10(金) 23:04:22.79
マジレスするとかわいそうな奴しかプログラムなんて組もうと思わないから

117 :デフォルトの名無しさん:2012/08/10(金) 23:13:06.13
Javaのやつらがやってるプログラミングって
まったく頭使わないから楽しくないだろうな
それで給料も安いんだから悲惨

118 :デフォルトの名無しさん:2012/08/10(金) 23:24:46.48
大半の仕事はそんなもんだ
楽しい、給料が高いのどちらかひとつが満たされるだけでも少数派

119 :デフォルトの名無しさん:2012/08/11(土) 00:42:41.74
虚業

120 :デフォルトの名無しさん:2012/08/11(土) 01:44:17.37
>>115
お前の知り合いは、そんなのばっかりって事だ。

121 :デフォルトの名無しさん:2012/08/11(土) 07:17:45.73
>>120
かわいそうな人間の一人だという自覚を持ったほうがいい

122 :デフォルトの名無しさん:2012/08/11(土) 07:40:02.17
35過ぎても派遣でPGならかわいそうと思われてもしかたないかもな

123 :uy:2012/08/11(土) 08:51:06.44
やっと気づいたのかよ
はやく業界脱出できるといいね、、、

124 :デフォルトの名無しさん:2012/08/11(土) 08:58:23.06
そもそも本当に虚業じゃん
プログラミングは一般人からすれば大変で
それなのにほぼ毎日毎日無意味なものを作ってるって悲惨以外になんといったらいいか

プログラマになりたがるにわかが減れば虚業で業界まわさずにすむんだよ
本当はいらない仕事を働き手が余っているという理由でとりあえず
なんかやらせて給料与えてるだけ
プログラマはもういらない

125 :デフォルトの名無しさん:2012/08/11(土) 09:03:43.08
だから実際JAVAとかrubyとか関係ないよ?
そもそも需要と仕事がないところで
無理やり金回してるよ?
言語の効率もゴミカスコードも関係ない
まずプログラマーがこんなにいらないんだから

126 :デフォルトの名無しさん:2012/08/11(土) 09:03:46.19
虚業が儲かるお陰で本当にお金が必要な所に金が回らないということがあればそりゃかなり酷い話だろうな

127 :デフォルトの名無しさん:2012/08/11(土) 09:50:14.14
お客は言語で金くれたりしないよ。
どの言語使っても、給料は同じ

128 :uy:2012/08/11(土) 12:08:16.45
ちょっと何かをこだわってみたり
将来性を考えたりする余裕がないんだろ
バブルとはまた違うんだろうけど
そのうち一気につぶれると思う

129 :デフォルトの名無しさん:2012/08/11(土) 13:55:48.61
預言者現る。

コンピュータ言語の前に
日本語の勉強をしては?

130 :uy:2012/08/11(土) 15:27:37.36
壊れたテープレコーダーみたいに
日本語がー英語がーって


さっさと電池きれろ

131 :デフォルトの名無しさん:2012/08/11(土) 16:14:36.07
自分で自分の電池の心配とかw

132 :デフォルトの名無しさん:2012/08/11(土) 16:36:10.56
壊れ

133 :デフォルトの名無しさん:2012/08/11(土) 17:10:41.44
昔、アセンブラ書いてた頃はソースをプリントアウトするのは必須だった
とても頭の中に収まらないから
でも今は開発環境が素晴らしく良くできているので
素早く目的のコードを出せるしモニタのみで編集できる
とは言ってもモニタに表示できるコードはごく僅か

作った本人ならコードがどんな流れになっているか判っている
しかし人のコードはあっちこっち頻繁に見て確認するハメになる
そんな時、ダラダラと長ったらしいソースだったらどうなるか
発狂する
モニタに1つのモジュールがスクロールせずに表示できるのがベスト

134 :デフォルトの名無しさん:2012/08/11(土) 17:20:58.22
クラス化して読まなくても済むようになってる。

135 :uy:2012/08/11(土) 17:24:00.47
classにそんな機能ありません

君の考えてるプログラミングが幼稚なだけ

136 :デフォルトの名無しさん:2012/08/11(土) 17:49:50.37
いちいちクラスの中のコード読まないと使えないのか。使えないやつは大変だな。

137 :デフォルトの名無しさん:2012/08/11(土) 17:54:57.34
中を読みたくても読めない無能が言う台詞じゃないな

138 :uy:2012/08/11(土) 18:23:55.06
どう考えてもclassの中のコードの話

139 :デフォルトの名無しさん:2012/08/11(土) 18:30:31.47
>>128
スクリプトに拘りを持つヤツがバカなんだよ
制御なりネットワークなりノウハウが溜まる分野はあるだろ

140 :デフォルトの名無しさん:2012/08/11(土) 18:33:54.96
バカでも出来るプログラムって、思ってる奴は
無能自慢が得意なんだね

141 :デフォルトの名無しさん:2012/08/11(土) 18:39:10.16
>>135
カプセル化の機能はそれなりに提供されてる。privateもしらないウンコだと自覚せよ。

142 :uy:2012/08/11(土) 19:45:49.17
そのカプセル化されたprivateメソッドの中の話だというのに話がなぜか通じない
まあクラスの中身を作る or 見る機会のないゴミってことにしておくか

143 :デフォルトの名無しさん:2012/08/11(土) 19:50:25.49
見る”機会”って言ってるってことは、
見ないこともあるって言ってるようなもんだw

機会があればいってみたい ← 毎回行っていると思いますか?

144 :デフォルトの名無しさん:2012/08/11(土) 19:57:01.21
>>117
それってrails,PHPも同じだろ

145 :デフォルトの名無しさん:2012/08/11(土) 19:57:35.71
自称天才がいるの?

146 :uy:2012/08/11(土) 20:36:48.37

133 :デフォルトの名無しさん:2012/08/11(土) 17:10:41.44
昔、アセンブラ書いてた頃はソースをプリントアウトするのは必須だった
とても頭の中に収まらないから
でも今は開発環境が素晴らしく良くできているので
素早く目的のコードを出せるしモニタのみで編集できる
とは言ってもモニタに表示できるコードはごく僅か

作った本人ならコードがどんな流れになっているか判っている
しかし人のコードはあっちこっち頻繁に見て確認するハメになる
そんな時、ダラダラと長ったらしいソースだったらどうなるか
発狂する
モニタに1つのモジュールがスクロールせずに表示できるのがベスト

134 :デフォルトの名無しさん:2012/08/11(土) 17:20:58.22
クラス化して読まなくても済むようになってる。





会話になってない

147 :デフォルトの名無しさん:2012/08/11(土) 20:39:49.05
そういうのは最初のレスでするもんだ。 おまえの負けだ。

148 :デフォルトの名無しさん:2012/08/11(土) 20:42:40.75
uyの作ったクラスは中のコードをいちいち読まないと使えないそうです。

149 :デフォルトの名無しさん:2012/08/11(土) 21:07:21.43
uyはその辺のブログあさって真に受けた知識とruby信者特有のキモさだけで語ってるから
実際にコード書いたことないよ
書き込みも読む価値なし

150 :uy:2012/08/11(土) 21:33:50.43
rubyの知識で俺様に勝てたら褒めて遣わす

151 :uy:2012/08/11(土) 22:37:58.30
俺の最近のクラスの使い方は
if 条件
  AAA_class.new
end

こんなんだしな
コンストラクタで全部処理するから戻り値とか受け取る必要なし

数万年前に通り過ぎてもはやクラスをクラスとしては使ってないのに
今更、俺にクラスがどうとか言われてもな

152 :デフォルトの名無しさん:2012/08/11(土) 22:40:37.95
うわひどい

153 :uy:2012/08/11(土) 22:44:43.84
>>152
言っとくけどひどいはRubyのほう
デストラクタなしでどうやってゲーム作るんだよ

デストラクタでオブジェクトの解放のコードを書くのはNGとしても
ゲームっていうのはデストラクタで次のオブジェクトの生成コードを描きたいんだよ

不便すぎてしゃーねーわ
俺様はもうアレな方法で実装しているからいいんだけど
もしrubyのオブジェクト指向に従って書いていたらデストラクタは実装できなかった
俺様設計の勝利

154 :デフォルトの名無しさん:2012/08/11(土) 23:03:55.25
Rubyがウンコなだけだろ。


オレはコンストラクトデーモンとデストラクトデーモンで回避する。

155 :デフォルトの名無しさん:2012/08/11(土) 23:17:15.90
uyはサブルーチンしか使えないんだね。

156 :uy:2012/08/11(土) 23:19:12.43
難しい問題だと思ったよ
デストラクタを言語に実装するとデストラクタに書くべきではない処理を書くアホがでてくるから実装はしないほうがいい
でもゲームでは明らかに必要なんだ
mobの消滅時に消滅しますたっていうメッセージの発行がな
ああ一枚メソッドかませることで実装しましたよでも言語にそなわってればかかずにすむ2行は釈然としない

157 :デフォルトの名無しさん:2012/08/11(土) 23:32:24.48
スマートポインタがあれば、終了処理などを任意のタイミングに制御できる。

158 :uy:2012/08/11(土) 23:38:16.61
黙れ初心者


消滅しますたをデストラクタでかかないとすると
第3者からの監視になるよね
オブジェクトを常に見張るオブジェクトが必要になる
別にかけるけどネストしすぎるんだよ


mazu的にはこのあたりどう考えるんだろう
オブジェクトAが消滅したことをしりたいオブジェクトBがあったら
mazuはデストラクタ不要論を押し通して第3者監視型でオブジェクトBは常にオブジェクトAを見張る設計を是とするか
やっぱりデストラクタ必要ですねとなるか
いや多分デストラクタの代わりとなる仕組みを一時的に入れるに落ち着くか
だろうな

タスクの1つ1つをメソッドのメタ定義でやって
メソッドミッシングあたりでeachして
タスクの削除はメソッドの削除でやると
メソッドが削除された時に呼ばれるメソッドはあるから
ruby仕様内で合法的に()デストラクタを作る方法もなくはない

159 :デフォルトの名無しさん:2012/08/12(日) 00:01:44.52
まあ、まだプログラム初めて20年ちょっとの初心者ですが。

その程度のコストも支払えない環境で開発するなら、Cでアセンブラ時代にやっていたような仕組みを導入するのがよいです。

固定構造体に確保済み配列を使いまわす例のヤツねw

160 :デフォルトの名無しさん:2012/08/12(日) 00:45:00.35
uyが初心者なのは良くわかった

161 :デフォルトの名無しさん:2012/08/12(日) 01:16:03.00
長い短い関係ないよ

プログラムの挙動が容易に想像できる範囲内にあるかどうかだよ。
単一機能がそれなりに複雑になってくると全ての挙動をドキュメント化することも
出来ないので、結局ソースを読むはめに。

単一機能を想像できる範囲に収めるってのが、短いプログラムの意味じゃないか。

162 :uy:2012/08/12(日) 01:39:47.30
>>159
おまえは20年間なにやってたんだよ
どう読み間違えたらタスク周りの問題だと勘違いするんだよおい歴20年

163 :デフォルトの名無しさん:2012/08/12(日) 01:49:34.94
あぁ、デストラクタとファイナライザをごっちゃにしてるのか。

164 :uy:2012/08/12(日) 01:52:43.30
う、うるさい!

165 :uy:2012/08/12(日) 01:54:55.23
結局rubyは小さなものを作る言語なんだよね
いくつかmathは重要な概念を言語からなくして
かけないようにさせて大規模開発でのバグをなくさせようという主張がはいってて
それは正しいんだけど
逆に考えたら常に手抜きせずにガチで設計しソースかかなければrubyでは大規模プログラムがかけないといっているようなものでもある
想定されていないmazuの理解の範疇を超えたプログラムはrubyでは作りにくい場合があるのかもしれない

166 :デフォルトの名無しさん:2012/08/12(日) 02:06:31.84
http://doc.ruby-lang.org/ja/1.9.2/class/ObjectSpace.html
define_finalizer

デストラクタなら自分で定義しろ。

167 :uy:2012/08/12(日) 02:30:18.33
ファイナライザとか関係ないし

現バージョンは1、9、3だし

すでに定義してあってその上で問題点をはなしているのに?


168 :uy:2012/08/12(日) 02:38:10.58
rubyがちゃんと速度でるならデストラクタ以外の実装もありえたが流石にまだ犠牲が大きすぎてやる気がしない
デストラクタはなくせる
それは事実
でもそれはそれ以外の部分がちゃんと作られていることが前提
デストラクタで別オブジェクトに対してのメッセージの発行が必要になる原因は
オブジェクトAの削除を速度的な問題から別オブジェクトCに委任しているから

オブジェクトAからオブジェクトBへ直接メッセージが送れず
かといって無関係のオブジェクトCにAからBのメッセージかくのもおかしい
だからデストラクタが必要になってしまった
ちゃんとつくればオブジェクトCがそもそもなくなるからオブジェクトAからBにダイレクトになってデストラクタもいらない

速度をください

169 :デフォルトの名無しさん:2012/08/12(日) 10:18:44.81
普通のプログラマは適材適所でいろんな言語使うのになんでuyはわざわざ目的に適してないrubyにこだわって文句ばっかり言ってるんだろう
あ、rubyしかでき(

170 :uy:2012/08/12(日) 10:40:30.45
俺が文句さえ言わない言語はもはや見放してる
ム板に自分のメモかいてるようなもんだからスルーでもいいよ

171 :uy:2012/08/12(日) 10:51:42.03
ほとんどコンストラクタに処理詰め込むような設計だし
ruby以外ではかけるかどうか怪しいソースになってる
プログラミングは再利用の効率を高めるのがそれなりに難しい
自分の書いたソースコードを無駄にしない仕組み
そのためには固有情報のような情報を、つまりプログラム内からハードコードィングされたアルゴリズムそのものを消し去る必要がある
あるいはハードコードィングされた部分を変更なしで別の物を作れる設計
静的言語では無理

172 :デフォルトの名無しさん:2012/08/12(日) 10:52:34.08
>>167
http://doc.ruby-lang.org/ja/1.9.3/class/ObjectSpace.html

そのファイナライザと間違ったデストラクタの定義ならrubyにはある。
速度が欲しいのにインタプリタなんて使うなよ。

173 :デフォルトの名無しさん:2012/08/12(日) 10:54:36.73
嘘だらけのメモで初心者がミスリードされたら可愛そうだ。

174 :デフォルトの名無しさん:2012/08/12(日) 10:56:33.57
>>171
>そのためには固有情報のような情報を、つまりプログラム内からハードコードィングされたアルゴリズムそのものを消し去る必要がある
シングルトンしか知らないのか?何の為のステートパターンだ

175 :uy:2012/08/12(日) 11:11:17.97
>>172
そんな単純な方法で実装できるデストラクタはrubyにはない

>>174
Stateパターン知りませんでした
調べてみたらこんなゴミカスパターン使ってる奴がいることを知って涙でてきた・・・


176 :uy:2012/08/12(日) 11:19:23.30
Stateパターンはありえなすぎる
状態によってオブジェクトの振る舞いをかえるとか、どんなゴミ設計だよ
出来るけどやっちゃいけない事だろそれはwwwwwww
変数の中身をちょろちょろ変えんな

シーンの推移をこれで作ってる奴がいるみたいだけど、マジ無駄

これがデザインパターンの弊害だ

177 :デフォルトの名無しさん:2012/08/12(日) 11:22:13.93
>>175
おまえ、デザパタの本を読んだって言ってけれど、最近になって書籍を購入しただろ
妄想を垂れてないで一度ぐらいデザパタが適応されたコードでも読んでみろ

178 :デフォルトの名無しさん:2012/08/12(日) 11:23:43.38
知合いの気がしてならない

179 :デフォルトの名無しさん:2012/08/12(日) 11:30:24.32
何の為にわざわざオブジェクト指向のスクリプトなんて使っているんだろう

180 :uy:2012/08/12(日) 11:30:57.19
> おまえ、デザパタの本を読んだって言ってけれど、最近になって書籍を購入しただろ
デザパタの本を読んだ覚えがない  書籍を購入した覚えがない
23種?のデザパタを何一つ認めた覚えがない

デザインパターンにそってプログラムを組むというのは、ソースコードの個性をなくして
プログラマAとプログラマBを「同じような存在」として扱うための奴隷機構だぞ?

そもそもデザパタ定義した奴が俺よりもはるかに程度の低いプログラムしか作ってないんだから
それが俺のプロジェクトで通用するわけがないじゃん
身の程を知れ

既にソースコードを完璧にする方法は分かってるんだよ
ただ速度的な観点から、""僅か1箇所""、書き方を変えているだけ
数年後には速度をクリアして、完璧なものへと書き直してると思われる

>>169 適材適所っていうけど、言語コロコロ変えられるような、
それほど小規模なものは作っていない、作っていく段階で壁はあるってだけ


181 :デフォルトの名無しさん:2012/08/12(日) 11:37:16.24
>プログラマAとプログラマBを「同じような存在」として扱うための奴隷機構だぞ?
一人でしかプログラムを書かない、書けないバカが言いだしそうな台詞だな
アルゴリズムとは別の誰が書いても同じような部分は没個性的であればあるほど良いに決まっている
既に築き上げられた定石とイディオムの塊だよ。
vc++やvbから入った奴らのガラパゴス進化したコードなんて読んでみたいと思うか?想像するだけでぞっとする

182 :uy:2012/08/12(日) 11:42:10.68
デザパタはただの金のなる木だろ
一部の奴にとっての。
そこに気づけないのが底辺PG

C++の速度がうらやましくなる事の方が多い
元々が開発効率上げるために速度を許容できるところまで犠牲にしていくスタイルで
その為に動的言語選んでいるようなものだから
将来的なpcスペの向上とrubyに将来(まともな)並列処理がはいることを見越して作ってる
C++では許されるゴミカスアルゴリズムもrubyでは許されない
ちゃんと速度を意識して作らないといけない、

>>181
>没個性的 >良いに決まっている
不正解

それを定義した奴が「自分よりも上」なら、いいだろうけど
デザパタを定義した奴よりもスキルが高い奴らはいくらでもいて、そういう奴らか見たらデザパタはゴミなんだよ わかるかね?

183 :uy:2012/08/12(日) 11:46:35.21
少なくともデザパタの使用によって開発効率は上がりませんよ?
プログラマAがデザパタを使用して書いたソースコードを、
プログラマBがリーディングする時に、効率が上がるってだけ
異論はないですね?

まさに社畜御用達


デザパタにあるようなパターンは自分でオリジナル実装したほうがはるかに優れたものが作れるだろう
あくまでデザパタは、誰にでも扱えるように”簡単”で”基礎的”なパターンを詰め込んだだけのもので
そのような初心者用の機構で開発効率は向上しない

184 :uy:2012/08/12(日) 11:48:58.50
>vc++やvbから入った奴らのガラパゴス進化したコードなんて読んでみたいと思うか?想像するだけでぞっとする

読んでみたいわ
保守はしたくない

185 :デフォルトの名無しさん:2012/08/12(日) 11:51:55.77
>>182
糞コテよかGoFの方が上だと普通はそう思うよ
>C++の速度がうらやましくなる事の方が多い
おまえ本当にc++でプログラム書いたことあるの?javaで書く方が相当にマシだから

186 :uy:2012/08/12(日) 11:54:29.21
お前いま世界の半数のゲームPGを敵にした

C++よりJAVAがマシって、
何が?
念のため言っておくけどゲームでGCは邪魔だよ

187 :デフォルトの名無しさん:2012/08/12(日) 11:58:47.72
>>186
どう考えてもc++しか他に選択肢がないから仕方なく使っているだろ
>C++よりJAVAがマシって
納期内にメモリリークなんて探したくないから
イディオムも多すぎて、最低でもeffective c++ぐらいは読まないとコードが書けない

188 :uy:2012/08/12(日) 12:20:19.92
君にC++使えとか言ってない

189 :uy:2012/08/12(日) 12:24:25.79
基本的に賢いC++erはC言語拡張としてC++を使うよ
やたらとクラスの機能は使わない

C++で複雑にテンプレート駆使してやっている事は
動的言語で(速度を犠牲にすれば)一瞬で出来る事
あまり意味がない

本当に速度が必要ならそんな高価な機能使わなければいいだけだし
速度がひつようでないなら動的言語でやればいい
C++の深みにハマるやつがアホ

GCないからプログラミングできませんとかいってる奴って
C++が使えないじゃなくて「C言語」が使えないんだろw

190 :デフォルトの名無しさん:2012/08/12(日) 12:26:12.82
マシな部分を一般論で答えたんだよ
システムなら速度が重要な部分だけcで書くだろ

191 :デフォルトの名無しさん:2012/08/12(日) 12:27:37.67
>>189
c++のテンプレートは実際にメモリに展開されるから速いってメリットがあるの
javaやc#のジェネリクスとは別物

192 :デフォルトの名無しさん:2012/08/12(日) 12:30:14.34
社会復帰できるといいね。脳内プログラマ君

193 :デフォルトの名無しさん:2012/08/12(日) 12:38:00.92
>>185
>糞コテよかGoFの方が上だと普通はそう思うよ
正確に言うとGoFは発見しただけ、大勢のOO技術者が
長年の経験より導き出したデザインをGoFがまとめたもの。

つまり、「自分は全てのOO技術者より上」だと主張したいのでは?

>>183
>デザパタにあるようなパターンは自分でオリジナル実装したほうがはるかに優れたものが作れるだろう
デザイン=設計のパターン実装パターンじゃない。


194 :uy:2012/08/12(日) 12:40:24.06
デザインパターンを使わないほうがはるかに優れたものが作れるだろう

に読み替えといて

195 :uy:2012/08/12(日) 12:41:10.80
>>182
> デザパタを定義した奴よりもスキルが高い奴らはいくらでもいて、そういう奴らか見たらデザパタはゴミなんだよ わかるかね?


デザパタを定義した奴よりスキルが高い奴はいくらでもいるのは事実だが、

そういう人達が、デザパタをゴミといっているのはみかけません。



196 :uy:2012/08/12(日) 12:43:43.49
Gof(笑)が発表しちゃったようなデザインパターン()のようなものは
これからも定期的にでてくるだろう

ある程度ネタがたまったら誰かそういう技術資料を上手くまとめてうまく世に公表できる奴が発表する
デザインパターン以上のものは既に世にごまんとあると考えるべき
誰もそれをまとめていないだけ

デザインパターンが広まる以前からデザインパターン相当のものを使っていた奴がいたのと同じこと

197 :uy:2012/08/12(日) 12:47:06.75
>>195
ゴミって言ってるように見える

http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3_%28%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%29

デザインパターン本の23パターンは主にJava, C++などの静的型付け言語における実装であり、ピーター・ノーヴィグは、23パターンのうちの16パターンは(言語によるサポートによって)単純化できることをLispまたはDylanを用いて実演している。[1]

またデザインパターンに限らず一般的な話として、技術を不適切に使用することで、ソフトウェアの複雑度を不必要に高めてしまうことがある。[2]

http://www.norvig.com/design-patterns/



198 :デフォルトの名無しさん:2012/08/12(日) 13:07:59.21
パターンって呼ばれるほど繰り返し現れるなら、
本来ならメタプログラミングなどで抽象化してしかるべき
何度も似たようなコード書くなんて馬鹿のする事

なのに抽象化出来ないのは言語の表現力が劣ってるから
デザパタなんて有り難がるようなもんじゃない

199 :デフォルトの名無しさん:2012/08/12(日) 13:13:47.07
>23パターンのうちの16パターンは(言語によるサポートによって)単純化できる

構造化設計発表。
   ↓
有効性が認められる。
   ↓
言語により構造化設計をサポートする構造化言語が続々と発表。

設計を言語でサポートさせるのは自然なながれ。
だから、デザインパターンは設計パターンで実装パターンじゃない。

200 :デフォルトの名無しさん:2012/08/12(日) 13:18:01.00
1 + 2 を「足し算パターン(キリッ」とか言い出す奴が居たら笑っちゃうだろ
デザパタはそういうレベルなんだよ

201 :uy:2012/08/12(日) 13:27:41.89
183 :uy:2012/08/12(日) 11:46:35.21
少なくともデザパタの使用によって開発効率は上がりませんよ?
プログラマAがデザパタを使用して書いたソースコードを、
プログラマBがリーディングする時に、効率が上がるってだけ


202 :デフォルトの名無しさん:2012/08/12(日) 13:33:32.12
デザインパターンはドカタ用コミュニケーションツール

203 :デフォルトの名無しさん:2012/08/12(日) 13:34:16.52
初心者がデザパタ本読んでもなに1つ活用できないから、活用されているコードを読む方がいい。

ステートパターンはゲームにこそ向いているもの。 ファイルの読み込み中と読み込み後で挙動が変わるリソース管理クラスとか
破壊前と破壊後で動作が変わるキャラクタオブジェクトなどなど。

204 :uy:2012/08/12(日) 13:37:11.02
>>203
>ステートパターンはゲームにこそ向いているもの。
むいてないから、やめろ

> 破壊前と破壊後で動作が変わるキャラクタオブジェクトなどなど。
やめとけ



205 :デフォルトの名無しさん:2012/08/12(日) 13:59:54.64
>>202
あーなんかそんな感じだ

206 :デフォルトの名無しさん:2012/08/12(日) 14:04:24.41
オブジェクト指向だってデザインパターンだし、配列や連想配列だってデザインパターンだ
デザインパターンという言葉が考え出されたときには既に言語に組み込まれていただけ

いわゆるデザパタ本に載っているデザインパターンだって、現代的な言語では添付クラスや第三者ライブラリで実現可能(または組み込まれている)なものが多い

207 :デフォルトの名無しさん:2012/08/12(日) 14:22:17.51
デザパタも短く書ける方が分かり易い

208 :uy:2012/08/12(日) 14:33:50.86
>>196
デザインパターン=ゴミという
お前の(あほな)考えを当てはめると

> デザインパターンが広まる以前からデザインパターン相当のものを使っていた奴がいたのと同じこと
ゴミ相当のものを使っていたことになるが?w

>>197
それのどこがゴミなのかと? デザインパターンを使わないなんて書いてないだろ。
デザインパターンを単純化して書いてるわけだろ。

お前まさか、デザインパターンが実装まで規定してると思ってるの?
Javaでの実装例であって、別にあのように書かないといけないわけじゃないんだが。

209 :uy:2012/08/12(日) 14:38:23.40
大学とかで、これ教えてるんだっけ・・・?

ああ。。。可愛そうに
教育機関は教科書を新しくしたりしていくペースがITの進化よりも
2歩3歩後ろからついてくるしかないからなぁ
まじめな学生は報われないよ

210 :uy:2012/08/12(日) 14:41:17.70

良レスあげ

182 :uy:2012/08/12(日) 11:42:10.68
デザパタはただの金のなる木だろ
一部の奴にとっての。

183 :uy:2012/08/12(日) 11:46:35.21
少なくともデザパタの使用によって開発効率は上がりませんよ?
プログラマAがデザパタを使用して書いたソースコードを、
プログラマBがリーディングする時に、効率が上がるってだけ
異論はないですね?


202 :デフォルトの名無しさん:2012/08/12(日) 13:33:32.12
デザインパターンはドカタ用コミュニケーションツール



211 :uy:2012/08/12(日) 15:03:50.75
>>208
>>196
> デザインパターン=ゴミという
> お前の(あほな)考えを当てはめると

> > デザインパターンが広まる以前からデザインパターン相当のものを使っていた奴がいたのと同じこと
> ゴミ相当のものを使っていたことになるが?w


~~~~この程度~~~~のものをキリッとしながら世に発信してるのがゴミだって事だよ
オブジェクト指向然り。クラウド然り。


経験が浅いとデザインパターン()にあるアルゴリズムのパターンを
1度も見たことがない or 書いた事がない
って奴がいて、そういう奴らにパターン覚えさせる為に見せるなら有りではあるが
普通はww自分で書いた事のある or よく使ってきたパターンに勝手に名前付けられてる気がして気分は良くない
デザパタなんてゴミドカタしか賛同しないよ

212 :デフォルトの名無しさん:2012/08/12(日) 15:18:38.82
>>209
教授の頭にカビが生えてるところはUML以前のDFDが使われてるよ

213 :デフォルトの名無しさん:2012/08/12(日) 17:49:01.30
あげ

214 :デフォルトの名無しさん:2012/08/12(日) 18:17:23.30
>自分で書いた事のある or よく使ってきたパターンに勝手に名前付けられてる気がして気分は良くない

普通に思い付くようなパターンで気分を害されてもなぁ。他の人からみたらuyが真似してるようにしか見えない。

215 :uy:2012/08/12(日) 18:31:53.28
俺はどちらかというとデザインパターンで気分は害してない
だいたいOOでプログラムかくことって少ないから使えないんだよね
いくらデザインパターンのライブラリをrubyが用意してくれてもミックスインするクラスがない
興味本位で調べて評価してみただけ

216 :デフォルトの名無しさん:2012/08/12(日) 18:47:29.44
じゃあ語るな

217 :デフォルトの名無しさん:2012/08/12(日) 18:54:29.73
言うこところころ変わるな。

218 :デフォルトの名無しさん:2012/08/12(日) 19:07:43.27
保身してないで言いたいこと言えよ

219 :uy:2012/08/12(日) 19:20:52.57
でっていう

220 :デフォルトの名無しさん:2012/08/12(日) 19:27:12.85
優秀なPGの中には自分の技術を公表しないやつもいる

221 :デフォルトの名無しさん:2012/08/12(日) 20:13:26.13
短いコードじゃなくて、単純なアルゴリズムだろ。

糖質な奴がそう思い込んでいるだけ。

222 :uy:2012/08/12(日) 20:20:01.15
え、糖質なやつって
お前はいま誰のこと思い浮かべてそれかいたの?
明日も顔あわせるような同僚とかですか?
なんでそうゆうことかくの?

223 :デフォルトの名無しさん:2012/08/12(日) 20:21:33.14
7行プログラミングとかワンライナーみたいなのって
短いコードっていうのとはちょっと違うよな。展開するとそこそこあるし。

224 :デフォルトの名無しさん:2012/08/12(日) 20:27:59.81
7行にギッシリ詰め込んだら
普通見やすくにかくと50行くらいはある

225 :デフォルトの名無しさん:2012/08/12(日) 20:29:56.29
Rubyで7行ぎっしり詰め込んだら
Javaに翻訳すると1000行くらいになる

226 :こころは感情で動く、外界の鏡である。:2012/08/12(日) 21:36:41.94
>>222
なぜか選ばれたのが貴方です、糖質に選ばれおめでとう。なんで
反応しちゃったの?

227 :デフォルトの名無しさん:2012/08/12(日) 21:55:31.06
>>222
そうゆうことだからだよ

228 :デフォルトの名無しさん:2012/08/12(日) 21:56:01.91
207 名前:デフォルトの名無しさん [sage]: 2012/08/12(日) 14:22:17.51
デザパタも短く書ける方が分かり易い

213 名前:デフォルトの名無しさん []: 2012/08/12(日) 17:49:01.30
あげ

216 名前:デフォルトの名無しさん [sage]: 2012/08/12(日) 18:47:29.44
じゃあ語るな

217 名前:デフォルトの名無しさん [sage]: 2012/08/12(日) 18:54:29.73
言うこところころ変わるな。

218 名前:デフォルトの名無しさん [sage]: 2012/08/12(日) 19:07:43.27
保身してないで言いたいこと言えよ

220 名前:デフォルトの名無しさん []: 2012/08/12(日) 19:27:12.85
優秀なPGの中には自分の技術を公表しないやつもいる

221 名前:デフォルトの名無しさん []: 2012/08/12(日) 20:13:26.13
短いコードじゃなくて、単純なアルゴリズムだろ。

糖質な奴がそう思い込んでいるだけ。

223 名前:デフォルトの名無しさん [sage]: 2012/08/12(日) 20:21:33.14
7行プログラミングとかワンライナーみたいなのって
短いコードっていうのとはちょっと違うよな。展開するとそこそこあるし。

224 名前:デフォルトの名無しさん []: 2012/08/12(日) 20:27:59.81
7行にギッシリ詰め込んだら
普通見やすくにかくと50行くらいはある

229 :uy:2012/08/12(日) 22:24:25.69
>>226
人の心の汚さを見つめていた

230 :デフォルトの名無しさん:2012/08/12(日) 22:52:17.60
プログラマでC++できないとかそうとう残念な感じだから、大至急使えるようになったほうがいい

231 :デフォルトの名無しさん:2012/08/12(日) 22:55:08.94
C++のうんこさは相当なもんだけど、使えた方が良いのは事実だな

232 :デフォルトの名無しさん:2012/08/12(日) 22:55:09.15
つかそれC、C++から入らなかったやつでしょ
生まれながらにして残念

233 :uy:2012/08/12(日) 22:58:20.20
無理に使わなくてよい
C++は有益ソースとゴミカスソースの見分けがつきにくいんだ
バカにさわってほしくない
ブログに好き勝手かかれると検索結果が汚れる

234 :デフォルトの名無しさん:2012/08/12(日) 23:34:28.04


235 :uy:2012/08/12(日) 23:58:12.06
は?なに笑ってんの

最近C++をバカにする風潮あるけど
C++認めない奴は初心者
積極的に使えとはいってない
ただそのうち素晴らしいものに出来上がるよC++
あと数年だけ待てよ


236 :デフォルトの名無しさん:2012/08/13(月) 00:00:25.03


237 :uy:2012/08/13(月) 00:02:06.10
はあああああああああああああ?

238 :デフォルトの名無しさん:2012/08/13(月) 00:02:43.79
>>235


239 :uy:2012/08/13(月) 00:06:08.24
http://ja.wikipedia.org/wiki/C%2B%2B0x

240 :デフォルトの名無しさん:2012/08/13(月) 00:09:44.60
Rubyって仕事で使ってんの? マジでC++やっとけよ。

241 :デフォルトの名無しさん:2012/08/13(月) 00:13:40.87
ニートだろ

242 :デフォルトの名無しさん:2012/08/13(月) 00:20:25.19
なんで今更>>239貼ったの?
もしかしてものすごい初心者?

243 :デフォルトの名無しさん:2012/08/13(月) 00:29:53.94
小学生じゃなかったのか。

244 :uy:2012/08/13(月) 00:57:43.68
>>240
はっあああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ?

>>241
はぁ?????????????

>>242
はあああああああああああああああああああ???????????

>>243
はーーーーーーーーーーぁ???????????????????





245 :uy:2012/08/13(月) 01:06:20.53
>>240
はっああああああああああああああああああああああああああaaaaaaaあああああああああああああああああああああああああああああああああああああああ?
はaaaaaaaaaaaaaぁ?????????????????????

>>241
はaaaaaaaaaaaaaぁ?????????????????????
はあああああああああああaaaaaaaaaaaああああああああaaaaaaaaaaaaaaa????????????????????

>>242
はあああああああああああaaaaaaaaaaaああああああああaaaaaaaaaaaaaaa????????????????????
はーーーーーーーーーーぁaaaaaaaaaaaaaa????????????????????????????????????????

>>243
はーーーーーーーーーーぁaaaaaaaaaaaaaa????????????????????????????????????????
はっああああああああああああああああああああああああああaaaaaaaあああああああああああああああああああああああああああああああああああああああ?

246 :デフォルトの名無しさん:2012/08/13(月) 01:13:12.57
幼稚だなぁ

247 :デフォルトの名無しさん:2012/08/13(月) 01:43:29.20
マジでC++覚えろってマジで。

248 :uy:2012/08/13(月) 02:43:49.49
は?

249 :uy:2012/08/13(月) 03:13:29.62
C++作った奴本当に偉い
現開発者も本当に偉い

C++はモノを作る言語ではなく訓練用言語である
ruybは仕様変更によって多くの人的リソースを消費してきたけど
そういえばC++のほうがひどかったな
rubyはC++ほどじゃないから全然大丈夫wwwwwwwwwwwwww

250 :デフォルトの名無しさん:2012/08/13(月) 03:28:07.56
プログラマーの皆さんに質問でーす
プログラミングって数学は必要になりますかー?

251 :デフォルトの名無しさん:2012/08/13(月) 03:32:36.59
スレ違いなんで

252 :uy:2012/08/13(月) 03:36:15.46
結局俺様はrubyで限りなく完璧に近い設計をかけているけど、
それはC++でかけない事が分かってる
そうなると、C++でもかける幼稚なタスクシステムでの書き直し
1日ネタだね

本当はゲーム開発ってC# or Javaが妥当なところなんだろうな
JavaならScalaとかClojureとかその他もろもろついてくるんでしょ jrubyもあるか
どうしてもC++な奴は、スクリプト言語1個拾ってさっさと組み込めよ としかいえない
ゲームPGは未だにC++狂が多いから悲惨
それでもC++でゲーム作っちゃう奴は作っちゃうのだから凄いスキルと情報処理能力の高さがあるんだろうね

253 :デフォルトの名無しさん:2012/08/13(月) 03:36:44.09
>>250
http://goo.gl/Z2IFB
これでも読んでろ

254 :uy:2012/08/13(月) 03:40:05.70
数学が必要になる処理の多くは既に誰かが作っているから、
情報収集さえ出来れば何も知識いらない

まぁ大学くらいでやるような高度な数学的な処理になると
全然ググってもまともな情報出てこないから
数学できたほうが世界が広がるのは事実

255 :uy:2012/08/13(月) 03:41:43.04
C++にも4,5時間で飽きてしまったぜ

寝る

256 :デフォルトの名無しさん:2012/08/13(月) 05:48:53.51
uyを無視できるブラウザはありますか?

257 :デフォルトの名無しさん:2012/08/13(月) 09:03:11.00
専用ブラウザなら全部無視できる

258 :uy:2012/08/13(月) 11:08:01.52
プライドが高いならNG入れた方がいい

259 :uy:2012/08/13(月) 11:15:25.02



























260 :uy:2012/08/13(月) 14:19:46.86
Rubyたん(*´Д`)ハァハァ

261 :デフォルトの名無しさん:2012/08/13(月) 15:59:01.22
>>239
url が 0x じゃなくて 11 になってれば、まだ少しはマシだったのにな。
ついて行けてないのがバレバレ。
コンセプトさんは先送りになったけど知ってる?

262 :uy:2012/08/13(月) 16:05:34.22
お前はC++のコンセプトが分かってなさそうだのう

263 :甘酒:2012/08/13(月) 16:18:16.05
俺はuyさん結構好きだよ
で、uyさんに質問したいんだけど
俺今C#使ってるんだけどrubyってどんな言語なの?
いい加減c#使いにくいからrubyとやらを試してみたい

264 :デフォルトの名無しさん:2012/08/13(月) 16:32:11.84
島根のlisp方言だよ
もうすぐオタク連中の興味がjsに切り替わるから試さなくて良いよ

265 :甘酒:2012/08/13(月) 16:35:11.67
ふむ
なんかrubyのページさっきみたけどものすごい使いづらそうなのは俺だけかな?
結局俺はなんの言語がいいのだろう

266 :甘酒:2012/08/13(月) 16:36:29.46
javaは一回使った事あるけどかなりいい感じだったかなぁ


267 :デフォルトの名無しさん:2012/08/13(月) 16:37:36.22
あれを使い辛そうと思うのはM$畑で遊んでいる奴だけ
officeすらVBAからjsに移行するのでjsで十分だから

268 :デフォルトの名無しさん:2012/08/13(月) 16:39:19.61
>>267
ふむふむ。ありがとう初心者には勉強になるな


269 :uy:2012/08/13(月) 17:13:31.96
見ず知らずの甘酒に好かれても嬉しくない
こんな言語

b = 
class C
  include Module.new {
    def f(x=<<-A) ; return x
      aaa
      A
    end
  }
  self
end.new.f
b = 4.times.with_index(10).map do | i , n |
  b + i.to_s + "#{n}"
end if if true then false end.!
instance_exec 5 do | n |
  p b while (n-=1) > 0
end
a =  C.new.f.gsub(/(aa)/) do |n|  n + "_" + $1 end
p a
/(?<u>\d+)/ =~ "abc 123" 
u.instance_eval do
   p to_i * 5
end


270 :甘酒:2012/08/13(月) 17:20:16.11
なんとなくわかった 

271 :uy:2012/08/13(月) 17:37:11.30
半分冗談で書いたけど、rubyはなんだろうな
本来の用途は普段の小さな作業の自動化がメインだろうけど
アプリやゲームも作ろうと思えば作れる
each_with_indexなどをはじめとした多数のEnumerableと呼ばれるイテレータメソッドがはいっている
自分で定義も出来る
コードの記述量はやろうと思えばどんどん小さくなると思われる
最強言語
来年の2月に2.0がリリースされる予定

272 :デフォルトの名無しさん:2012/08/13(月) 17:50:11.69
もうちょっと、冗長でありながら、よいコードは出てこないものか。

273 :uy:2012/08/13(月) 18:48:32.92
でっていう


#coding : utf-8
player = "ぐー"
cpu = ["ぐー","ちょき","ぱー"].sample

puts "じゃーんけーん"
# gets
puts "ぽん"
print "player : #{player}"
puts
print "cpu : #{cpu}"
puts

case cpu
when "ぐー"
  print "あいこ"
when "ちょき"
  print "あなたのかち"
when "ぱー"
  print "あなたはしね"
else
  print "しね。"
end


274 :デフォルトの名無しさん:2012/08/13(月) 22:27:57.43
>>273
コードの長さや判り易さ以前に、設計が良くない。
例えば player = "ぱー" にしたら case cpu ... end 内も変更しないといけなくなる。
>>252とは別の人?

275 :デフォルトの名無しさん:2012/08/13(月) 23:56:22.71
% Prolog 分かり易いかどうかは何ともいえないが、冗長なコードの例。

'自然数nの二重階乗を求める'(0,1).
'自然数nの二重階乗を求める'(1,1).
'自然数nの二重階乗を求める'(_m,_x) :-
    '_m が 1 より大きい時、_m - 2 の二重階乗 _x_2 に _m をかけたものが_m の二重階乗 _x となる'(_m,_x).

'_m が 1 より大きい時、_m - 2 の二重階乗 _x_2 に _m をかけたものが_m の二重階乗 _x となる'(_m,_x) :-
    _m > 1,
    _m_2 is _m - 2,
    '自然数nの二重階乗を求める'(_m_2,_x_2),
    _x is _m * _x_2.

276 :uy:2012/08/14(火) 00:06:39.40
>>274
あのさぁ・・・
マジレスしないでいいから・・・

レスがつけられていると思ったらマジレスでびっくりしたよ

277 :デフォルトの名無しさん:2012/08/14(火) 06:53:42.19
抽象化されて短いコードは、
例えば「全体を鶴だと考えてみよう」的な表現は苦手なのではないか。


278 :デフォルトの名無しさん:2012/08/14(火) 18:27:54.48
読み解きにくいけどちゃんと動くコードを書けばクビにならずに会社に居座れるからわざとそうする

279 :デフォルトの名無しさん:2012/08/14(火) 18:33:19.92
自分がいないと回らない状況を作らないと生き残れない会社はいずれ消える

280 :デフォルトの名無しさん:2012/08/14(火) 18:50:44.37
×短いコードはわかりやすい
○無駄に長いコードはわかりにくい
○わかりやすいコードは無駄に長くない

281 :デフォルトの名無しさん:2012/08/14(火) 19:15:32.29
>>277
% これは冗長なコードかな。

迷って鶴か亀に決める(_鶴か亀) :-
    迷って(_文字コード),
    鶴か亀に(_文字コード,_鶴か亀),!.
 
迷って(_文字コード) :-
    repeat,
    _文字コード is random(60000).

鶴か亀に(_文字コード,鶴) :-
    鶴の文字コード(_文字コード).
鶴か亀に(_文字コード,亀) :-
    亀の文字コード(_文字コード).

鶴の文字コード(50401).

亀の文字コード(46517).

282 :デフォルトの名無しさん:2012/08/14(火) 19:51:09.27
>>281
% 決めるを述語にしない理由は?

迷って鶴か亀に決める(_鶴か亀) :-
    迷って(_文字コード),
    鶴か亀に(_文字コード,_鶴か亀),
    決める.

決める :- !.

% 以下略


283 :デフォルトの名無しさん:2012/08/14(火) 19:51:40.29
自分のコードって汚いなぁって思うことが良くある
他の人のコード見ると、MSとかのライブラリィに付いてる
ソースコードみたいになんか綺麗に見える。
どこがって上手く説明できないんだけど、イメージとしては
A4で10ポイントくらいで印刷して1mくらい離れてみても
なんか綺麗に見える感じ

でも不思議なことに、そういう綺麗なコードがバグフリーな訳でも無いし
速くコーディングが終わるわけでもない事。
むしろそういう人のコーディングはかえって完成までに時間が掛かる
傾向が強くて、あんまり大事な仕事を任されない不思議。

完璧な英語を話そうとする余り言葉が出なくなっちゃいますよみたいな
ものなのかな?
どうやって話すかよりも、何を話すかの方がよっぽど大事なんだと思うんです。


284 :デフォルトの名無しさん:2012/08/14(火) 19:54:57.28
>>282
その方がいいですね。 ! を「決める」と読むことに魅力を感じて ! の
打ちっ放しにしたのですが、やはり決めるの方がいい。


285 :284:2012/08/14(火) 20:12:27.09
>>282
待ってください。間違いました。その カット は効かないですね。
鶴や亀の文字コードに複数の選択肢がなかったから、 カット が効いているように
処理系が振る舞ってしまいますが、選択肢を追加したら、複数解を返してくるはずです。
決めるのカットは、決めるの次の節を選択しないのカットですから、
述語 迷って鶴か亀にきめる/1 が目標になったときには、カットとしては働きません。

286 :284:2012/08/14(火) 20:18:36.63
>>285
そうだった。すみません。>>284は無かったことにしてください。


287 :282:2012/08/14(火) 20:21:07.54
たびたびすみません。>>282は無かったことにしてください。ですね。


288 :デフォルトの名無しさん:2012/08/14(火) 20:34:00.20
>>283
小さい画面だと余計な改行とか読みにくいので、途中で読むのやめた。

289 :デフォルトの名無しさん:2012/08/14(火) 20:48:45.90
レスがPrologのコードに見えてきた

290 :uy:2012/08/14(火) 20:53:13.27
誰でも思いつくようなバブルソートに
バブルソースって名前をつけた奴って
偉そうだよねw

291 :デフォルトの名無しさん:2012/08/14(火) 21:55:37.55
バブルソースwww

292 :デフォルトの名無しさん:2012/08/14(火) 23:01:31.80
uyって偉そうだよねwってことか

293 :uy:2012/08/14(火) 23:11:52.49
デザインパターンも
バブルソートと一緒。
誰かがつけた名前にすぎない。

294 :デフォルトの名無しさん:2012/08/15(水) 01:55:37.24
>>289
twitterの最後にピリオドを付ければ全部Prologプログラムっていう
主張はある。ほとんどの場合ピリオド付ける前にシングルクォートで
囲む必要があるだろうけど。


295 :デフォルトの名無しさん:2012/08/15(水) 04:48:50.62
デザパタとか単に慣習をまとめただけだろ
バズワードに近いレベル

296 :デフォルトの名無しさん:2012/08/15(水) 07:10:25.36
誰でも思いつくようなものに名前をつけた奴が偉そうなんじゃなくて
偉い奴がつけた名前が広く使われるんだと思うぞ

297 :デフォルトの名無しさん:2012/08/15(水) 07:44:48.67
>>294
「この時代の政治には、騎士道理想と分かちがたく結びつくひとつの偉大な志があった。」
これをGoogleで検索しても出てこない。「中世の秋」の邦訳だけれど、著作権の制限があり、
全文が載っているサイトはない。こういう部分的な切り取りにはPrologが最有力。

298 :デフォルトの名無しさん:2012/08/15(水) 08:53:49.70
>>295
あるあるネタみたいなもんじゃないかな>でざぱた

299 :デフォルトの名無しさん:2012/08/15(水) 09:39:03.51
よくあるパターンだから一言で伝わるよう名前決めとこうぜってのがデザパタ

初心者にとってはパターンの紹介
初心者以外にとっては名前の紹介

300 :uy:2012/08/15(水) 10:44:01.77
いやバズワードとまではいってないし
デザインパターンを公表し世に広めるのは意味がある
しかしこれは技術が古くなったら意味がない
使い手がそれに気づけるかどうか
デザインパターン2
デザインパターン3
とこれからも出していく必要がある
最終的にはデザインパターンのみでプログラムが組めれば勝ち
今のところデザインパターンはまだ幼稚なアルゴリズムの発想しか提供してくれず
これ以上はいくらでもあるのが問題

301 :デフォルトの名無しさん:2012/08/15(水) 11:20:19.78
モナドはデザインパターン

302 :デフォルトの名無しさん:2012/08/15(水) 11:35:39.63
>>297
Prologの述語名の部分はデータベース検索に掛かりませんね。
長い述語名を解析して、プログラムがテンポラリに副目標を
生成して実行するには、どうすればいいのですか?


303 :デフォルトの名無しさん:2012/08/15(水) 11:47:57.42
>>302
それ、できません。Prologの組込述語として、現在実行中の述語名、
さらには、現在実行されている副目標を読んでいる目標の関数名(述語名)を、
呼び出せるメタ述語が必要だという声はあります。Prolog上の実行環境に
そのような述語を定義している人もいます。


304 :302:2012/08/15(水) 11:55:34.75
> Prologの組込述語として、現在実行中の述語名、さらには、現在実行されている
> 副目標を読んでいる目標の関数名(述語名)を、呼び出せるメタ述語

Prologの組込述語として、現在実行中の述語名、さらには、現在実行されている
副目標を呼んでいる目標の関数名(述語名)を、取得できるメタ述語・・・

(読んでいる->呼んでいる 呼び出せる->取得できる) です。


305 :uy:2012/08/15(水) 12:20:20.77
デザインパターンはアルゴリズムと一緒で
特定のコードに名前をつけたものだよ。

バブルソートなど、自分で思いついたものもあるだろう。
だがそれにしたいして、自分勝手に名前をつけても
他人に説明できない。

ああやってこうやってかくかくしかじかして並び替え。
といっても通じない。

デザパタの本にも、デザパタはよくあるコードに名前をつけたものですって
しっかり書いているので、だれでも知ってることなんて言い方は反論にならない。

そしてアルゴリズムがそうであるように、デザパタは
自分で見つけた人にとっては名前であり、
知らない人にとっては、先人の知恵である。

306 :デフォルトの名無しさん:2012/08/15(水) 12:44:17.46
uyは散々デザインパターンは偉そうとか悪とかいってたのに意味を理解すると
ころっと手のひら返すよな自分を持ってないから
恥ずかしい人間だな

307 :デフォルトの名無しさん:2012/08/15(水) 12:59:50.66
明らかに複数人いるけどなuy
ニセモノはドカタくせぇから直ぐ分かる

308 :uy:2012/08/15(水) 13:08:39.40
>>44はuyだなw
すぐ分かったw

309 :uy:2012/08/15(水) 13:10:46.66
ハズレ。

310 :uy:2012/08/15(水) 13:32:43.66
残像だ

311 :デフォルトの名無しさん:2012/08/15(水) 13:39:44.84
>>44だ。いくらいいレスだったからって自分のものにしようとするなよuy。

312 :デフォルトの名無しさん:2012/08/15(水) 13:41:27.69
小学生とか新しく覚えたことを自慢気に話すよな。たいてい間違って覚えてるけど。

313 :uy:2012/08/15(水) 13:46:25.79
本物はsageって書いてるからすぐに分かるw

314 :uy:2012/08/15(水) 17:02:30.78
>>311
きも・・・・

なんでそんなにすぐ出てくんの?

24時間スレ監視してんの?


きっも・・・

315 :デフォルトの名無しさん:2012/08/15(水) 18:53:15.95
めんどくせーからよ、uyコテつけろ
さくっとNGにして差し上げます

316 :デフォルトの名無しさん:2012/08/15(水) 19:21:27.89
デザインパターンとかUMLとかを固定のものとして捉えるなよw
よく使うものをまとめたものっていう概念がなぜ理解できないんだろうな暗記大好き君て

317 :uy:2012/08/15(水) 19:45:46.23
よく使うものをまとめたものを提示されても

既にまとめてあって、その次の段階にいってるんですよ


自分でまとめることのできないドカタや概念をまだ知らない初学者に教えるにはいい材料かもしれない

318 :uy:2012/08/15(水) 19:47:00.93
それから暗記をバカにしてはいけない
ほんのちょっと1日1個ずつでも覚えて行けばいいだけ
リファレンスを引く時間を考えたほうがいい


319 :デフォルトの名無しさん:2012/08/15(水) 20:10:07.51
>>314
javaで作ったツールで自動巡回しているのだよ。スマホだから暇なときに見てるだけ。どっかのuyと一緒にしないでくれ。

320 :デフォルトの名無しさん:2012/08/15(水) 21:14:36.29
>>318
広義のデザインパターンである「石の上にも三年」とかの格言でそのレスは表せるな
お前みたいに無駄なレスを書かせないためにもデザインパターンはあるのにまったく理解していない
つまりお前は初心者未満てことだな
天につばを吐く行為が大好きなマゾ野郎だな
お前ダメだ

321 :デフォルトの名無しさん:2012/08/15(水) 21:47:07.31
>>306
×  uyは自分を持ってないから

無知蒙昧なくせに傲岸不遜なだけ。

先人の知恵に触れるとすぐに平伏し今度は逆に祭り上げて利用するクズ。


322 :uy:2012/08/15(水) 22:14:08.90
>先人の知恵に触れるとすぐに平伏し今度は逆に祭り上げて利用するクズ。

じゃあもう何も教えてくれなくていいですので


二度と話しかけないでくださいね

323 :uy:2012/08/15(水) 22:15:00.06
>>320
正直どうでもいい
俺はリファレンスを暗記する

お前は暗記しない

それだけの差だろう

324 :デフォルトの名無しさん:2012/08/15(水) 22:54:02.04
まあ、暗記するに越したことはないね
WebやPDF、紙リファレンスを参照するのと、脳内リファレンスを参照
するのとでは、アクセスタイムがまるで違う

325 :デフォルトの名無しさん:2012/08/15(水) 23:06:44.15
> 二度と話しかけないでくださいね

誰も貴様に話しかけてねえよクズ


326 :デフォルトの名無しさん:2012/08/15(水) 23:12:42.89
ところで、
裁判長は法律を記憶してないが法律に基づいた判決を下す。

弁護士は一応法律を暗記するが、実際に裁判をするときには最新の法律を参照しながら組み立てる。

更新の終わった古い規格を使うなら暗記だけでいけるが、
常に更新される最新の規格を使うなら常に参照する必要がある。
リアルタイムに更新されるわけじゃないから覚えなおせばいいわけだが、
なまじ記憶が残ってるとそれが邪魔をする場合がある。

「丸暗記」では理解が不十分だからいつも間違いを起こす。


327 :デフォルトの名無しさん:2012/08/16(木) 00:02:33.51
デザインパターンって、パターン名を丸暗記しても意味ないよなっていうのは俺も思う。

328 :デフォルトの名無しさん:2012/08/16(木) 00:02:36.60
えっ、裁判長と弁護士は別の国家資格だと思っている?

329 :デフォルトの名無しさん:2012/08/16(木) 00:18:12.06
デザインパターンはその概念はともかく
GoF本の23のパターンがうんこすぎた

あんなの有り難がるのJavaドカタだけですよ?

330 :デフォルトの名無しさん:2012/08/16(木) 00:27:00.90
すぐJavaドカタっていうやつJavaにコンプレックスがあるの?

331 :デフォルトの名無しさん:2012/08/16(木) 00:41:34.70
ウェブドカタなんだろう。

332 :デフォルトの名無しさん:2012/08/16(木) 00:42:37.46
OO技術者なら最低限でもGoFの
デザインパターンは理解したほうがいいと思う。

問題:
月曜日から日曜日までの7つのオブジェクトを作成するときに
使用するGoFのデザインパターンは?

これで答えと理由を書いてくれれば
どのくらいGoFのデザインパターンが
理解出来ているか分かると思う。

333 :uy:2012/08/16(木) 00:50:17.94
>>332
デザインパターンはその名の通り
設計(デザイン)のパターン

あなたの問題には、設計を決めるための
情報が全く含まれていない。

なので、答えは出せない。

334 :322:2012/08/16(木) 00:52:56.22
>>333
ヒントです。
>月曜日から日曜日までの"7つ"のオブジェクトを作成する

335 :uy:2012/08/16(木) 00:57:39.40
>>334
その7つのオブジェクトの性質を言いなさい。

継承関係があるのかどうなのか。
各曜日オブジェクトの関連はどうなのか
どういうコードでオブジェクトを作成したいのか

設計をするための情報がないのであれば
答えが出るわけがないでしょう。

336 :デフォルトの名無しさん:2012/08/16(木) 01:00:20.26
Singletonパターン使えとか言われたらどうしよう
7つって数を強調してるからドキドキする

337 :uy:2012/08/16(木) 01:02:50.56
しかし言うまでもなく、7しか作成できないとは言っていない。
引っ掛けにしか見えんよな。

同じ曜日のオブジェクトを2つ以上作成するかもしれない。
同じ曜日のオブジェクトを2つ作成して相性占いをするかもしれない。


338 :デフォルトの名無しさん:2012/08/16(木) 01:02:51.84
7つといえばドラゴンボール、ドラゴンボールは7つ集めるとシェンロンが出てくる、
シェンロンは願い事を1つかなえることができる、ウーロンの願いはギャルのパンティが欲しいということ、
ギャルのパンティは黒色でいい匂いがするわけであるから例えるならトリュフ、トリュフは三大珍味であり
皮が価値を持つものであるから、デザインパターンでいうとデコレーターパターン。Q.E.D.

339 :デフォルトの名無しさん:2012/08/16(木) 01:07:35.78
>どういうコードでオブジェクトを作成したいのか

たまにいるよな。設計書にコード書いてくるタコ。こいつもその類いか。

340 :uy:2012/08/16(木) 01:09:27.66
最大7つだとして、月曜日を7つ作成していいのか、
質問からは、設計をするための情報が全く読み取れない。

341 :322:2012/08/16(木) 01:11:03.27
>>336
それも正解、でも理由も書きてほしかった。

>>337
>同じ曜日のオブジェクトを2つ以上作成するかもしれない。
その時に使うデザインパターン?

342 :uy:2012/08/16(木) 01:11:59.90
>>341
いつ、同じ曜日を2つ作成できないようにするとかいたんだい?w

343 :338:2012/08/16(木) 01:17:27.10
>>341
     ____
    / ⌒  ⌒  \
  ./( ―) ( ●)  \
  /::⌒(_人_)⌒:::::  | チラッ
  |    ー       .|
  \          /

344 :デフォルトの名無しさん:2012/08/16(木) 01:17:51.05
どうですかドカタのコミュニケーション能力の低さは
びっくりしたでしょう?

ドカタは人工無能の一種だと割り切って
直接コードを渡した方が早いですよ

345 :uy:2012/08/16(木) 01:18:43.86
ドカタにコンプレックスでもあんのか?

346 :デフォルトの名無しさん:2012/08/16(木) 01:20:52.11
>>341
uyの言うとおりSingletonパターンはだめだよね
AbstractFactoryあたりで生成させんのがいいんじゃ

347 :デフォルトの名無しさん:2012/08/16(木) 01:26:48.99
>>328
実際に法律を覚えている裁判長などいない。みんなぼけ老人だぞ。


348 :uy:2012/08/16(木) 01:29:52.41
法律とデザインパターンを一緒にするな。

349 :322:2012/08/16(木) 01:41:52.85
>>342
>いつ、同じ曜日を2つ作成できないようにするとかいたんだい?w
分からないみたいなので、ヒントとして
>その時に使うデザインパターン?
これを書いてみましたが逆に混乱させていむみたいですね。答えは
曜日と言う似たようなオブジェクトならPrototype パターンも使えるかと
自分なら考えます。
(同じ曜日ならなおさらPrototype パターンを考えます)

>>346
Singletonパターンは、一つのオブジェクトしか作らないパターンと考えている人が
多いのですが、本質には作成するオブジェクトの数を制限するパターンなので適用出来ます。


>月曜日から日曜日までの7つのオブジェクトを作成する
これだけの仕様でも二つのデザインパターンの適用を考えることが出来ます。
このようにOO技術者に取ってデザインパターンは必須の知識だと考えます。

>>343
仕様が
>月曜日から日曜日までの7つのオブジェクトを”作成”する
なので生成パターンを考えていましたが、デコレーターパターンもありですね。

350 :デフォルトの名無しさん:2012/08/16(木) 02:02:25.03
>>349
うん、知ってた。

351 :デフォルトの名無しさん:2012/08/16(木) 02:12:28.68
> 同じ曜日のオブジェクトを2つ以上作成するかもしれない。

同じ曜日ならそのオブジェクトはひとつでいい。2つ目は不要。
そのオブジェクトを参照する変数が2つ以上になるだけ。

352 :デフォルトの名無しさん:2012/08/16(木) 02:14:14.69
曜日ごとにオブジェクトを作るっていうのがピンと来ない

353 :デフォルトの名無しさん:2012/08/16(木) 02:15:07.87
>>349
>本質には作成するオブジェクトの数を制限するパターンなので適用出来ます。

仕様として月〜日オブジェクトが1セットとは明記されていないためSingletonパターンは適用できません。
ありがちな設計ミスです。

354 :uy(本物:2012/08/16(木) 02:16:32.88
> > 同じ曜日のオブジェクトを2つ以上作成するかもしれない。
> > 同じ曜日のオブジェクトを2つ以上作成するかもしれない。
> > 同じ曜日のオブジェクトを2つ以上作成するかもしれない。

いや・・・・・・・・・・・・・・・・・・・
シングルトンって、
複数人で開発する時に変な奴に2個以上存在されたらまずインスタンスを生成されて

そのせいで設計崩壊しないようにするための柵だろ?

コーディングミスをさせない為の柵ではない と俺は思う

コーディングミスする奴は死ね

355 :デフォルトの名無しさん:2012/08/16(木) 02:17:09.92
いいか、ものほんはこてつけろっつってんだろぼけなすあんぽんたん

356 :デフォルトの名無しさん:2012/08/16(木) 02:18:25.63
×こて
○とり

357 :uy@発狂中 ◆gXFLM6waxs :2012/08/16(木) 02:18:35.25
Rubyたのしすぎわろたwwwwwwwwwwwwwwww

358 :デフォルトの名無しさん:2012/08/16(木) 02:19:59.66
>>351
各曜日オブジェクトのユースケースが提示されていないため
これだけの情報でSingletonパターンを選択することはありえない
そのまま突っ走ればクレーム対象になる可能性があります。

・Aさんの今週のスケジュールに関連した各曜日オブジェクトを変更したら
 Bさんのスケジュールが書き換わりました

359 :デフォルトの名無しさん:2012/08/16(木) 02:20:32.33
たった今おれは悟った
同じことだったと
そして、どのuyが本物だろうと大した問題ではなかったということを

360 :デフォルトの名無しさん:2012/08/16(木) 02:23:07.47
全部本物だよ
uyは病気の一種

361 :uy ◆gXFLM6waxs :2012/08/16(木) 02:23:28.82
# coding : utf-8
class A
  attr_accessor :name
  def initialize name
    @name = name
  end
end
task = %w! 月 火 水 木 金 土 日 !.map { |x| A.new x }
p task


はいはいわろ

362 :デフォルトの名無しさん:2012/08/16(木) 02:23:47.40
>>359
今頃気づいたのかw
デフォルトの名無しさん みたいなもんだろ。

363 :uy:2012/08/16(木) 02:24:14.13
>>359
じゃあとりはずすよ

364 :デフォルトの名無しさん:2012/08/16(木) 02:26:02.13
>>363
いやつけといてもらっていい
その方が、本物かの区別はおいといて、ある一人の意見であることがわかる

365 :uy:2012/08/16(木) 02:26:36.12
基本的にこういうのモノは全部同じクラスでいい
最近はどの言語にもlambdaってあるんだろ?

インスタンスを生成してから実装をlambdaで書けば何にでも化ける
lambdaが最強

366 :デフォルトの名無しさん:2012/08/16(木) 02:27:46.76
いいかこれだけはいっておく
名前欄にuyを書いても、トリがなければ違うオブジェクトであると見なす

367 :uy:2012/08/16(木) 02:27:50.20
>>364
俺忙しいしデザパタに興味ない

368 :デフォルトの名無しさん:2012/08/16(木) 02:27:55.53
お前クラス使えないから全部コンストラクタ内で処理を完結させるってってこの間いってただろ

369 :デフォルトの名無しさん:2012/08/16(木) 02:29:03.95
同じuyという値をもつ異なるオブジェクトが増えすぎてるのでGCしてください

370 :デフォルトの名無しさん:2012/08/16(木) 02:29:12.28
Prototypeパターンってただの継承でOKだよね?

371 :デフォルトの名無しさん:2012/08/16(木) 02:29:53.79
interfaceにちかいんでねーの?

372 :デフォルトの名無しさん:2012/08/16(木) 02:30:29.04
>>369
'>>'で参照されてるからコレクトされませんでした

373 :デフォルトの名無しさん:2012/08/16(木) 02:31:25.08
え、だってinterfaceじゃ中身無いじゃん
それってプロトタイプしてなくね?

374 :デフォルトの名無しさん:2012/08/16(木) 02:31:55.73
おいくそuyども
*uyはおなじでいいが、&uyは違うんだから、それをちゃんと明記しろ

375 :uy:2012/08/16(木) 02:32:15.24
>>368
それは俺様の最高設計がそんな感じってだけで、
小さなプログラムや、ライブラリのほうは流石にクラスで書くときもある

コンストラクタで全部処理というのは、
まずコンストラクタがあって、
そこの内部で task_create メソッドを呼んでそこでオブジェクトを作るってだけ
オブジェクトの管理は全て裏方でmy実装されている

376 :デフォルトの名無しさん:2012/08/16(木) 02:34:10.05
コンストラクタで例外飛んだらどうすんだ
リソースリークすんぞ

377 :デフォルトの名無しさん:2012/08/16(木) 02:38:27.26
>>373
同じ機能を複数のクラスで実装することを保証する仕組みがinterface
そのinterfaceとして、自分自身を複製するメソッドを定義しといてやるのが
Prototypeパターンなんじゃないの?

378 :デフォルトの名無しさん:2012/08/16(木) 02:48:46.97
>>377
だとしたら両者違くね?!

379 :uy:2012/08/16(木) 02:49:13.78
> 俺忙しいしデザパタに興味ない

俺忙しいしアルゴリズムに興味ない


こう言ってるのと一緒


380 :デフォルトの名無しさん:2012/08/16(木) 02:49:52.77
すっこみ申しててくださいuyさんは

381 :デフォルトの名無しさん:2012/08/16(木) 02:52:09.03
>>378
両者って何と何?

382 :デフォルトの名無しさん:2012/08/16(木) 02:58:09.09
>>381
interfaceとprototypeだいぶ違くね?

383 :デフォルトの名無しさん:2012/08/16(木) 03:00:16.20
>>382
prototypeパターンはinterfaceの仕組みを使ったクラスの構成方法の一つって
イメージってつもりで書いたんだがちがうの?

てかすまん、寝るw

384 :332:2012/08/16(木) 03:04:41.90
もう一度まとめると
>月曜日から日曜日までの7つのオブジェクトを作成する
この仕様にSingletonパターンを適用した設計にすると
曜日クラス(一つ)から月曜日・火曜日オブジェクトなどが必ず1つだけ作成される。

また、Prototypeパターンを適用すると同じ属性のオブジェクトが
月曜から日曜まで作成できる。

あと、Prototypeパターンを勘違いしている人がいるよだけど
簡単に説明すると、同じ属性(フィールドの値が同じ)オブジェクトを作ること。

385 :デフォルトの名無しさん:2012/08/16(木) 03:20:30.55
だからそれでは>>332のあいまいな問題の要件を満たせてないでしょう?
設計がSingleton使って勝手に制限つけてるどうするんですか?

386 :322:2012/08/16(木) 03:31:25.75
>月曜日から日曜日までの"7つのオブジェクト"を作成する

387 :uy:2012/08/16(木) 03:35:39.98
それマジレスすると星から作らないとダメ

388 :デフォルトの名無しさん:2012/08/16(木) 03:55:04.65
>>386
ひとつずつ作成するとは一言も書いてないからそこは想定すべきですよ

389 :デフォルトの名無しさん:2012/08/16(木) 07:31:24.14
分りやすいか分り難いかってのは、結局お互いに共通知識があるかどうかで決まるんだよね
原則として、短いコードの方が見通し言いに決まっている
書いたプログラマー本人の頭の中にしかない情報がなければ
読めないのであればそれが読みにくいコードで長いか短いかは関係ないよ
まぁ、通常短いコードは読みにくいといっている奴は、そいつのコミニュケーション能力が低くて
使い物にならないプログラマだったってケースが大半だったりする訳ですがw
単にプロジェクト参加者全員が持っている知識を彼だけか持っていなかったというオチ

390 :デフォルトの名無しさん:2012/08/16(木) 07:34:17.77
デザパタとかもそうなんだよね、デザパタを知らない人とデザパタをを知っている人が混じっていると
非常に非効率な事が起こる、短く書けない。
この時冗長にするのが正解?

まさかね、全員がデザパタを使えるようにして、短く書いても障害にならないようにするのが正しい。
そう思うね

391 :デフォルトの名無しさん:2012/08/16(木) 08:18:45.08
冗長なコード。ひとつできた。

http://nojiriko.asia/prolog/uruutoshi_1.html

392 :デフォルトの名無しさん:2012/08/16(木) 10:29:11.42
>>391
高橋君についてもっと言及するとどうなるの?


393 :デフォルトの名無しさん:2012/08/16(木) 12:34:48.22
> デザパタ
以前のところで思考が違ってますから
知ってるだけじゃダメなんです

394 :デフォルトの名無しさん:2012/08/16(木) 13:02:01.59
分かりやすいコードを書くときの決まり事

1.一つの行に複数の命令文を書くな、馬鹿野郎!
2.条件分岐とその処理や、ループとその処理は3行以上使え!
  【例】
   if(value>=0){
value--;
}
こんなのはかくなよ↓
if(value>=0){value--;}
3.インデントをつけろ!
4.コメントを入れやがれ!

395 :デフォルトの名無しさん:2012/08/16(木) 13:07:28.08
コメントはメンテされずに実装と食い違ってもコンパイルこけないから付けずにわかるプログラム書けよ

396 :uy:2012/08/16(木) 14:14:29.07
394
それは
ただのわかりやすいコードじゃなくて
サルにもわかりやすいコードだけど大丈夫か?

397 :デフォルトの名無しさん:2012/08/16(木) 14:22:46.98
134は同意。
2は三項演算子を検討してから分岐にするか考える箇所。

コメントいっさい書くなって人時々見かけるけど、
これだけは理解できないな。
まぁ、難しいコードを書いたことがない人ほどノーコメントって言ってる事が多いようだけど

398 :デフォルトの名無しさん:2012/08/16(木) 14:26:41.24
コメントは入れるべき。
コードの機能が分かっても意図がわからに場合もある。

399 :デフォルトの名無しさん:2012/08/16(木) 14:54:37.68
つーか、メンテしないといけないようなコメントは、コメントになってない気がするんだが...

400 :デフォルトの名無しさん:2012/08/16(木) 14:55:25.35
ちゃんとメンテされる保障があればな

401 :uy:2012/08/16(木) 15:01:20.87
プログラミング能力の個人差を分かっていないの?
俺もコメントはあまり書かない

ちょっと難しい程度のアルゴリズムにコメントは必要ないよ
コメントが必要なのはソースコード量の大きなプログラムで
全体の把握を誰も出来ないだろうって場合は書くしかない

コメントを書くのは、無駄に行数が膨らんでソースを冗長させる行為
それでも見返りがある場合にのみ書く事を許される

402 :デフォルトの名無しさん:2012/08/16(木) 15:04:21.06
>>395
% そうしました。

http://nojiriko.asia/prolog/c143_256.html

403 :デフォルトの名無しさん:2012/08/16(木) 15:31:39.19
// 値を取得する。
getValue();
こういう直訳いらないけど、けっこーある。

あとバージョン管理してるのに、変更箇所をコメントアウトでとっとくやつ邪魔。2012-08-01 xxx 削除とかコメントつきで。

404 :デフォルトの名無しさん:2012/08/16(木) 15:41:31.47
コメントを書かない人の特徴。
・自分は技術力があると自負している。
・人のコードに駄目だしをする。
・バグが多い。

405 :デフォルトの名無しさん:2012/08/16(木) 16:14:15.74
% 十分に冗長であり、コメントを命題(すなわち真)と位置づけている例。

http://nojiriko.asia/prolog/c146_371_4.html

406 :デフォルトの名無しさん:2012/08/16(木) 16:15:40.35
>月曜日から日曜日までの"7つのオブジェクト"を作成する
曜日毎にオブジェクトを作らないで、休日やそのほかの必要になる
性質のオブジェクトを作って、それに合わせたインスタンスを
代入した方が良いのでは?
例えばカレンダープログラムを作ると考えてclass Mondayが必要とは
思わない。



407 :デフォルトの名無しさん:2012/08/16(木) 16:16:30.56
書き方じゃないんだよな、実は

408 :332:2012/08/16(木) 16:30:42.68
>それに合わせたインスタンスを代入した方が良いのでは?
>例えばカレンダープログラムを作ると考えてclass Mondayが必要とは思わない。
だから、prototypeパターンの適用を考えてみた。


409 :デフォルトの名無しさん:2012/08/16(木) 16:38:58.12
まぁ、プログラムなんてどこまで行っても結局は分かり難いもんなんだよ
あんまり些細なことにとらわれないでがんばって読めよ。
コンパイルが通ってるなら、そのコードは書かれたように動いてるはずだろ
だったらちゃんと読めば何が書かれてるかは分かるはずだ
コメントがあれば確かに助けになることも多いな
でも、コメントに頼らなくちゃいけない時点で、全体のプログラム構造に
何か改善の余地があるのでは?ということを考慮した方が良いかもしれない。
でもまぁ、人間は完璧じゃ無いし、他人の仕事には寛容であって欲しいね

410 :デフォルトの名無しさん:2012/08/16(木) 16:49:48.93
誰がやっても同じ物が出来ると思ってるとか?

411 :uy:2012/08/16(木) 16:54:42.14
そういう方向にもっていく傾向は強いだろ

412 :デフォルトの名無しさん:2012/08/16(木) 17:17:06.24
感想文程度の書き方には無理じゃね

413 :デフォルトの名無しさん:2012/08/16(木) 18:29:08.87
>>395
難解なロジックをコードするなら、コメント無しで記述したらどんなに頑張っても分るコードには成りえない。
難解なロジックを単純に記述する方法はない、それができるなら難解の定義に反する。
それは単純なロジックだったのだ。


まぁなんつーか、LHCとか最先端科学技術の固まりみたいな施設で使われるコードを
銀行業務プログラムの達人に見せても理解できるはず無いよな的な・・・
それでも、そのコードのやりたい事等を解説したコメントがはさんであるなら
達人プログラマであれば何とかするでしょう。
プログラムは手順については語ってくれるが、意図については語らない。
関数名等に埋め込む事である程度の解消もできるが、それを超えるなら混乱を生むだけである。


414 :デフォルトの名無しさん:2012/08/16(木) 18:30:50.11
読み書きできれば、終わりってわけじゃないからね

415 :デフォルトの名無しさん:2012/08/16(木) 20:06:17.21
一ヶ月後の自分なら理解できないな
ってくらいのソース書いたら頑張ってコメント書く。

FWの仕様書にも乗ってない機能を使った処理とか、
ゲームのチェックプログラムで独自の数学的証明式組み込んだりとか、
//※preXXX()直後に呼ぶと吹っ飛ぶ
とか、

416 :デフォルトの名無しさん:2012/08/16(木) 20:08:55.08
ゲームのプログラムは分りやすく作る意味が薄いし気にしても仕方ないように思える
分りやすさは何の為に?と言われた時の効用がほとんど挙げられない

417 :デフォルトの名無しさん:2012/08/16(木) 20:50:26.72
分かり易いか、それとも難いかが焦点のスレなのに、
結局分からせなくてもいいって立場のひとが話題を引っ張ってんじゃ、
まずいのではないか。

418 :uy:2012/08/16(木) 20:50:48.70
ゲームプログラムは作業効率さえよければいい
そしてゲームが完成するまでの間だけでも破綻しなければいい
普通にかけばほとんどが再利用不可能コード

419 :デフォルトの名無しさん:2012/08/16(木) 21:02:06.18
業務系とかはわかりやすさ大事だな。
特に仕様書はソースだと言われた時。

420 :デフォルトの名無しさん:2012/08/16(木) 21:08:40.22
デザインパターンってわかってんのか?
ただの設計思想の一つだ

421 :デフォルトの名無しさん:2012/08/16(木) 22:45:58.68
その話はおわた

422 :デフォルトの名無しさん:2012/08/16(木) 22:51:44.55
> 特に仕様書はソースだと言われた時。
書き方を教えろ
だろ、普通の人は

423 :デフォルトの名無しさん:2012/08/16(木) 23:00:01.29
仕様書はソースとは、なんとおぞましい。。

424 :デフォルトの名無しさん:2012/08/16(木) 23:03:02.46
小手先の書き方知ってるだけじゃ、通用しなくなってきてるってことでしょ
肥大化しすぎて

425 :デフォルトの名無しさん:2012/08/16(木) 23:03:17.03
18000行とかの超謎クラスの解析中に出くわしたコード

if(singleton<hoge>::getInstance(5) == this){
//何かの処理
}

これで何かの処理が始まったときの衝撃
短いとか分かりやすいとかそんなチャチなものじゃ断じて無ぇ
日本の底辺の片鱗を味わったぜ…

ってこれ短いコードじゃないな、スマン

426 :デフォルトの名無しさん:2012/08/16(木) 23:05:17.54
ごめん、実際に処理されるコードの記述で
>singleton<hoge>::getInstance(5)
のような文って出てくんだっけ?w

427 :デフォルトの名無しさん:2012/08/16(木) 23:37:00.05
あの、ごめん
言っている意味が良く分からない

428 :デフォルトの名無しさん:2012/08/16(木) 23:44:51.46
singletonもどきを作っちゃいました?

429 :uy:2012/08/16(木) 23:51:18.14
おまえ 日本語 学ぶ 半年 ROM れ

430 :デフォルトの名無しさん:2012/08/16(木) 23:52:32.29
バカでも出来ると思いたい、プログラム?

431 :デフォルトの名無しさん:2012/08/16(木) 23:54:09.03
>>425
singleton==インスタンスがひとつってわけじゃないからそれはいいんじゃないの?
マジックナンバー使ってるのは気になるけどsingletonインスタンスがいくつかあって自分が5番目のインスタンスの時にはなんかするってことでしょ?
forkの戻り値を見て0以外なら親プロセスの処理、0なら子プロセスの処理って分けるパターンの拡張だと思うけど違うん?

432 :デフォルトの名無しさん:2012/08/16(木) 23:55:10.88
::って、実際に実行される文で表れてくるんだっけ?w

433 :デフォルトの名無しさん:2012/08/16(木) 23:59:59.94
>>428
俺が作ったんじゃねぇよぅ
インスタンスが複数作れるシングルトン、とか
謎のコメントが残されていた

あとgetInstance(5)だったり4だったり3だったり
あちこちにそんな処理があったから、
多分何番目に作られたやつはこの処理ってことがやりたかったと思われる

ちなみに確か最大10個作れたと思う
書いたやつは割りと本気で死ねと思う

434 :デフォルトの名無しさん:2012/08/17(金) 00:01:02.01
>>432
日本語で書け

435 :デフォルトの名無しさん:2012/08/17(金) 00:05:34.65
うむ、>>431と被った
多分それで合ってる、代弁ありがとう
これって良くあるやりかたなの?
俺的には衝撃のコードだったんだけど。

で、相変わらず>>432の言いたいことが分からん
ごめんね、読解力無くてごめんね

436 :デフォルトの名無しさん:2012/08/17(金) 00:06:02.63
>>434
つまりだ、if( … )の…の部分に、::が入るような文が来ることがあんのけ?
っていう質問w

437 :デフォルトの名無しさん:2012/08/17(金) 00:07:29.05
ある
staticなメンバ関数を呼ぶときクラス名::メンバ関数名を使う

438 :デフォルトの名無しさん:2012/08/17(金) 00:09:32.31
>>433
デザパタを読みきれんかったんだろうね
(誤読しました?)

433は出来る方なのかな?

439 :デフォルトの名無しさん:2012/08/17(金) 00:12:35.71
>>437
あぁ、とっても初歩的な質問に丁寧にご回答いただき、
どうもありがとうございます。。そゆことか

staticメンバ関数は::で、オブジェクトメンバ関数は.なのか

C++やったことがなく、大変失礼しました

440 :デフォルトの名無しさん:2012/08/17(金) 00:14:08.24
>>435
いや、大丈夫俺も始めてみた
見かけたら読みにくくてぶつぶつ言うと思う
初期設計でこうなったのか継ぎ接ぎ拡張でこうなったのか気になる…

441 :デフォルトの名無しさん:2012/08/17(金) 00:14:25.15
でもインスタンスメソッドでも定義時は::なのよね(´・ω・`)

442 :デフォルトの名無しさん:2012/08/17(金) 00:16:56.10
>>438
出来る人ならこんな愚痴書いたりしないんだぜ
所詮は底辺土方です

ちなみに解析は他の人にぶん投げました
最後のほう、俺には無理だぜヒャッハーって暴れてたw


443 :デフォルトの名無しさん:2012/08/17(金) 00:19:00.97
>>441
基底クラスの関数呼ぶときも
::とか.とか->とかC++って手のかかる子供のようだ…

::を使う必要があるのは仕様上クラス名と同名の変数名が作れるせいだと思う。

444 :デフォルトの名無しさん:2012/08/17(金) 00:21:57.22
>>443
ちょっとまったぁー
クラス名と同名の変数名が作れちゃうとか、そこでだいぶ頭の中が
カオスになってきたんだけど、ひとまず置いといて、
たぶんggrksな内容だと思うけど、->で関数を呼んだりもするの?

445 :デフォルトの名無しさん:2012/08/17(金) 00:25:24.66
>>444
class C{
  void f(){}
  static void g(){}
};
C* C = new C();

C->f();
(*C).f();
C::g();

446 :デフォルトの名無しさん:2012/08/17(金) 00:26:29.75
>>445
ふおぉぉぉぉぉぉーーーーー
ちょっといったんお茶飲んで落ち着いてくる

447 :デフォルトの名無しさん:2012/08/17(金) 00:28:11.22
>>442
逃げ方も上手そうだし
そのうち、なんかあるかもね

448 :デフォルトの名無しさん:2012/08/17(金) 00:39:44.04
>>445
ふぅ。。
とりあえず、沸騰しそうな脳を冷却し、かろうじて思考可能なレベルに
なったと思われるので、足りない脳で解釈してみます

・Cという名前のクラスが宣言されています
・そのCクラスの中には、インスタンスメソッドf()と、クラスメソッドg()が定義されています
・C(クラス)型のポインタ変数Cを定義し、デフォルトコンストラクタで空オブジェクトを生成します
・C型ポインタ変数Cの保持するアドレスをもとに、そのアドレスに格納されているオブジェクトを->で
 参照しf()を呼び出します
・*演算子によって、C型ポインタ変数Cの保持するアドレスにあるオブジェクト自体から、直接的に
 .でf()を呼び出します
・Cというクラス名から、クラスメソッドであるg()を呼び出します

途中で、何言ってっかわからなくなったが、合ってます??

449 :デフォルトの名無しさん:2012/08/17(金) 01:17:15.07
>>422
引き継いだ時とかに質問した、仕様書はどこですか? に対する答えね。
仕様書はソース。

450 :デフォルトの名無しさん:2012/08/17(金) 01:17:53.70
> C::g();
覚えないほうがいいような、最初は

451 :デフォルトの名無しさん:2012/08/17(金) 01:21:54.95
>>449
そういうことじゃなくて
要求に対する読解力が必要だと

成果物の解説書が必要
なのがよーわからんのよね

452 :デフォルトの名無しさん:2012/08/17(金) 01:24:49.11
ん?あれっ?わかったつもりになってたけどわかってないかも

もしかして、>>445のC::g();って、普通のクラスメソッド呼び出しじゃない??

>>445のソースで、
C *C = new C();
としたときの
C::g();



C C;
としたときの
C::g();
って意味違う??


453 :デフォルトの名無しさん:2012/08/17(金) 01:42:27.04
書き方覚えたいのなら
上手い人が書いたのをよーくながめることだね

454 :デフォルトの名無しさん:2012/08/17(金) 01:43:24.33
>>451
このアプリに機能追加してくださいと言われたら、仕様書なきゃ何もできないでしょう。ソース読むの?

455 :デフォルトの名無しさん:2012/08/17(金) 01:50:30.11
>>454
はああああああああああああああああああああああああああああああああああああ

出来る奴は先読みしてるんだよ

456 :デフォルトの名無しさん:2012/08/17(金) 01:51:18.68
>>452
意味は同じ というよりインスタンスとは関係なく

C* a = new C();
C b;

C::g(); // aともbとも無関係

変数名ではなくクラス名

457 :デフォルトの名無しさん:2012/08/17(金) 01:56:10.83
>>456
そうだそうだ、危うくドツボにはまるところだった

まさに、>>443
>::を使う必要があるのは仕様上クラス名と同名の変数名が作れるせいだと思う。
の意味がここにあるわけだね

りょーかい!ありがと

458 :デフォルトの名無しさん:2012/08/17(金) 02:00:15.19
しかし、こんなに複雑な言語をコンパイルするC++コンパイラを作った人は
頭おかしいんじゃないかと思うわw

459 :uY ◆gXFLM6waxs :2012/08/17(金) 02:02:06.17
実際作れてねーよ

C++やるならそのコンパイラがC++11,0xのどこまでの仕様を満たしてるかをまず調べる必要がある

460 :デフォルトの名無しさん:2012/08/17(金) 02:07:16.13
>>455
何を先読むの?

461 :デフォルトの名無しさん:2012/08/17(金) 02:10:32.04
>>460
さあね

462 :デフォルトの名無しさん:2012/08/17(金) 02:11:57.51
>>459
作れてないのかよw
C++やっぱ鬼門だな
クソと言われる所以がようやくおぼろげながらわかってきたぞ

463 :デフォルトの名無しさん:2012/08/17(金) 02:13:43.15
規格のほうが先行してることがあるんだよ
規格ガーとか言ってる方がおかしくねえか

464 :デフォルトの名無しさん:2012/08/17(金) 02:29:07.99
テンプレート可変引数は大至急必要だが、あとはいまのものでなんとかなる。

465 :デフォルトの名無しさん:2012/08/17(金) 02:37:33.18
>>425
特に変なコードには見えなかった
中身みなけりゃ分らないが、シングルトンが配列になっていて順次実行中
5番目の要素を実行する時の特別処理?

分り難いってのは、基本的には共通知識があるかどうかに関わっていて
コードの単純さではないという例のような気がした。

466 :デフォルトの名無しさん:2012/08/17(金) 02:43:33.93
C++はやっぱ拡張しすぎて言語仕様が複雑すぎる
自由度はあるけど

467 :デフォルトの名無しさん:2012/08/17(金) 02:53:43.55
クラス名と変数名じゃ名前空間が違うのから、どの言語でも同じ名前使えると思ってた。規約で防いでるだけで。

phpは変数名の頭に$がつくからと油断してると、
$hoge = new hoge();
$hoge::HOGE;
は、5.3ではokだか、5.2だと
hoge::HOGE;
と書かないと、
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in
と予期せぬダブルコロンと言われる。ラテン語で…。わかるかっ


468 :デフォルトの名無しさん:2012/08/17(金) 02:57:00.02
>>461
お前が何も読めてないのかよw

469 :デフォルトの名無しさん:2012/08/17(金) 03:17:58.71
>>467
ラテン語かよw

470 :デフォルトの名無しさん:2012/08/17(金) 03:37:58.50
>>467
ひどすぎわろた

471 :デフォルトの名無しさん:2012/08/17(金) 09:17:28.27
>>392
Prologのプログラムというのは、第一義的には忘備録なのですね。
もちろん、コンピュータ上で動作して、証明できればいいに決まってるけど。

472 :デフォルトの名無しさん:2012/08/17(金) 10:24:30.69
>>468
別に超能力者でもないからね

473 :デフォルトの名無しさん:2012/08/17(金) 11:25:31.36
>>472
お前は出来ないヤツなんだな。

474 :デフォルトの名無しさん:2012/08/17(金) 14:30:57.43
>>473
普通の人は何げに無能自慢したがるからね

475 :デフォルトの名無しさん:2012/08/17(金) 14:31:44.76
こういうスレはLISPのような記号処理言語の人が中心にやるべきだな。
評価らしい評価もできずに、細部にこだわったレスばかりだ。


476 :デフォルトの名無しさん:2012/08/17(金) 16:05:58.20
スレ主にはスレタイで表現できなかった意図もあるだろうから、ある程度の
逸脱は仕方ないと思うけど。

477 :uY ◆gXFLM6waxs :2012/08/17(金) 17:40:31.93
>スレ主

ニコ厨死ね

478 :デフォルトの名無しさん:2012/08/17(金) 18:41:41.67
コテつけてるけど
よくいる普通の感覚でやってるだけの人な感じだね

479 :uY ◆gXFLM6waxs :2012/08/17(金) 19:10:27.35
この板の連中ってこういう意味不明な発言が大好きみたいだけど

もうちょっと日本語喋ったほうがいい

480 :デフォルトの名無しさん:2012/08/17(金) 19:11:50.03
refrect

481 :デフォルトの名無しさん:2012/08/17(金) 22:28:59.62
>>477
簡単に死ねとか書く人が 意味不明だの日本語だの指摘したところで
そっすねとしか。

482 :uY ◆gXFLM6waxs :2012/08/17(金) 22:46:11.83
ニコ厨死ね

483 :デフォルトの名無しさん:2012/08/18(土) 01:47:21.81
 韓国経済が急激に失速している。一番の原因は、これまで韓国経済を引っ張ってきた原動力である輸出に陰りが見え始めたためだ。

 輸出に次いで内需の鈍化も懸念されている。住宅価格の下落とそれに伴う消費や投資の抑制がみられ、バブル崩壊以降日本が苦しんだ
「日本型長期デフレ」の兆候が現れている、との指摘も少なくない。

■好調に見えたのはヒュンダイやサムスンだけ

 韓国の輸出は、2012年7月の通関ベースで前年同月に比べて8.8%減と大きく減った。マイナス幅は3年ぶりの高い数値だという。

 これまで韓国の輸出をけん引してきた自動車の輸出が頭打ちになったのをはじめ、船舶や石油化学製品、携帯電話など主力製品の輸出が急速に落ち込んだ。

 韓国の輸出額は国内総生産(GDP)対比で50%を超える。「輸出国」といわれる日本でもGDP対比では10%半ばだから、輸出依存度の高さは圧倒的だ。
そのため、輸出の不振は即韓国経済の失速に直結する。

 なかでも韓国経済を支えてきたのが欧州連合(EU)向けの輸出。EUとは自由貿易協定(FTA)を結んでいる。そのEU向けが12年1〜6月期には前年同期に
比べて16.0%も減った。EU諸国の債務危機から発した景気低迷が影響した。

 さらには中国向けも1.2%減った。第一生命経済研究所経済調査部の主任エコノミスト、西?徹氏は、「中国向け輸出の減少はボディブローのように効いています」と話す
。韓国の素材や部品メーカーは中国を介して、間接的にEU向け輸出を増やしてきたからだ。

http://headlines.yahoo.co.jp/hl?a=20120817-00000006-jct-bus_all


484 :デフォルトの名無しさん:2012/08/18(土) 03:23:43.89
個人的には短いコードが好きだけど、短ければいいというもんでもないよな。
Aの中でBを呼ぶのか、A、Bと順番に呼ぶのかとか、
メソッドの依存関係が適当に作られてると、逆に読みにくくなる場合があるね。



485 :デフォルトの名無しさん:2012/08/18(土) 03:26:39.74
自分の技巧度すげーだろ厨の書いた短いコードほど害なものはない

486 :デフォルトの名無しさん:2012/08/18(土) 06:14:51.00
短いほうがいいよ
ながいとバグが

487 :デフォルトの名無しさん:2012/08/18(土) 07:19:59.95
難しく書いて

「俺すげぇぇぇぇぇ」
「馬鹿にはわからないだろな」

をやらなければいいんだよね?

文章と一緒で読者を意識して理解しやすく書けばいい


488 :デフォルトの名無しさん:2012/08/18(土) 07:21:04.80
よくあるケースで、デザインパターン使っただけで「自分の技巧度すげーだろ厨」とか言い出す奴がいて
気絶しそうになる事も多々あり、お前が勉強するのが筋だドアホ

489 :デフォルトの名無しさん:2012/08/18(土) 08:01:51.33
自己顕示欲厨死ねw

490 :uy:2012/08/18(土) 11:38:23.51
>>488
関数型言語使っただけで俺すげー
Ruby使っただけで俺すげー

こちらもよく見かけるw

491 :デフォルトの名無しさん:2012/08/18(土) 12:00:58.08
トリつけろっつってんだろ
つけねぇならuyなのんな

492 :uy:2012/08/18(土) 13:12:12.76
なんでお前の願いを
俺が叶えてやらなきゃいかんのw

493 :デフォルトの名無しさん:2012/08/18(土) 13:19:22.18
uyとuYが同一かどうか不明だから

494 :デフォルトの名無しさん:2012/08/18(土) 13:20:22.75
端的に言えば、uyと名前欄に入れる意味がないから
名無しで書き込めやカス

495 :デフォルトの名無しさん:2012/08/18(土) 13:24:56.19
鏡ばかり見てるなよ

496 :uy:2012/08/18(土) 13:29:04.66
じゃあ、今までどおり気が向いた時に
uYって書いたりトリップつけたりするわwww

497 :uY ◆ZnBI2EKkq. :2012/08/18(土) 13:30:31.83
クイズ

俺は、誰と同一人物でしょう?



498 :デフォルトの名無しさん:2012/08/18(土) 13:35:45.59
>>497
誰でもないお初のuY

499 :uy:2012/08/18(土) 13:39:43.76
>>498
なぜそう思った?

トリップは同一人物であることが証明できても、
違う人であるという証明はできないのだ。

500 :uy:2012/08/18(土) 13:41:43.90
ちなみに他スレでトリップつけてるアホが居るみたいだが
あれは偽物、俺のなりすましな。
ま、証明はできないが。

501 :デフォルトの名無しさん:2012/08/18(土) 13:44:14.12
>>499
素直に同じトリップをつけてればおまえの発言だって確信持てるから
それで十分事足りる
トリなしuyは、全く意味をなさないので名無しにしろ

502 :uy:2012/08/18(土) 14:15:55.68
なんでこいつこんなに必死なのwwww

503 :uy:2012/08/18(土) 14:19:28.65
だから、お前のお願いを叶えてあげる理由がないんだってばwwww
金でもくれるのか?wwww
他人はコントロール出来ない。いやならお前が去るしかない。

504 :デフォルトの名無しさん:2012/08/18(土) 14:34:05.18
お前が好きだからに決まってんだろ

505 :デフォルトの名無しさん:2012/08/18(土) 14:35:50.52
uY ◆gXFLM6waxs
uY ◆ZnBI2EKkq.

いまのところ2種確認されている

506 :uY ◆GmgU93SCyE :2012/08/18(土) 14:47:23.27
その二種類が同じ人物であるか
違う人物であるか、

そして、俺はその二人もしくは一人と
同一人物か違うのか、

また、俺がuyと同じ人物であるか
違う人物であるか、
そもそもすべてのuyは同一人物か、

さてどうやって見分ける?

507 :デフォルトの名無しさん:2012/08/18(土) 14:48:27.37
俺は名無しだが、実はどれかのuyと同一人物だって知っているか?

508 :デフォルトの名無しさん:2012/08/18(土) 14:48:48.05
>>506
同じことがわかればそれでいいって何度言えばわかるの?

509 :デフォルトの名無しさん:2012/08/18(土) 14:51:52.75
uyってわざわざ名前をいれるってことは、自分だとわかってほしい訳でしょ?
だったら、統一したトリ入れれば、それの客観性も保てるという、それだけの話

510 :デフォルトの名無しさん:2012/08/18(土) 14:52:39.55
http://logsoku.com/thread/toro.2ch.net/tech/1343290581/544-609


511 :uY ◆Kbsfk1dG1s :2012/08/18(土) 15:03:42.30
てst

512 :デフォルトの名無しさん:2012/08/18(土) 15:06:47.58
>>509
それやったらあれは俺じゃないって言い訳できなくなるから嫌なんでしょ

513 :デフォルトの名無しさん:2012/08/18(土) 15:09:01.05
>>512
つまり所詮逃げ口上作っときたいカスってことだな

514 :uy:2012/08/18(土) 15:09:05.91
>>508
何度言えばわかるの?と言われても、
お前に俺が言われたのは初めてだから
どうしようもないよねw


515 :デフォルトの名無しさん:2012/08/18(土) 15:09:53.06
そういうやつは名無しで書き込んどけカス

516 :uy:2012/08/18(土) 15:12:56.98
断るwww

517 :デフォルトの名無しさん:2012/08/18(土) 16:02:58.26
そもそも人の作ったコードを読む必要があるのか?
OOなら、コードは読まない決めたほうが開発は上手くいくかも。

518 :デフォルトの名無しさん:2012/08/18(土) 16:08:30.45
>>517
バグフィックスや仕様変更があるからなぁ。
それに一年後に適当に自分が書いたソース見てもわからなかったり。
会社としてはシステム保守が人に依存しちゃうから困る。

519 :デフォルトの名無しさん:2012/08/18(土) 16:20:00.64
     ___
   /|    |
   ||. |∧_∧|
   ||. (´・ω・| うわっ、クソスレに来てしまった。
   ||oと.  U|
   || |(__)J|
   ||/ ̄ ̄
     ___
    |     |
    |     |
    |   o|
    |     |
    |     |
    彡 ̄ ̄ パタン、


520 :デフォルトの名無しさん:2012/08/18(土) 17:19:04.62
>>518
バグも継承で直せばコードを読む必要もないし
共通クラスライブラリなんかも普通はコードを読まないでしょう。
なぜ自分の書いたコードだけ読む必要があるのか?

521 :uy:2012/08/18(土) 17:20:22.35
>>520
はっきりした。

お前が馬鹿だから、
お前の言うことは間違っている。

はい、結論。

522 :デフォルトの名無しさん:2012/08/18(土) 17:28:40.60
バグが出るたびにサブクラス作って対象メソッド丸ごと書き直しとか斬新だな。
privateメソッドバグってたらどうすんの?コピペか、可視性破壊すんのか。

523 :520:2012/08/18(土) 17:32:13.11
まっOOが分かっていない人間には
このあたりが理解出来ないんだよな。

524 :uy:2012/08/18(土) 17:36:44.27
Rubyでもモンキーパッチとか言って
こうやってオリジナルを修正しなくても
修正できるぜとか自慢している馬鹿がいるけど、
本来はオリジナルのコードを直すべき。

525 :520:2012/08/18(土) 17:38:57.76
>>522
全部書き直してもいいし、不具合の出るケースだけ
Adapterパターンで作ってもいい。(そのケースによる)

privateメソッドなんて最初から作成しない。

526 :520:2012/08/18(土) 17:40:15.21
>>524
>本来はオリジナルのコードを直すべき。
その理由は?

527 :デフォルトの名無しさん:2012/08/18(土) 17:42:34.18
>>1
中級とか関係ねーよ。上級者でもいえる。
perlとかruby厨に対して言えアホ。

528 :uy:2012/08/18(土) 17:44:29.14
>>526
バグを正しく直すというのは、
バグを修正することであって、
バグを別のコードで覆い隠すことではないから

529 :デフォルトの名無しさん:2012/08/18(土) 17:47:30.08
>>525
継承しても、インスタンス生成とか利用しているところ直さなきゃ駄目だし。
それに不具合だと、どこが原因かも読まなきゃわからないし。
そもそも無闇にクラス増やしたくない。


530 :デフォルトの名無しさん:2012/08/18(土) 17:50:26.61
>>528
で、おまえ誰だよ

531 :uy:2012/08/18(土) 17:51:49.63
>>530
お前こそ誰だよ

532 :デフォルトの名無しさん:2012/08/18(土) 18:00:38.56
俺だよ俺

533 :uY ◆gXFLM6waxs :2012/08/18(土) 18:01:07.54

520 :デフォルトの名無しさん:2012/08/18(土) 17:19:04.62
>>518
バグも継承で直せばコードを読む必要もないし
共通クラスライブラリなんかも普通はコードを読まないでしょう。
なぜ自分の書いたコードだけ読む必要があるのか?





SUGEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

534 :520:2012/08/18(土) 18:02:15.11
>>528
主観的な意見で論理的ではないですね。

>>529
>継承しても、インスタンス生成とか利用しているところ直さなきゃ駄目だし。
まっ言語によってはそうかもしれないけど、最近の言語ならメタクラスがあるから修正不要でしょう。
このあたりが理解できていない技術者が以外にも多い。

>それに不具合だと、どこが原因かも読まなきゃわからないし。
必ずしもそうでは無いでしょう。不具合が言語やOS・DBなどの場合
根本的な原因が分からない場合、事象だけで対応するし。
それよりコードに手を入れて他の機能でデグレードが出ないか保障出来る?

535 :デフォルトの名無しさん:2012/08/18(土) 18:02:19.64
>>533
本物きたw

536 :uy:2012/08/18(土) 18:09:49.38
ちょっと待て、
トリップつけてる奴は偽物だぞw

537 :デフォルトの名無しさん:2012/08/18(土) 18:11:43.16
>>536
じゃあ、そう思われないようにトリつけろよ

538 :デフォルトの名無しさん:2012/08/18(土) 18:17:49.31
>>534
そんな特異なケースで一般化してしまっていいものか。


539 :デフォルトの名無しさん:2012/08/18(土) 18:19:28.46
>>534
外からクラスを書き換えるようなメタメタなパッチが大量にできて
そのうちパッチのパッチのパッチみたいなものもどんどん増えて
パッチつくるコストそのものが無尽蔵にあがっていきそう。

でも、実際にそういう運営でプロジェクト走らせて年月がたったらどうなるかは興味ある。
これでうまいことやってるの?

540 :デフォルトの名無しさん:2012/08/18(土) 19:16:02.55
>>534
修正すべきシステムが最近の言語でかかれていないと、読まなきゃなんだね。
必ずしも必要ないのは同意だけど、逆に読まなきゃいけない場合もあるよね。というか、ドキュメントの不備不整合が多いのでソースが必要なことのが多い。
あと、例外でスタックトレースが出てるとか、ソース読まなきゃどうしようもない不具合。

デグレードが起こるかはテストすればわかるだろう。場合によっては関連潜在バグが発覚する。

541 :デフォルトの名無しさん:2012/08/18(土) 19:40:22.45
基本的なことだけど
A←B←Cという関係でBにバグが見つかったら
その箇所は放置して新規にA←B'←C'にするだけだよ
Cの状態で良いって客もいるから
一度でもリリースしたものは原則として触らない
パッチが存在するとしてもB→B'とC→C'部分だけで
結局最新版のC'が動く状態を維持するだけ
Cの状態で良いって客が仕様を追加してくれとなっても
その時には原因特定できてるからC'←Dとして作るだけ
最近の言語は〜なんて特定機能に依存している手法は
必ず破綻すると断言できる

542 :デフォルトの名無しさん:2012/08/18(土) 19:43:42.32
>>538
そこまで特殊でもないでしょう。

>>539
>パッチつくるコストそのものが無尽蔵にあがっていきそう。
パッチつくるコストも改修するコストもそんなにかわらないとおもうけど。

改修がクラス毎に分かれているから結構扱いやすいよ。

>でも、実際にそういう運営でプロジェクト走らせて年月がたったらどうなるかは興味ある。
>これでうまいことやってるの?
全部じゃないけど(人の作ったクラスだと初めの作りが駄目で、出来ない場合が多い)
それなりに回っている。

>>540
>逆に読まなきゃいけない場合もあるよね。というか、
>ドキュメントの不備不整合が多いのでソースが必要なことのが多い。
絶対読んじゃ駄目ということじゃなく「読む必要がないように作りましょう」という話で
ドキュメントの不備があってもリリース後なんだから詳細設計は分からなくても
機能は分かっているでしょう。

>デグレードが起こるかはテストすればわかるだろう。場合によっては関連潜在バグが発覚する。
でもテストしたプログラムがバグっていることはいくらでもあるでしょう。
テストしたからってデグレードが無い証拠にはならないよと思うけど。


543 :uy:2012/08/18(土) 19:55:56.73
> パッチつくるコストも改修するコストもそんなにかわらないとおもうけど。
外から無理やりパッチ当てる方がコストは掛かる。

当たり前の話で外からパッチを上げるには
パッチを当てられるポイントを探さないといけない。

例えば、関数の中の一行書き換えればいいだけの修正でも
関数全体を置き換えないといけなくなる。
そうやって置き換えた関数が将来正しく動くとは限らない。

544 :520:2012/08/18(土) 20:11:39.44
>パッチつくるコストも改修するコストも""そんなに""かわらないとおもうけど。
目くじらを立てる反論するところかな?

545 :デフォルトの名無しさん:2012/08/18(土) 20:13:37.73
>>544
それで?

546 :デフォルトの名無しさん:2012/08/18(土) 20:19:03.48
>>542
>「読む必要がないように作りましょう」
できてないから修正必要になるし読むんだよ。

>機能は分かっているでしょう。
機能だけから作るなら、作り直しになるけど、予算出してくれる?

>テストしたからってデグレードが無い証拠にはならないよと思うけど。
だとしたら継承して書き換えた方がデグレード起こりやすいと思うよ。
よって、継承して修正すべきでないね。


547 :デフォルトの名無しさん:2012/08/18(土) 20:37:11.23
uyに匹敵するバカ登場

548 :デフォルトの名無しさん:2012/08/18(土) 20:46:15.18
継承して修正とかどこのOO信者の言葉真に受けたんだ

549 :uy:2012/08/18(土) 20:51:39.61
こうゆうことするやつがいるから継承は嫌われるんだよ

バグはバグでも仕様のバグ修正だろ
プログラムのバグを継承で隠蔽は怖い

550 :デフォルトの名無しさん:2012/08/18(土) 20:52:55.52


551 :デフォルトの名無しさん:2012/08/18(土) 20:56:02.73
まぁ、OOならではの方法ではあるが・・・w
たぶん、OOで可能な事を強引に推し進めて、これがOOなんだと間違った解釈をしてしまった人だね。

不具合箇所を見ず、設計書から正しいコードをもう一回起こすとか、不具合と向きあってないな。
こういう人を上に立たせると、多分品質管理の面でボロボロになる。間違いない。

552 :デフォルトの名無しさん:2012/08/18(土) 20:57:19.28
バグを内包したクラスをそのままにして、さらにそれをスーパークラスとして
持っておくとか、正気の沙汰とは思えんな

553 :デフォルトの名無しさん:2012/08/18(土) 21:28:58.66
最後に吾郎さんが悪霊退散してくれるから大丈夫

554 :デフォルトの名無しさん:2012/08/18(土) 21:30:46.71
こんなことされたら怖いから、メソッドにfinalつけてまわらにゃならんやんけ

555 :デフォルトの名無しさん:2012/08/18(土) 21:53:47.45
こんなやり方のどこにメリットがあるんだろう

556 :デフォルトの名無しさん:2012/08/18(土) 21:54:41.46
開放閉鎖原則を変に解釈しちゃったみたいだな

557 :デフォルトの名無しさん:2012/08/18(土) 21:59:07.99
>>554
しかし、それやられたら太刀打ちできないなこの方法じゃw

558 :デフォルトの名無しさん:2012/08/18(土) 22:08:48.76
直接はできないだけ

559 :デフォルトの名無しさん:2012/08/18(土) 22:12:18.58
>>558
どーゆーこどだよw言語上許されないから無理だろ

560 :デフォルトの名無しさん:2012/08/18(土) 22:17:05.36
>>556
たしかにOCPの「修正に対して閉じている」を変なふうに解釈するとそうなるんだよね。
その勘違い自体はありがちだと思うけど、何の疑問も持たずにそのまま突っ走っちゃったみたいだなぁ

561 :520:2012/08/18(土) 22:20:26.38
>>545
逆にこっちがコストがかかる根拠がしりたいけどね。

>>546
>できてないから修正必要になるし読むんだよ。
んぅ...それは自分の技術力に関係しているとは思わない?

>だとしたら継承して書き換えた方がデグレード起こりやすいと思うよ。
根拠は? 修正箇所だけをクラスにすれば影響は最小限になるけど。

>>548
>継承して修正とかどこのOO信者の言葉真に受けたんだ
どのOOLでも継承はあるけどね。

>>549
>バグはバグでも仕様のバグ修正だろ
そんな決まりいつできたの?主観でしょう。

>>551
>多分品質管理の面でボロボロになる。間違いない。
大丈夫です、上手くやっていますよ。

>>552
>バグを内包したクラスをそのままにして、さらにそれをスーパークラスとして
>持っておくとか、正気の沙汰とは思えんな
バグをそのままにしないための継承して修正なんだがら、わかってる?

それに、標準のクラスライブラリにバグがあるかって修正する?


新しいやり方を、主観的な理由で駄目だと言うのは
技術者的にどうなんだろうね。

562 :デフォルトの名無しさん:2012/08/18(土) 22:23:23.46
>>559
ラップじゃね?

563 :デフォルトの名無しさん:2012/08/18(土) 22:32:24.33
これは新しい池沼

564 :デフォルトの名無しさん:2012/08/18(土) 22:47:10.62
「臭いものに蓋」が新しいやり方?
江戸いろはかるたにすらあるダメなことの代表例ですが

565 :デフォルトの名無しさん:2012/08/18(土) 22:56:49.58
>>561
聞いたことないやり方だったんで質問なんだけど

バグがあるコードをそのまま残しておくってことは、
今後そこのコードはメンテしないものになるわけだから、
何か調査してて引っかかってきても、無視しなきゃいけないと思うんだが、
どういう方法で管理してるの?deprecated1とか何かマークを付けておくとか?

あと、そのメソッドは、もう使用されたくないものなわけだから、
つまり、そのクラスをインスタンス化するなって事になるt思うんだけど、
その辺りはどうやって保証していくの?DIコンテナとかを使うことが前提?


566 :uY ◆gXFLM6waxs :2012/08/18(土) 23:11:41.67
ひとつだけ聞きたいな

いま何段階くらいバグ修正の為の継承やってるの?

それから、それは何回までは自分の中で許されると思ってる?


567 :デフォルトの名無しさん:2012/08/18(土) 23:24:48.46
たぶんこの方式とると、人もプロジェクトも成長しない。
動くものが出来上がるだけ。
ユーザーにとってはそれで充分だが、開発者にとってはすごく不幸なことだと思う。

568 :デフォルトの名無しさん:2012/08/18(土) 23:28:35.91
>>561
>>546
>んぅ...それは自分の技術力に関係しているとは思わない?
人の作ったものも変更しなきゃだから、読む読まないって話になってる。

>根拠は? 修正箇所だけをクラスにすれば影響は最小限になるけど。

コード修正なら最小単位はコードだけど、継承だと最小単位はメソッドだから。元のメソッドを変更するなら本末転倒。

そんなに優秀なら君の書いたプログラムは修正しなくていいんじゃない?

569 :デフォルトの名無しさん:2012/08/18(土) 23:30:07.13
>>566
2つ聞いてるぞ。

570 :デフォルトの名無しさん:2012/08/18(土) 23:37:43.61
バグの修正に継承?
その継承の使い方は間違ってないか?

継承でパッチをあてて、そのパッチを更に継承でパッチあてて、そのパッチのパッチに更に...
そして、どうしようも無くなってから元のクラスを修正したら...終わりだよね...人生が...

571 :デフォルトの名無しさん:2012/08/18(土) 23:44:24.04
オブジェクト指向がわかってない奴が、
継承を知ると、間違った使い方をするという例だなw
で、そういう奴が、オブジェクト指向を叩きだすとw

572 :デフォルトの名無しさん:2012/08/18(土) 23:47:21.78
その方法の有効性を論理的に説明してくれないか?
嫌味でいってるのではなく、本当に興味がある。


573 :デフォルトの名無しさん:2012/08/18(土) 23:52:38.21
virtualになってない関数にバグがあっても継承しだす

574 :デフォルトの名無しさん:2012/08/18(土) 23:53:37.57
>>571
それならまだいい。
>>520は間違った使い方に有効性を感じてしまっているから始末が悪いw


575 :デフォルトの名無しさん:2012/08/18(土) 23:59:58.99
いやぁ、マジで恐ろしいなぁ
継承による「臭い物には蓋」対処法
バグを先祖代々受け継いでいると、そのうち、本当に収拾つかなくなるぞ
悪いことは言わん、スーパークラスのコードをデバッグするんだ

576 :デフォルトの名無しさん:2012/08/19(日) 00:00:56.81
所詮、プログラマでない素人の考え。
オブジェクト指向を知らない人間が
どう使おうが、子供だと思って笑って見てようw

577 :デフォルトの名無しさん:2012/08/19(日) 00:08:00.55
エンカウントしたら、笑ってられない。

578 :デフォルトの名無しさん:2012/08/19(日) 00:22:33.21
俺は 520 じゃないし、対応の仕方がいいか悪いかは評価しないけど
Windows API とか COM とかは 520 みたいな対応の仕方してるよね。

579 :デフォルトの名無しさん:2012/08/19(日) 00:35:06.46
たまにあるな、継承すればオブジェクト指向だとか本気でチームリーダーが思っていて
どう見ても継承が正しいとは思えない局面で継承しろとか、それが正義とばかりに叱咤し始めて
死にそうになりながらコードした経験があるw

580 :デフォルトの名無しさん:2012/08/19(日) 00:42:23.77
錆びたタンカーを新品のペンキで塗りつぶして「大丈夫っす!」って出航
海の真ん中で石油ぶちまけて沈んだ話を思い出した


581 :デフォルトの名無しさん:2012/08/19(日) 00:45:54.42
バグ入りクラスの元クラスの修正が出来ない前提なら
ラッパークラスを作って中に閉じ込めるのが正解だろうな
継承だと使い方次第で修正前の中身がはみ出してしまう

582 :デフォルトの名無しさん:2012/08/19(日) 00:48:20.85
ただ、継承&モンキーパッチ方式を、本来の継承の目的から逸脱してるから以外の理由で
なんで普通しないのかを考えるのはいいと思う

メリット
・ バグったコードは完全な形で残っているので、バグってても問題ない部分はそれをそのまま使えばデグレもおきない
・ ごめん俺じゃこれ以上思い浮かばない

デメリット
・ バグってるコードが、呼べば動作する状態で残される
・ すべてのメソッドについて、継承されることを前提にして組まなければならない
・ パッチ用のサブクラスが際限なく増殖する恐れがある。継承の階層もバグの数だけ増える
・ 普通はしない手法なので、バグ修正ガイドラインを整備し周知し続けないといけない
・ もし1行の修正でもメソッドを丸ごと作り直して、修正箇所がパッチ済みメソッドならさらに新パッチクラスを作らないといけない
・ カプセル化をぶち壊しかねない
・ これをはじめると大本のクラスに手出しできなくなる

個人的には、例に出してる標準ライブラリにモンキーパッチするのは
あくまでチーム外の赤の他人が作って配布してる手出ししづらいものだからであって
自分で作ったものは自分でコントロールできるんだから、バグは消したほうがいいんじゃねと思う

583 :デフォルトの名無しさん:2012/08/19(日) 00:59:34.79
>>578
> 俺は 520 じゃないし、対応の仕方がいいか悪いかは評価しないけど
> Windows API とか COM とかは 520 みたいな対応の仕方してるよね。

してないけど? 一体何の話してるんだ?


584 :デフォルトの名無しさん:2012/08/19(日) 01:05:37.66
いやぁ、やべーながれだな
げろってみたら、実はそれ普通じゃなかったていう感じのやつがいるな
世の中のどこにそんなコードが使われてるのか知らんが、
命に関わる部分でないことを切に願う

585 :520:2012/08/19(日) 01:31:34.22
>>565
>何か調査してて引っかかってきても、無視しなきゃいけないと思うんだが、
>どういう方法で管理してるの?deprecated1とか何かマークを付けておくとか?
たしかに不要なコードは悩みどころだけど、クラスが修正毎に階層になっているから
最新から見ていけば修正の意図はわかるよね。

>その辺りはどうやって保証していくの?DIコンテナとかを使うことが前提?
最新のクラスからのみオブジェクトを作ればいいからメタクラスに最新のクラスを設定する。

>>566
>いま何段階くらいバグ修正の為の継承やってるの?
リリースしたものにそんないバグはないでしょう。
確か改修もいれて4階層が一番深かったと思うけど。

>>568
>人の作ったものも変更しなきゃだから、読む読まないって話になってる。
その読む読まないってのがどうなんだろう?

>コード修正なら最小単位はコードだけど、継承だと最小単位はメソッドだから。元のメソッドを変更するなら本末転倒。
"元のメソッドを変更するなら本末転倒" 元のメソッドを変更をしないための継承なんだけど。

>>572
>その方法の有効性を論理的に説明してくれないか?
デグレードを最小限に出来る。既存コードは触らないから新しいプログラムの変更箇所新規クラス部分だけ。
ベース部分(既存)がしっかりしているのは自分には有効だと思える。

>>581
>ラッパークラスを作って中に閉じ込めるのが正解だろうな
それだとクライアント側がどのクラスを使うのか判断しないといけなくなるよね。


586 :デフォルトの名無しさん:2012/08/19(日) 01:37:45.64
> 最新から見ていけば修正の意図はわかるよね。
わかりません。

587 :520:2012/08/19(日) 01:43:44.49
>>586
>わかりません。
それは残念ですねw

588 :デフォルトの名無しさん:2012/08/19(日) 01:45:07.80
コードの中身を見ないって前提だろ。
なんで最新から見ていくんだよw

そんなのするぐらいなら、オリジナルのコードを
修正したほうがよい。

589 :uY:2012/08/19(日) 01:50:49.78
バージョン管理をソースコードレベルでやっちゃってる

590 :デフォルトの名無しさん:2012/08/19(日) 01:55:41.93
もしバグっているクラスがあって、修正不可能または、発行元の修正までに掛かる時間が不明の場合どうするか?
COM系ライブラリのように、バグはあってもクラス設計は糞で無く、必要なインターフェイスは揃っている前提として
オレの場合はこんな感じか

バグフィックスをしたクラスに対する要望
1.バグフィックスをしたクラスは、それを利用する関数その他で利用可能であって欲しい
2.バグのあるクラスは、提供元ライブラリはしかたないとしても
 自分たちの作るコード内に利用できないようにブロックしておきたい。
3.バグのあるクラスは、バグフィックスしたクラスのスーパークラスであってはならない
 これは、継承されたクラスが持つべき機能の前提が崩れてオブジェクト指向にならなくなるので
 特にオブジェクトの比較などがある所では、バグがバグを呼んでしまう


591 :デフォルトの名無しさん:2012/08/19(日) 01:56:46.77
590続き
interface IBug バグ付きクラスのインターフェイス
class BugClass : IBug バグ付きクラスは、IBugインターフェイスを持っている

これに対して

interface IBugFixed : IBug バグフィックスしたクラスのインターフェイスは IBug を利用している関数から利用可能
class BugFixedClass : IBugFixed
{
 BugClass innerObject;
 ... 以下必要パッチを当てたメソッド類を定義、必要に応じて innerObject を呼び出す
 このクラスは直接生成せずに、関数をオーバーライドして継承したクラスだとしても
 問題はこのクラスの中に閉じ込められる
}

以下、自分たちで使う時は IBugFixed インターフェイスを使って利用すれば
BugClassから利用することは叶わないからBugClassは利用されないだろう
逆に自分たちの作った BugFixedClass は BugClass のインターフェイスに適合するので
提供元ライブラリに対してそのまま使える

592 :デフォルトの名無しさん:2012/08/19(日) 02:07:08.82
grepで影響範囲調べるんだけど不要なクラスあるとそこで引っかかってめちゃ困る
いや、除外すればいいんだけどさそういうのが増えると効率下がる

593 :デフォルトの名無しさん:2012/08/19(日) 02:16:22.72
>>589
トリ(´・ω・`)

594 :デフォルトの名無しさん:2012/08/19(日) 06:29:18.86
今後
短いコードは返上して、ソースプログラムだけでバージョン管理はできるか?
というスレに変更しましょう。


595 :デフォルトの名無しさん:2012/08/19(日) 06:41:09.88
ソースプログラムでバージョン管理しようとする低能^H^Hプロジェクトリーダー様は何とぞ爆発して頂けますようお願いいたしますw
勘弁してください、そんな事をされたら死んでしまいます、ホント

596 :デフォルトの名無しさん:2012/08/19(日) 09:20:27.18
なんか既存コード修正への恐怖心がものすごく伝わってくるんだけど
ユニットテストとか、CVSでいいからバージョン管理システムとか一切使ってないのか?

597 :デフォルトの名無しさん:2012/08/19(日) 09:29:14.48
>>585
>その読む読まないってのがどうなんだろう?
読む読まないの話が不要なら、あなたはこの話に加わる意味がない。

>元のメソッドを変更をしないための継承なんだけど。
だから、元のメソッドを変更しなきゃ、メソッド単位の変更だけで、コード単位の変更はできないでしょ。

598 :デフォルトの名無しさん:2012/08/19(日) 10:17:09.79
この手の継承をする奴は機能の継承ではなくコードの継承をやり腐るから最悪なんだな
機能を見ずに挙動をみてプログラムや設計をするからすぐに身動き取れないコードと化す
にも関わらず俺凄いとか思いこんでいて困る

599 :デフォルトの名無しさん:2012/08/19(日) 14:06:20.29
分かったからおまえら口じゃ無くて手を動かせ

600 :デフォルトの名無しさん:2012/08/19(日) 14:19:59.18
じゃあ、高速タイピングで
2ちゃんねるに書き込みだ!

601 :520:2012/08/19(日) 14:22:25.11
>>588
>コードの中身を見ないって前提だろ。
そんな前提ないけどね。大丈夫?

>そんなのするぐらいなら、オリジナルのコードを修正したほうがよい。
根拠は? あくまでも主観だよね。

>>589
>バージョン管理をソースコードレベルでやっちゃってる
んぅ? 継承がソースコードレベルでしか出来ないと思っている? それとも別の意味?

>>590
>特にオブジェクトの比較などがある所では、バグがバグを呼んでしまう
オブジェクトの比較がなんでバグがバグを呼んでいるんだ? オブジェクトなんだからアドレス比べるだけ、それが?

>>592
>grepで影響範囲調べるんだけど不要なクラスあるとそこで引っかかってめちゃ困る
それはよくわかる。

>>596
>ユニットテストとか、CVSでいいからバージョン管理システムとか一切使ってないのか?
そんなのでデグレードを起こさない理由になるの?
共通クラスライブラリの修正にはパッチを当てて、自分達が作ったクラスは直接修正する理由は?
それとも共通クラスライブラリも修正しているとか?

>>597
>だから、元のメソッドを変更しなきゃ、メソッド単位の変更だけで、コード単位の変更はできないでしょ。
元のメソッドを変更しない為に継承しているんだけどね。なんか凄い思い込みをしているよね。


602 :デフォルトの名無しさん:2012/08/19(日) 14:30:20.71
> 根拠は? あくまでも主観だよね。

それをいうなら、まず先に
お前が根拠をいえ。

お前だって主観だろ。

603 :デフォルトの名無しさん:2012/08/19(日) 15:14:26.74
>>601
>元のメソッドを変更しない為に継承しているんだけどね。なんか凄い思い込みをしているよね。

あるメソッドが、2つの結果をもたらします。しかし、1つは仕様変更でになりました。継承修正では2つとも変更が必要ですね?

あるメソッドが、80行のコードからできてました。仕様変更により1行を変更しなければなりません。継承修正では残りの79行も新たに書くのでデグレードの可能性が高いですね?

604 :デフォルトの名無しさん:2012/08/19(日) 15:18:23.63
継承元のバグは、いずれ修正されるからな。

605 :デフォルトの名無しさん:2012/08/19(日) 16:02:35.36
520のスタンスは最初から
「自分のやり方が正しい、反論してるやつはバカ」
ってんだから、何言ったって蛙の面にションベンだろう

少なくとも俺には、他の誰も認めていない自分理論を振りかざしつつ
>まっOOが分かっていない人間には
>このあたりが理解出来ないんだよな。
なんて台詞、恥ずかしくて吐けない
ていうかもう見ているこっちが恥ずかしい


606 :デフォルトの名無しさん:2012/08/19(日) 16:05:25.46
>>520

607 :デフォルトの名無しさん:2012/08/19(日) 16:33:52.85
そろそろコボラーの年寄りの臭いがしてきた

608 :デフォルトの名無しさん:2012/08/19(日) 16:48:50.11
えっ、中二くらいだと思ってた。
実用したら使えないのはすぐわかるだろ。

609 :520:2012/08/19(日) 19:55:27.42
>>602
>お前”だって”主観だろ。
自分が主観だって認めるんだ。

自分が言いたいのはつまり君の技術力なら
それで上手くいくのかもしれないが、他の人は?初心者がやっても同じ結果?っと言うこと。

で、こっちが言っていることはOOPLの機能としての継承だから客観的に見ることが出来るよね。
継承を使う使わないという明確な判断基準があるんだから。

でもソースコードの修正は、どのレベルの人が修正しても同じなの?
良い悪いの前にどうやって評価するの?

>>603
>あるメソッドが、2つの結果をもたらします。しかし、1つは仕様変更でになりました。継承修正では2つとも変更が必要ですね?
必要なし、1つのみ変更。なんで「2つとも変更が必要」と思うのか?

>あるメソッドが、80行のコードからできてました。仕様変更により1行を変更しなければなりません。
>継承修正では残りの79行も新たに書くのでデグレードの可能性が高いですね?
デグレードをなんで行数でくらべるの? 

例えば標準クラスライブラリのクラスがバグていて1行修正すれば直りますと。
ただ標準クラスライブラリのクラスだから何十〜千のプログラム・モジュールで使われています。

問題の起きたプログラムだけ継承して修正したクラスを使うのと、標準クラスを修正するのはどっちが
デグレードが少ないですか? っと言う感じでデグレードと行数を直接比べられる?

610 :デフォルトの名無しさん:2012/08/19(日) 19:57:26.59
継承はバグに蓋をするものではありません。

以上。

611 :デフォルトの名無しさん:2012/08/19(日) 20:18:47.21
>>609
つまり、それはお前の主観なんだろ?

612 :デフォルトの名無しさん:2012/08/19(日) 20:20:20.53
「それはお前の主観なんだろ?」使えるwww


613 :デフォルトの名無しさん:2012/08/19(日) 20:20:48.70
>>609
おまえに賛同する人間が丸一日で一人も出てこない時点で理解できないかな
あと世界規模で使われる標準ライブラリとプロジェクト内だけの共通クラスを一緒にするのも痛いぞ
これ以上恥の上塗りはやめて消えたほうがよくない?

614 :デフォルトの名無しさん:2012/08/19(日) 21:18:41.13
>>1
短く書いてコメント書かないのは
「こんなもの即理解できて当然。分からないの?ぷ」
っていうメッセージなんだよ。

良くも悪くも

615 :デフォルトの名無しさん:2012/08/19(日) 21:21:34.76
>>609
一言で言うとお前みたいなのがプロジェクトチームにいると回りが死ぬ

616 :デフォルトの名無しさん:2012/08/19(日) 21:22:17.97
>>614
それ、良くも悪くもじゃなくて
悪いところしかないじゃないかw

617 :デフォルトの名無しさん:2012/08/19(日) 21:25:22.94
上の方をみたら例に挙げているのをみて、それゃ短く書いてるんじゃないだろって1に突っ込みたくなったw

618 :デフォルトの名無しさん:2012/08/19(日) 21:25:38.00
これ関係の話題が大抵荒れるのは>>614みたいな面があるからだろうな

619 :デフォルトの名無しさん:2012/08/19(日) 21:28:49.05
話題としては面白そうなのに中見てみたら、ネタふりの技術レベルが余りに酷かった系は荒れる

620 :デフォルトの名無しさん:2012/08/19(日) 21:53:35.82
じゃネタをふってみると、短くてわかりにくいと感じるのは
お前の頭が悪いだけ。
自分のアホっぷりをコードのせいにすんな、アホ

621 :デフォルトの名無しさん:2012/08/19(日) 22:08:34.89
>>620
具体性のないネタは、ちょっとは反応を得ても続きませんよ。

622 :デフォルトの名無しさん:2012/08/19(日) 22:11:28.46
ほれ突っ込めってやられるなら
ボケが巧けりゃオモシロスレになるんだが発狂するからなw

623 :520:2012/08/19(日) 22:14:03.13
>>610
>継承はバグに蓋をするものではありません。
根拠は?

>>611
>つまり、それはお前の主観なんだろ?
主張は主観をもとに言うもんだよ。

>>613
>あと世界規模で使われる標準ライブラリとプロジェクト内だけの共通クラスを一緒にするのも痛いぞ
それと、デグレードと行数はどう関係するの? 書いている意味が分かってないのかな?

>>615
プロジェクトでは結構重要な役割が多いけどね。

624 :デフォルトの名無しさん:2012/08/19(日) 22:20:41.98
>>623
>プロジェクトでは結構重要な役割が多いけどね。
多分そうだろうとしゃべりっぷりからそう思ってた、オレんトコにも居たし
めちゃくちゃ迷惑だから爆発してくれw

625 :デフォルトの名無しさん:2012/08/19(日) 22:31:31.88
>>623
> 根拠は?

継承をバグに蓋をするために使うとする根拠は?


626 :デフォルトの名無しさん:2012/08/19(日) 22:34:44.56
無駄に年重ねてると裸の王様がうまれるといういい例だな

627 :デフォルトの名無しさん:2012/08/19(日) 22:38:09.49
プログラム組んだことないのにリーダーになるとこうなる

628 :デフォルトの名無しさん:2012/08/19(日) 22:40:39.63
>>627
逆だよ、只大量にコードするだけで全然勉強していないエキスパートプログラマの末路

629 :デフォルトの名無しさん:2012/08/19(日) 22:40:53.41
継承をバグ隠しに使うのって、国産のオブジェクト指向本か何かで布教されてるのかな?
520が独自にひらめいて、チームに強制してるならメンバーご愁傷様でいいんだけど
こんな悪法が広まったら、本気で中国人につぶされるぞ

630 :デフォルトの名無しさん:2012/08/19(日) 22:45:16.51
10年もたつとITリテラシが変わるので、再度一から知識リフレッシュをしなければならないんだが
やらずに当時の試行錯誤がさらに力技になった果てに520が生まれるって印象。

631 :520:2012/08/19(日) 22:45:16.60
>>625
>継承をバグに蓋をするために使うとする根拠は?
んっ、根拠なんてないぞ。 何をいっているだ?

632 :デフォルトの名無しさん:2012/08/19(日) 22:45:59.45
>>631
じゃあ、なんで継承をバグ潰しに
お前は使ってるんだ。
馬鹿じゃないか。

633 :デフォルトの名無しさん:2012/08/19(日) 22:47:02.95
というか誰が何をいっても「それでデグレが減る?」しか帰ってきてない感じだけど
なんでそこまでデグレを恐れてるんだろう。普通は隠蔽工作じゃなくてUTとかで対策するのが普通だと思うんだけど。
このへんがなんかほかの誰ともかみ合ってない感じ

634 :デフォルトの名無しさん:2012/08/19(日) 22:50:37.93
>>629
オブジェクト指向はコード修正は行わずコード追加でバグ対応する
ってネットのどっかに書いてあった
もちろん勘違いしたOO信者のセリフなんだけど
そういうのを読んでまにうけたんじゃないかと思ってる

635 :デフォルトの名無しさん:2012/08/19(日) 22:52:06.64
>>634
昔、活用方法の一つとしてあった頃もあるんだよ、1990年代の話

636 :デフォルトの名無しさん:2012/08/19(日) 22:56:57.45
1990年代は暗黒時代なんやな

637 :520:2012/08/19(日) 22:57:26.67
>>632
使用できるものを使用するのに根拠がいるのかな?
使用を禁止する方が根拠を示さないと。

638 :デフォルトの名無しさん:2012/08/19(日) 22:59:55.81
>>636
何をやっても目新しい楽しい時代だったよw
今みたいに仮想テーブル使って呼び出すなんて方式がまだ異端で
メールボックスみたいな物準備して、メッセージのやり取りとか普通にあったんだぜw

639 :デフォルトの名無しさん:2012/08/19(日) 23:01:35.58
まあ、ないわー
継承でバグフィックスしちゃってるPGは全てやめろ

640 :デフォルトの名無しさん:2012/08/19(日) 23:02:00.87
520がなにかに似てると思ったらstaticおじさんだった

641 :デフォルトの名無しさん:2012/08/19(日) 23:04:50.93
>>634
オブジェクト指向以外の言語では、ライブラリのバグは自作ライブラリに置き換えるしかなかった
システムのバグはシステム自体を改造して置き換えるしかなかった。
オブジェクト指向はバグのあるクラスだけ、メソッドだけを置き換えるということができ、大いに使える。
そこを否定したらもう原始時代の戻ったほうがいい。

642 :デフォルトの名無しさん:2012/08/19(日) 23:06:59.07
そりゃいつかは根本解決に踏み切るべきだけど、開発効率という尺度では継承バグフィックスは使える。
使わない奴はバカだ。PGやめるか人間やめた方がいい。

643 :デフォルトの名無しさん:2012/08/19(日) 23:09:45.96
>>641
すぐにそれはおかしいだろうという話になったけどな
GNUが活動を活発化し始めた頃でもあって

>>642
もっと合理的な方法使え、継承禁止!

644 :デフォルトの名無しさん:2012/08/19(日) 23:14:15.96
読めません系が何やってもいい方向には向かわないでしょう

645 :デフォルトの名無しさん:2012/08/19(日) 23:17:48.69
>>609
>デグレードをなんで行数でくらべるの? 

経験則と聞いた話。
もし違うなら、問題のあるメソッドだけを上書きしないで、クラス全部書き換えればいいじゃない?

>例えば標準クラスライブラリのクラスがバグていて1行修正すれば直りますと。

あなたの方法は標準のクラスライブラリのような場合に適用されるということですね。しかも、私の知ってる限りのライブラリは直接変更されてる方が多いです。

>問題の起きたプログラムだけ継承して修正したクラスを使うのと、標準クラスを修正するのはどっちが
>デグレードが少ないですか? っと言う感じでデグレードと行数を直接比べられる?

標準クラスを修正した方がデグレード少ないです。不具合があってもいいユーザは、そのまま前バージョン使うので影響も手間もなし。
継承修正とは継承したクラスにコピペプログラミングするわけですね。

一度、設計手法の勉強をしてオブジェクト指向がなぜ必要かを学ぶか、引退することをお勧めします。

646 :デフォルトの名無しさん:2012/08/19(日) 23:18:08.20
>>642
privateメンバとかvirtual付いてないメンバでやってみろよ

647 :デフォルトの名無しさん:2012/08/19(日) 23:21:25.76
>>646
確かにC++はできねぇな。だから再利用性の低い欠陥言語だと思うよ。
ちなみに俺は10年前はC++マスターで大学で俺以上にC++のできる奴は居なかった。
>>643
いやいや合理的でないのはおまえさんだよ。そしてPGをいますぐ引退した方がいい。

648 :デフォルトの名無しさん:2012/08/19(日) 23:24:07.62
>ちなみに俺は10年前はC++マスターで大学で俺以上にC++のできる奴は居なかった。

この文に何の意味が

649 :デフォルトの名無しさん:2012/08/19(日) 23:24:38.00
自慢したかったんだから生暖かく見守っとけよぉ

650 :デフォルトの名無しさん:2012/08/19(日) 23:24:46.07
>>647
そして10年後の今腐り果ててしまったんだすね、ご愁傷様w
マジその酷いリテラシなんとかしたほうがいいよ

651 :デフォルトの名無しさん:2012/08/19(日) 23:26:41.20
俺のプロファイルでは

昔はC++に精通してたけど新しいパラダイムについていけなくて切羽詰っている
そのためすぐPGを引退したほうがいいなどの発言をする

652 :デフォルトの名無しさん:2012/08/19(日) 23:26:49.62
ところで標準クラスライブラリのバグってなに?

653 :デフォルトの名無しさん:2012/08/19(日) 23:28:43.60
>>648
まあ確かに意味ないね。大抵は大学入試勉強で忙しくてプログラミング言語習得している奴少ないしなwwww
大学出た後に仕事でどれだけやったかの方が意味あるかもね。
C++は大分わすれちゃったけど、他の言語はかなりいけますよ。
おまえらよりはな。




654 :デフォルトの名無しさん:2012/08/19(日) 23:29:22.33
小学校で俺より三角乗りが上手い奴は居なかった

655 :uy:2012/08/19(日) 23:30:01.15
10ねんまえだいがくでおれいじょうにc++できるやつはいなかった
てことは30過ぎだよね?30過ぎてまだこんなこといってんの?あたまおかしいんじゃないの?しねば?

656 :デフォルトの名無しさん:2012/08/19(日) 23:30:55.34
>>653
すげぇぇぇぇぇぇぇぇぇぇぇぇ!!!

>>654
すげぇぇぇぇぇぇぇぇぇぇぇぇ!!!

657 :デフォルトの名無しさん:2012/08/19(日) 23:32:56.73
uy言いすぎだぞ

658 :デフォルトの名無しさん:2012/08/19(日) 23:34:28.11
>>655
そう頭おかしいんだよ。人を使う仕事をやれって言われても全部断ってるんで
底辺労働をわざとやっている奇人変人扱いだ。
でも死ぬべきなのはおまえだよ。

659 :デフォルトの名無しさん:2012/08/19(日) 23:35:47.00
死んでほしくても、時々はち合わせるんだよ社会に出ると、しかも年食ってるので割とお偉いさんw
爆発シロと念を込めながらピキピキしながらコーディングだwww

660 :デフォルトの名無しさん:2012/08/19(日) 23:37:13.25
>>655
とり

661 :デフォルトの名無しさん:2012/08/19(日) 23:41:29.02
人を使う仕事ってつまんねーんだよ。コンパイラーは思った通りにやってくれるけど人間は辞めちゃったり裏切るからな。
おまえらの場合は言語がうまく使えないから人を使うしか生きる術は無いんだろ?同情するよ。

662 :デフォルトの名無しさん:2012/08/19(日) 23:44:02.41
簡単だと思いたい(思わせたい)んじゃね、ピンハネ系は

663 :デフォルトの名無しさん:2012/08/19(日) 23:51:56.12
>>645

>だから、元のメソッドを変更しなきゃ、メソッド単位の変更だけで、コード単位の変更はできないでしょ。

>あるメソッドが、2つの結果をもたらします。しかし、1つは仕様変更でになりました。継承修正では2つとも変更が必要ですね?

>あるメソッドが、80行のコードからできてました。仕様変更により1行を変更しなければなりません。
>継承修正では残りの79行も新たに書くのでデグレードの可能性が高いですね?

>継承修正とは継承したクラスにコピペプログラミングするわけですね。

だからね、継承を凄く勘違いしているよね。

継承元のメソッドを呼ぶことができるから
メソッドを一から書く必要はないよ。

664 :520:2012/08/19(日) 23:53:38.56
つけるの忘れた。
663=520

665 :デフォルトの名無しさん:2012/08/19(日) 23:54:19.78
>>663

>継承元のメソッドを呼ぶことができるから
>メソッドを一から書く必要はないよ。

あのぉ、もちろんやらない方法なんだけどさ、かりに継承によってバグフィックスするとして
上書きしたいバグってるスーパーメソッドを呼んでどうすんだよw

666 :デフォルトの名無しさん:2012/08/19(日) 23:56:42.33
Aというクラスがあって
その中でBというクラスを使っています。

Bというクラスにバグがあったので
Cとくクラスを作りました。


でもAというクラスは
Bを使っています。

継承でバグを直せませんでした。

はい論破w

667 :デフォルトの名無しさん:2012/08/19(日) 23:58:15.53
だから、標準ライブラリのバグってなんなのさ

668 :デフォルトの名無しさん:2012/08/20(月) 00:00:41.32
>>666
ファクトリーでBを生成してりゃファクトリのBをCに置き換えるだけでバグフィックスできるけどな。
そういう根本的な設計思想も無いんだろうな。ご愁傷様。

669 :デフォルトの名無しさん:2012/08/20(月) 00:01:28.58
Aというクラスのfooメソッドにバグがありました。
Aを継承したBというクラスでfooメソッドをコピペしバグを修正しました。

fooメソッドにはもうひとつバグがありました。
Bというクラスにも当然バグが含まれています。
さらにBを継承したCを作ってバグを修正しました。

fooメソッドにはもうひとつバグがありました。
BにもCにも当然バグが含まれています。
さらにCを継承したDを作ってバグを修正しました。

Aというクラスのfooメソッドが修正されました。
しかし、コピペしたからBとCのバグは修正されません。

デスマ 〜 そして伝説へ

670 :デフォルトの名無しさん:2012/08/20(月) 00:01:45.72
>>668
継承でバグフィックスする設計思想など、こちらからお断りです

671 :デフォルトの名無しさん:2012/08/20(月) 00:02:36.68
>>668
すべてのクラスの生成を全部newから
ファクトリーにしろって話?w

ばーかw

672 :デフォルトの名無しさん:2012/08/20(月) 00:03:12.07
> 標準ライブラリのバグ
じゃなくて、うまく使いこなせませんでしたって言いたいんじゃないの?
バグの証明するほうが難しいのにね

673 :デフォルトの名無しさん:2012/08/20(月) 00:03:39.78
>>670
原始時代に(・∀・)カエレ!!よ。新しい物を受け入れない奴は化石だ。

674 :デフォルトの名無しさん:2012/08/20(月) 00:06:05.21
>>671
おまえは文系か?なんでΕが∀になる?ファクトリーによる反例を1つ上げただけだお。


675 :デフォルトの名無しさん:2012/08/20(月) 00:06:29.67
古いものだろ

676 :デフォルトの名無しさん:2012/08/20(月) 00:07:25.07
継承でバグ直すって、ようするに関数をコピペするってことだからね。

継承でできることは、スーパークラスのメソッドの
前後にコードを挟みこむことができるが、
メソッドの中にあるコードに、処理を挟むことは出来ない。

バグってのは、メソッドの中にあるコードが問題だから
これを直そうとすると、スーパークラスのメソッド全体を
コピペする(か同等のコードを自作する)しかない。

これがどんなに愚かなことかわかるだろう。

677 :デフォルトの名無しさん:2012/08/20(月) 00:08:46.19
>>674
自分で言っといてあほだなあ全てのクラスにバグがないと証明できない以上∀じゃないと意味ないだろ

678 :デフォルトの名無しさん:2012/08/20(月) 00:11:35.39
>>676
そりゃ全部一人で作って一人で統括して管理してりゃ根本から治すけど、
別人が作ったライブラリだったり、バイナリだったりした場合に
継承バグフィックスは恐ろしく役に立つ。javaに限るけどな。C++はキツイ。

679 :デフォルトの名無しさん:2012/08/20(月) 00:15:12.07
逆かと思っていたw
JavaやC#のような全てヒープになっていて
DIコンテナやサイドバイサイドのような本格的サポートがあるなら継承バグフィックスなんて論外だろうし

680 :デフォルトの名無しさん:2012/08/20(月) 00:15:41.71
>>677
全てのクラスにバグが無いと証明する必要があるなら全部ファクトリーにすりゃいいじゃん。
普通の脳ならそんな非現実的なバカな事は考えないので、
よく変更のある(バグが入りやすい)クラスだけファクトリーにするべき。


681 :デフォルトの名無しさん:2012/08/20(月) 00:15:49.83
それにCOMのバクとかいう話題も出てたし・・・

682 :デフォルトの名無しさん:2012/08/20(月) 00:16:11.27
>>678
お前、部下に直せって指示も出せないの?

683 :デフォルトの名無しさん:2012/08/20(月) 00:18:04.08
>>680
バグが入りやすいと想定してなかったクラスにバグがあったらどうすんだ
そこだけ全newを書き換えてくのか
一貫性ないんだなお前

684 :デフォルトの名無しさん:2012/08/20(月) 00:18:09.57
>>672
そうだよね、標準クラスライブラリにバグがあるって普通は言わないよね
おかしな仕様はたまにあるけど、調べていったら納得する事の方が多いしねぇ

なぜ標準クラスライブラリにバグがあるとか言う奴の話をさらりと受け止められるんだろう?

685 :デフォルトの名無しさん:2012/08/20(月) 00:18:40.29
>>680
よく変更があるのなら、バグが修正されるのも早い
お前の修正継承が、バグの元になるわけだが。

686 :デフォルトの名無しさん:2012/08/20(月) 00:19:43.34
ねえ、こいつ>>673どう思う?

687 :デフォルトの名無しさん:2012/08/20(月) 00:21:15.83
>>682
お前の部下は一生ついてくる忠犬かよ。それにサードパーティのライブラリやら、別会社から提供されるAPI群だったり色々だろ。
つーか継承バグフィックスもしたことないようなママゴトみたいな小プロジェクトしか
やった事無いやつらなのか?

688 :デフォルトの名無しさん:2012/08/20(月) 00:21:37.04
Aという【他人が作った】クラスがあって
その中でBという【他人が作った】クラスを使っています。

Bという【他人が作った】クラスにバグがあったので
Cというクラスを自分で作りました。


でもAという【他人が作った】クラスは
Bという【他人が作った】クラスを使っています。

継承でバグを直せませんでした。

そこにファクトリーを入れろって言ってるんですか?w

はい論破w


689 :デフォルトの名無しさん:2012/08/20(月) 00:22:36.22
>>687
> お前の部下は一生ついてくる忠犬かよ。



部下は一生ついてくる忠犬じゃないですけど、
部下に指示出しますよ?

あなたは部下に指示を出さないということですね?www

690 :デフォルトの名無しさん:2012/08/20(月) 00:23:40.11
>>684
未熟な時期は自分以外のところに問題があると思うから
ある程度はしかたないことだけど
それをわからせる人が回りにいないことのほうが不幸なのかも

691 :デフォルトの名無しさん:2012/08/20(月) 00:23:47.66
>>689
おまえは文系かよ。なんでΕが∀になるんだ?

692 :デフォルトの名無しさん:2012/08/20(月) 00:23:56.56
>>687
恐らくあなたという存在の話を聞いていたらプロジェクトを崩壊させかねない爆弾だからそういう事態になっているのかとw

693 :デフォルトの名無しさん:2012/08/20(月) 00:24:43.35
>>691
最初に質問を繰り返しますね。

お前、部下に直せって指示も出せないの?


694 :デフォルトの名無しさん:2012/08/20(月) 00:30:51.88
>>693
意味の無い質問に答える必要はないね。
部下に直せって言うレベルの小プロジェクトなんか問題外だ。
外部の会社の提供するAPI群のバグフィックスが主だろ?
例えばjavaのライブラリってバグあるから継承バグフィックスする事は多い。



695 :デフォルトの名無しさん:2012/08/20(月) 00:32:19.99
部下にバグを直せって言うレベルは
小プロジェクトなんですね!

笑うところですかここはwwww


696 :デフォルトの名無しさん:2012/08/20(月) 00:33:31.33
>>694
デスマーチプロジェクトは規模拡大で解決せよって事ですね、分ります!

697 :デフォルトの名無しさん:2012/08/20(月) 00:34:30.61
だめだ、意味がさっぱり分からん

元ソースがいじれる状態にて、
バグのあるクラスを修正して使うのと、
バグのあるメソッドを上書きしたクラスを使うのと、
ソースが増えて管理がし辛くなる以外にいったい何の差があるの?


698 :デフォルトの名無しさん:2012/08/20(月) 00:34:57.94
え? でもバグは継承で直せっていうんでしょ? ニヤニヤ

699 :デフォルトの名無しさん:2012/08/20(月) 00:38:21.94
>>696
なんでバグ直すための継承クラスが0.1%〜1%増えた程度で規模拡大になるんだアホか。
>>698
おまえは文系か?なんで∃が∀になるんだ。文系はPGやるなよバグの温床で迷惑だから。


700 :デフォルトの名無しさん:2012/08/20(月) 00:40:01.82
でもバグは継承で直せって部下にいうんでしょ? ニヤニヤ

701 :デフォルトの名無しさん:2012/08/20(月) 00:42:01.80
>>700
∃が∀になるような文系は文字通りお話にならんね。
で、あなたのご自慢のコミュ力はどの程度ですか?

702 :デフォルトの名無しさん:2012/08/20(月) 00:42:30.73
でもバグは継承で直せって部下にいうんでしょ? ∃゜∀゜E

703 :デフォルトの名無しさん:2012/08/20(月) 00:43:29.37
∃゜∀゜E ウヒョ ウヒョ

    ∃゜∀゜E  ウヒョヒョヒョ

∃゜∀゜E ウヒョ ウヒョ


704 :デフォルトの名無しさん:2012/08/20(月) 00:45:53.11
継承はスーパークラスのバグを直すためにあるのではありません

以上。

705 :デフォルトの名無しさん:2012/08/20(月) 00:47:16.71
>>704
おまえも∃が∀になるようなアホだな。
だめだなんでこのスレはバカ文系ばっかなんだ?

706 :デフォルトの名無しさん:2012/08/20(月) 00:49:55.13
こいつはもはや人格否定しかできなくなったようだな

707 :デフォルトの名無しさん:2012/08/20(月) 00:50:44.21
継承バグフィックスなんてのは ∃ ある一つ のテクニックに過ぎない。
それがなんで>>704のように∀ 全てに一般化されたものとして否定するんだ?
つまりおまえらはアホということですか?

708 :デフォルトの名無しさん:2012/08/20(月) 00:52:10.85
あほということですか?ではなくアホなんだ。これだけは確かなようだ。おまえらはアホだ。

709 :デフォルトの名無しさん:2012/08/20(月) 00:53:39.00
>>707
好きにしろ、そんでもって収拾つかなくなって詰んどけ

710 :デフォルトの名無しさん:2012/08/20(月) 00:56:48.22
とりあえず >>707の集合論の知識と論理的思考力が心配になった

711 :デフォルトの名無しさん:2012/08/20(月) 00:57:38.40
∀(a∈520の脳みそ)[a≡継承!継承!継承!継承!(゜∀゜)]

712 :デフォルトの名無しさん:2012/08/20(月) 01:01:41.71
>>710 集合論じゃない、通常の数学論理記号だ。おまえも文系か。だめだこりゃ。


713 :デフォルトの名無しさん:2012/08/20(月) 01:03:39.89
∃と∀もわからない文系脳ってのは全く話が通じないし議論も噛み合わないから困ったもんだね。
世の中の悪の根源は文系だと思い知らされるわ。

714 :デフォルトの名無しさん:2012/08/20(月) 01:08:08.87
713=韓国人

715 :デフォルトの名無しさん:2012/08/20(月) 01:10:58.99
∃と∀の区別がつかないのも文系脳だし
十分条件(xならばy)がいつのまにか必要十分条件(xならばyかつ yならばx)に脳内変換されるっていうのも文系脳。




716 :デフォルトの名無しさん:2012/08/20(月) 01:14:48.84
どうやら集合の概念が無くても全称が可能らしい 新しい数学体系だな

717 :デフォルトの名無しさん:2012/08/20(月) 01:16:15.03
まぁ集合論無しでも、∃∀できるだろうけど
この流れ精神分裂の人と話している気分になれるw

718 :デフォルトの名無しさん:2012/08/20(月) 01:18:26.54
ちょっと詳しくない人の為に開設
∃:存在する
∀:全て

と置換して読むと精神分裂の人の言葉が分るよw

719 :デフォルトの名無しさん:2012/08/20(月) 01:26:03.84
>>718
それは文字の成因であって、通常の解釈は
∃:ある一つについて〜がいえる
∀:全てについて〜がいえる
という使い方をするんだよ。中学で習うべきだな。
つうか記号を使ってないだけで中学の数学でも使っている当たり前の概念だけど。

720 :デフォルトの名無しさん:2012/08/20(月) 01:28:42.35
>中学で習うべきだな。
絶対いらねぇwww

「または」、「かつ」、無限を扱わないなら、これだけで十分だよ

721 :デフォルトの名無しさん:2012/08/20(月) 01:29:55.80
じゃあ話を戻そうか。

継承でバグ修正とか言ってる奴は馬鹿

722 :デフォルトの名無しさん:2012/08/20(月) 01:34:28.37
全てについて成り立つという仮定∀xのある一つを否定∃~xすればその仮定は成り立たないことが証明できる。
背理法は中学で習うだろ。いつのまにか∃と∀は使ってんだよ。

723 :デフォルトの名無しさん:2012/08/20(月) 01:36:26.98
>>721
唐突になんだよ。継承バグフィックスもやったことないゴミプログラマですと宣言してるようなもんじゃん。

724 :デフォルトの名無しさん:2012/08/20(月) 01:38:42.08
変な濃度(個数の一般化で各種無限個にも対応できる個数概念)を持つ集合で
それがないと問題発生する時に考えりゃいいんだよ
それまでは a かつ b かつ c ... で上等

725 :デフォルトの名無しさん:2012/08/20(月) 01:41:09.35
昔javaが1.4だったころswingにバグがありましてね。
ボタンがおかしくなるバグを継承バグフィックスしたもんですよ。
(文系脳に断っておくけどこれは一例だからな)

public class BugFixedButton extends JButton {
public BugFixedButton() {
setDefaultCapable(false);
}
}


726 :デフォルトの名無しさん:2012/08/20(月) 01:42:43.19
>>725
いくら俺は正しいんだって叫んでも認められる事は無いから、もうね・・・

727 :デフォルトの名無しさん:2012/08/20(月) 01:45:15.20
>>726
文系どもから認められなくて、村八分になった俺が泣いちゃうとでも思ってるのか?
この田舎物。

728 :デフォルトの名無しさん:2012/08/20(月) 01:45:59.54
これだけは言える
継承によるバグフィックスに対して、一つのテクニックと見なし普通にやってしまう
ソフトウェア設計者とは、絶対に一緒に仕事をしたくない

729 :デフォルトの名無しさん:2012/08/20(月) 01:51:48.67
ここにきて、くだらないお子様みたいな仲間意識を発揮してきたな。
おまえらは自尊心過剰で真理さえも捻じ曲げるのだ。

そんなバカ達に認められない事は光栄なことだw



730 :デフォルトの名無しさん:2012/08/20(月) 01:55:11.23
継承の反対は「汎化」というのが原則だからね バグのあるクラスが修正済みクラスを「汎化」したものというのは厳しいし、まあ黒魔術の類であるのは確かだね


731 :デフォルトの名無しさん:2012/08/20(月) 02:02:01.41
つうかおまえらみたいに脳が硬直している奴はもうソフト業界やめろ。
スーパーハード業界へ行けよ。そんな業界無いけどな。

732 :デフォルトの名無しさん:2012/08/20(月) 02:03:52.03
黒魔術にしては思いつきでやってみましたレベル、魔術と呼ぶにはちょっとカッコ悪い
魔術というなら、テンプレートメタプログラミングみたいに参加する者皆驚愕のレベルが欲しいトコロ

733 :デフォルトの名無しさん:2012/08/20(月) 02:08:29.48
オブジェクト指向を確立した人にあやまって欲しい。


734 :デフォルトの名無しさん:2012/08/20(月) 02:16:58.94
おまえらはオブジェクト指向の潜在能力の1%も使ってない事を恥じて欲しい。

735 :uY ◆gXFLM6waxs :2012/08/20(月) 02:21:24.55
時代はMix-inだよ
「クラスに対しての継承」なんてものはもう古いんだよ、俺ほとんどそれはやらないし、Mix-inの効率は理解した
継承関係のようなものが欲しいとしてもやはりそれはmoduleのMix-inで実現すべき
オブジェクトつまりインタンスに対してのMix-inがこれからは主流になる
これの方が拡張性も柔軟性もはるかに高い
出来ない言語は今すぐしぬべき

736 :デフォルトの名無しさん:2012/08/20(月) 02:23:17.91
>>734
バグフィクス指向なあなたは-70%くらい使えてそうですね。
なんで、ooやclassという言葉が使われてるか理解できないんだろうなぁ。

737 :デフォルトの名無しさん:2012/08/20(月) 02:28:53.82
脳が硬直しちゃった奴らはせいぜい浅い世界でうだうだやっててください。
自業自得で勝手にデスマーチやってるのが目に浮かびますわ。

738 :uY ◆Kbsfk1dG1s :2012/08/20(月) 02:36:58.88
バグを継承で直すってのは、
そのメソッドがメソッドの外部の変数に対して破壊的操作をしてない事が確定してないと無理だし
グローバル変数だけじゃなく、例えばクラスのメンバ変数に対しての破壊的操作もダメだし、
すべてを参照などの引数で渡してる事になる
そしてそのコーディング規則をプロジェクト全体で完全に守っていないといけない
間違ってメソッド外部の変数への、書き込みは行わない & 行ってしまったら検知する
くらいのシステムは作られていますか?
それが出来ているなら有り

739 :デフォルトの名無しさん:2012/08/20(月) 02:38:08.79
>>738
まあ、そこまで管理するなら、スーパークラス直したい

740 :デフォルトの名無しさん:2012/08/20(月) 02:42:36.62
ところで、トリつけてくれてるから>>735>>738は別人と考えるけどいい?

741 :デフォルトの名無しさん:2012/08/20(月) 02:47:07.12
新しくいいやり方を考え付いたなら、オブジェクト指向でなくて別の名前つけるし。なぜ、オブジェクト指向なんて既存の制約の中でやっているんだ?

742 :デフォルトの名無しさん:2012/08/20(月) 02:59:52.47
バグフィックス指向とか言っちゃっている人もいるけど
新しくもないし普通に誰もがやっている事だろ。
そんな事も知らない人たちの、ここは田舎者の寒村スレなのかもしれないが
まあそんなド田舎者を罵倒している俺も相当アホだが。


743 :uy:2012/08/20(月) 03:02:15.63
とうとうuy参戦か!
オラワクワクしてきたぞ

744 :デフォルトの名無しさん:2012/08/20(月) 06:53:41.63
>>679
C#はスタックにデータもてるよ
構造体変数はスタックに置かれる

745 :デフォルトの名無しさん:2012/08/20(月) 07:01:01.34
>>744
それは関係ないでしょう、ヒープと同様に扱えるならば。
障害になるのは実装方法ではなくインターフェイス
インターフェイスがヒープならそれはプログラムからみて何時でもヒープ。

具体的実装方法ばかり考えていると520のように抽象的な思考ができなくなってしまいますよ

746 :uy:2012/08/20(月) 07:11:14.77
そもそもOSスタックって概念はなんなん
動的伸縮できるならまだしも有限とかアホじゃないの

747 :デフォルトの名無しさん:2012/08/20(月) 07:30:13.88
スタックをハードウェア化すべきと主張したのはダイクストラ
構造化プログラミングに置いてサブルーチン概念を効率よく実装する方法として提案され、それ以降のCPUに採用された。
RISCが搭乗してスタックのような複雑な物を実装するよりも
スタックを実現可能な単純な命令セットを高速に実行した方がパフォーマンスが上げられると判明、
コンパイラにもそれができるだけの技術的・メモリー的余裕ができてからはx86系などのレガシー対応が必要無いCPUからは再び消失した。
それまでは、gotoだけでサブルーチンをプログラマが頑張って作っていた。

さて、gotoだけでオブジェクト指向などという概念も無い時代に繰り返し使うルーチンの実現はかなり高度なプログラミングだが、
無知から始めるなら、このスレッドには何人がサブルーチンを実現できるだけの技量があるか見ものではあるw
あとからならアホとでもバカとでも言えますがねぇ

748 :デフォルトの名無しさん:2012/08/20(月) 07:30:48.36
なんすかOSスタックって
このスレに関係ある話っすか

749 :デフォルトの名無しさん:2012/08/20(月) 07:50:09.37
gotoの戻り番地を呼び出し側で動的に変更すればいい

750 :デフォルトの名無しさん:2012/08/20(月) 07:57:51.87
on goto というbasicの命令を知っているなら、なんとなくでも気づけるかもしれない。
C言語でいうところのswitch文。使っていいのは、ここまで。
gotoの戻り値の変更は不能という条件でよろしく。

751 :デフォルトの名無しさん:2012/08/20(月) 09:32:25.68
>>742
じゃあ、何指向?

752 :デフォルトの名無しさん:2012/08/20(月) 09:38:20.39
アスペ思考

753 :デフォルトの名無しさん:2012/08/20(月) 09:51:46.74
BASICかぁ
VBScriptのClassが面白いなぁ

754 :デフォルトの名無しさん:2012/08/20(月) 10:06:06.13
アスペルガー思考か。なるほど、新しいな。

755 :デフォルトの名無しさん:2012/08/20(月) 10:31:46.96
アスペルガーというよりは精神分裂患者臭いんだけどw

756 :デフォルトの名無しさん:2012/08/20(月) 15:28:26.44
>>750
gotoのみで呼び出し側に戻る方法がわからん。

10 a=0:b=0
20 goto 1000
30 a=1:b=1
40 goto 1000
50 a=0:b=2
60 goto 1000
70 end

1000 if a=0 then print "A"
1010 if a=1 then print "B"
1010 if a=2 then print "C"

2000 if b=0 then 30
2010 if b=1 then 50
2010 if b=2 then 70

2000行目以降の戻り値をプログラムで持たないとダメってことかね?
basicだと、gosub-return命令あったからなあ

757 :デフォルトの名無しさん:2012/08/20(月) 17:58:09.96
>>756
まず、配列をスタック代わりに利用するアルゴリズムを考える
つぎに、配列に戻り先用のヒントになる数値を入れてgotoで処理先にとぶ
サブルーチンから、サブルーチンに飛ぶ場合は、必ずスタック用の配列に戻り先のヒントを入れる
リターンは、スタック用の配列からヒントを取り出し
on s(last) goto 100,200,300
で対応...ただ、面倒臭いねぇ...

758 :デフォルトの名無しさん:2012/08/20(月) 18:09:35.35
まさに配列というのは>>756の変数aであってヒントというのは変数bだから同じだねぇ

759 :デフォルトの名無しさん:2012/08/20(月) 18:10:53.45
おっと、途中で送信押しちまった。

ただサブルーチンからサブルーチンをコールする考慮が抜けていたので
結局、自前でスタック管理しないといけないわけだね。

760 :デフォルトの名無しさん:2012/08/20(月) 20:48:29.94
BASICのgoto縛りの話なのか?
アセンブラなら間接ジャンプ命令ぐらい使えるだろ

761 :デフォルトの名無しさん:2012/08/20(月) 21:59:42.99
>>742
そんなに必死に自己肯定せんでも大丈夫だよ
明らかにあかん方法だから

762 :デフォルトの名無しさん:2012/08/20(月) 23:09:02.41
COBOLのサブルーチン?っぽい命名であるPERFORMなんかを見ていると
当時の混迷ぶりは手に取るように分るね

763 :デフォルトの名無しさん:2012/08/20(月) 23:55:04.11
せっかく整地されたのに当時の混迷を持ち出す奴が520になる訳です
時代変って昔gotoを使ったプログラムが書けない奴は能力不足と言い放っていた人は居た訳ですが
現在も健在です、勘弁してほしい所ですが偉い人にも結構いますw

764 :デフォルトの名無しさん:2012/08/21(火) 00:40:22.16
gotoを絶対使わないといいながら、例外処理をgotoのように使っている人もいるけどね
多重ループからの抜け出し処理でgoto使う人は、まだいそうだな。


765 :デフォルトの名無しさん:2012/08/21(火) 00:42:03.77
コンパイラさんは、そんなことどどこ吹く風でgoto鬼のように生成してるけど
それとこれは別の話でいいよね?

766 :デフォルトの名無しさん:2012/08/21(火) 00:46:40.89
ソースの読みやすさの話をしているのに・・・


767 :デフォルトの名無しさん:2012/08/21(火) 00:51:25.24
>>766
わかってて書きました
ごめんなさい

768 :デフォルトの名無しさん:2012/08/21(火) 00:56:15.15
gotoのような機械的なことはコンパイラさんに任せて、人間は人間にわかりやすい作り方しましょうということでしょう。

769 :デフォルトの名無しさん:2012/08/21(火) 01:13:34.17
>>768
はい、その通りだと思います。

770 :デフォルトの名無しさん:2012/08/21(火) 01:16:52.34
でも周りの技術者?は、ここを通って次はここで…と、やっている。

771 :uy:2012/08/21(火) 02:01:48.27
多重ループからGOTOで抜け出すようなアルゴリズムって
今まで一度も書いたこと無いんだけど
多くの場合において実はそれって別の書き方あるんじゃね?って思う

772 :デフォルトの名無しさん:2012/08/21(火) 02:10:42.09
return

773 :デフォルトの名無しさん:2012/08/21(火) 02:11:24.69
おまえらこれも知らんとか、ニワカもいいとこだろ

for(i=0; i<=10; i++){
 ...
 for(j=0; j<=10; i++){
  ...
  for(k=0; k<=10; i++){
   ...
   if(iku == true)
    technobreak; // 何重ループでも余裕
  }
 }
}

774 :uy:2012/08/21(火) 02:20:25.95
>>772
あー分かった
俺は再帰でかいてるのかもしれない

775 :デフォルトの名無しさん:2012/08/21(火) 04:08:43.04
添え字集合と処理の分離?
C#などでは割とやりやすい

void MyLoopProcess()
{
 foreach(LoopIndex index in LoopIndex.Enumerate())
 {
  if(...) break;
 }
}
struct LoopIndex
{
 public int i,j,...;
 public static IEnumerable<LoopIndex> Enumerate()
 {
  for(int i = 0; i < I ; ++j)
   for(int j = 0; j < J ; ++j)
    ...
     yield return new LoopIndex{ i = i , j = j ... }
 }
}

776 :デフォルトの名無しさん:2012/08/21(火) 07:53:05.63
>>761
何が明らかにあかんだよ。おまえは明らかにアカンじゃないか。

>>725みたいにバグを修正して先に進めばいいところを
SUNやオラクルに問い合わせて返事が来ないから仕事を進められませんとか
他人が悪いからできないと自己肯定しているような愚図であるお前はさっさとこの業界から去れ。

777 :デフォルトの名無しさん:2012/08/21(火) 07:57:02.64
頭を硬直させて他人の足を引っ張ることしか能がないバカがあまりに多いから日本のITはダメなんだな。
そう思えてきたな。

778 :デフォルトの名無しさん:2012/08/21(火) 08:19:33.37
こうして520のプロジェクトは泥沼化していくのでありました、関係者の皆様ご愁傷様・・・

779 :uY ◆gXFLM6waxs :2012/08/21(火) 10:13:30.00
新しい手法は、間違っていたら怖いから試すんだったら趣味でやるべきものだけど
仕事で採用するような余裕があるんなら
それはそれでいいだろ
部外者のお前らが何かいう事じゃない
ありきたりな設計とプログラミングしか考えられない奴はただの社畜

780 :デフォルトの名無しさん:2012/08/21(火) 10:19:26.06
>>777
2chで日本のITを俯瞰出来るとは、2chもメジャーになったな。

781 :デフォルトの名無しさん:2012/08/21(火) 10:38:04.09
新しい手法ではなくて放棄された手法である件(笑)

782 :aa:2012/08/21(火) 11:17:10.19
昔のBASIC以外では、絶対goto文を使わないでと決め付けて今まできたのだが
3重以上の多重ループの場合、最内ループ内の処理で、内側2つ分のループ処理をキャンセルしたい場合
1つはbreakで脱せるが、2つ目はbreakしたことをフラグ等で管理しないといけない、ってケースで悩んだことあるな。
int cnt = 0;
for(int a=0;a<100;a++) {
 boolean flag = false;
 for(int b=0;b<100&&!flag;b++) {
  for(int c=0;c<100&&!flag;c++) {
   if ( isBingo(a,b,c) ) {
    cnt++;
    flag = true;
    break;
   }
  }
 }
}
かならず最初のループに戻る場合なら、これでいいが、1つ外側のループに戻る場合もあるとか、さらにループ階層が多重になった場合、管理できなくならない?
その点、GOTOを使うとすっきりするとは思うけど・・・
int cnt = 0;
for(int a=0;a<100;a++) {
LABEL_JUMP:
 for(int b=0;b<100;b++) {
  for(int c=0;c<100;c++) {
   if ( isBingo(a,b,c) ) {
    cnt++;
    goto LABEL_JUMP;
   }
  }
 }
}


783 :デフォルトの名無しさん:2012/08/21(火) 11:48:00.75
>>782
すっきりしないよ、もう多重ループが深すぎるという段階で
ループネスト数を減らす処置をしないと、余程ループの中身が単純でも無い限りは混沌としてしまう。

784 :デフォルトの名無しさん:2012/08/21(火) 12:45:11.84
>782
こういう制御フローを逆に戻るようなgoto使う奴がいるから
禁止にされるんだろうな

785 :デフォルトの名無しさん:2012/08/21(火) 12:50:51.66
int cnt = 0;
for(int a=0;a<100;a++) {
 for(int b=0;b<100;b++) {
   for(int c=0;c<100;c++) {
     if ( isBingo(a,b,c) ) {
       cnt++;
       goto LABEL_JUMP;
     }
   }
 }
LABEL_JUMP:
}

これなら許せる


786 :デフォルトの名無しさん:2012/08/21(火) 12:52:32.89
別に致命的とは思わないけどな、ただ美しくないし見通しも良好とはいえない

787 :デフォルトの名無しさん:2012/08/21(火) 12:59:39.95
上に巻き戻るgotoとかループの内側に飛び込むgotoとか
コンパイルエラーにすれば良いのにな


788 :デフォルトの名無しさん:2012/08/21(火) 13:01:39.20
>>787
そこまでやるなら素直に、continue / break に拡張施すのが正解だろ

789 :デフォルトの名無しさん:2012/08/21(火) 13:01:47.02
まず、782は上の処理と下の処理は同じじゃないだろ
下の奴は無限ループ発生しそうな典型的なコードに見える


790 :デフォルトの名無しさん:2012/08/21(火) 13:08:58.60
ループ変数の列挙と処理の分離して抽象的に思考するようにすれば、すっきりどうすればいいか分るよ
実行手順を意識し過ぎているんだ
int cnt = 0;
for(int b=0;b<100;b++) {
 for(int c=0;c<100;c++) {
  for(int a=0;a<100;a++) {
   if ( isBingo(a,b,c) ) {
    cnt++;
    break;
   }
  }
 }
}


791 :デフォルトの名無しさん:2012/08/21(火) 13:14:40.64
とかいいながら、ミスってら、脊髄反射せずにもうちょっと考えるべきだったか >>790

792 :デフォルトの名無しさん:2012/08/21(火) 13:17:25.27
bool count_up(int& a, int& b, int& c) {
if (c == 100) {c = 0; b += 1; }
if (b == 100 {b = 0; a += 1;}
return a == 100;
}
的な関数を作って

while (count_up(a, b, c)) {
if (isBingo(a, b, c)) { cnt++; }
}

とかした方がいいんじゃないの

793 :デフォルトの名無しさん:2012/08/21(火) 13:31:03.62
それを言うならこうだろ。
何で素直に書けない奴多いんだ?

int cnt = 0;
for(int a=0;a<100;a++) {
 if(0 == check_value(a))
   cnt++;
}

int check_value(int a){
 for(int b=0;b<100;b++) {
   for(int c=0;c<100;c++) {
     if ( isBingo(a,b,c) ) {
       return 0;
     }
   }
 }
return -1;
}


794 :デフォルトの名無しさん:2012/08/21(火) 13:33:10.50
>>792>>775 スタイルの場当たり版だな

795 :デフォルトの名無しさん:2012/08/21(火) 13:43:11.63
ビンゴって普通5x5=25個の数字があるんだが、お前ら25重ループでも書くつもりなのか?

796 :デフォルトの名無しさん:2012/08/21(火) 14:06:32.54
>>793
ループ変数がこれだけで済んでるならそれで正解だね
話の流れ的にもっと多段になってくると for を回している部分がバラバラになって
メインテナンス性が落ちてくるので考える必要があるかも知れない。

797 :デフォルトの名無しさん:2012/08/21(火) 14:48:11.08
>>796
正解な訳あるかアホ
意味的に全くの誤り
小手先のテクニック

798 :uY:2012/08/21(火) 18:51:21.30
ほんとにruby触ってない奴っていうか
イテレータ使いこなせてない奴って
ソースコードですぐに分かる
for文() インクリメント() 使ってる時点でダメなんだよ

799 :デフォルトの名無しさん:2012/08/21(火) 20:19:13.31
ruby使ってなくても、C++、javaでもIteratorは普通に使うけどね
わざわざ使う必要ないケースもあるわけだ

800 :デフォルトの名無しさん:2012/08/21(火) 20:21:36.35
  ___◎_r‐ロユ
 └─‐┐ナ┐┌┘ _  ヘ____
     /./┌┘└┬┘└┼────┘ロコ┌i
    </   ̄L.l ̄ ̄L.lL.!         ┌┘|
                         _,,:-ー''" ̄ ̄ ̄ `ヽ、
                       ,r'"           `ヽ.
                   __,,::r'7" ::.              ヽ_
               _____ ゙l  |  :: _ノ      ヘ_     ゙) 7
                /`ー---‐^ヽヽ`l :: __       ____   /ノ )
             l:::      lヾミ,l _;;r';; ;;ヽ      ん';; ヽ ヒ-彡|
        _  ,--、l::::.      ノ〉"l,_l "|!!;; O;;!〉;.:)  f'<!;O; ;;;!|= ゙レr-{
    ,--、_ノ:: `ー'::   、ミー---‐,,l| ヽ"::::''`ー-‐'´.::;i,  i `''-‐'    r';' }
   ,/   :::         i ̄ ̄  | ゙N l ::.  ....:;イ;:'  l 、     ,l,フ ノ|
  /:::::::.        l:::    l:::::::   l. |_i"ヽ;:...:::/ ゙'''=-='''´`ヽ.  /i l"
 l:::::::::::.   l:::    !::    |:::::::   l .| ::゙l ::´ヽ---‐-‐-‐---/` ,il"..|'". .
 |:::::::::l::::  l:::    |::    l:::::     l .{  ::| 、 ::\二二二二/, il   |
 |::::::::::l:::.   }:::   l:::::,r-----    l/ト、 :|. ゙l;:  ::=====: ,i' ,l' ノト、
 ヽ::::::::l::::   ト:;;;;;;;/-/__...........  / .| \ゝ、゙l;:      ,,/;;,ノ;r'" :| \
  \::::`ー‐'  / l__l;;;;;;;;;;;/'  |    `''-、`'ー--─'";;-'''"   ,|   \

801 :520:2012/08/21(火) 20:39:18.31
継承によるコード再利用を改修には使えないと言っている人の意味が分かったよ。
継承によるコード再利用は、元のコードがOOで設計させていないと適用しにくい。
そもそもOOが出来ない人なんだね。

>だから、元のメソッドを変更しなきゃ、メソッド単位の変更だけで、コード単位の変更はできないでしょ。

>あるメソッドが、2つの結果をもたらします。しかし、1つは仕様変更でになりました。継承修正では2つとも変更が必要ですね?

>あるメソッドが、80行のコードからできてました。仕様変更により1行を変更しなければなりません。
>継承修正では残りの79行も新たに書くのでデグレードの可能性が高いですね?

>継承修正とは継承したクラスにコピペプログラミングするわけですね。

だからこんな、わけのわからに事ばかり書くんだ。

>>666
オブジェクトはクラスからしか生成出来ないと思っているよね。

標準ライブラリは出来て、自分の作ったクラスには適用出来ないのはなぜ?
標準ライブラリはOOで正しく設計いるけど、自分の作ったクラスはOOの設計がなっていないと言う事。

結論として
継承による改修は出来ない (前提条件:OOの設計が出来ていないソースコード)
継承による改修は出来る   (前提条件:OOの設計が出来ているソースコード)

ということで、前提条件付きで両方正しいが結論だね。

802 :デフォルトの名無しさん:2012/08/21(火) 20:44:00.26
>だから、元のメソッドを変更しなきゃ、メソッド単位の変更だけで、コード単位の変更はできないでしょ。
>継承修正とは継承したクラスにコピペプログラミングするわけですね。
極端な馬鹿を例にだすなw

803 :デフォルトの名無しさん:2012/08/21(火) 20:45:17.86
                  )
             (
         ,,        )      )
         ゙ミ;;;;;,_           (
          ミ;;;;;;;;、;:..,,.,,,,,
          i;i;i;i; '',',;^′..ヽ
          ゙ゞy、、;:..、)  }
           .¨.、,_,,、_,,r_,ノ′
         /;:;":;.:;";i; '',',;;;_~;;;′.ヽ
        ゙{y、、;:...:,:.:.、;:..:,:.:. ._  、}
        ".¨ー=v ''‐ .:v、,,、_,r_,ノ′
       /;i;i; '',',;;;_~⌒¨;;;;;;;;ヾ.ミ゙´゙^′..ヽ
       ゙{y、、;:...:,:.:.、;:..:,:.:. ._  .、)  、}
       ".¨ー=v ''‐ .:v、冫_._ .、,_,,、_,,r_,ノ′
      /i;i; '',',;;;_~υ⌒¨;;;;;;;;ヾ.ミ゙´゙^′.ソ.ヽ
      ゙{y、、;:..ゞ.:,:.:.、;:.ミ.:,:.:. ._υ゚o,,'.、)  、}
      ヾ,,..;::;;;::,;,::;):;:;:; .:v、冫_._ .、,_,,、_,,r_,ノ′

804 :デフォルトの名無しさん:2012/08/21(火) 20:56:02.28
>>801
標準ライブラリ手出しするような非常事態になったら、第三者はモンキーパッチで一時的に逃げるしかないから仕方なくそうしてるだけで
ベストプラクティスだからやってんじゃないんだよ。ソースに手出しできるライブラリのメンテナならソースを直接いじる。
っていうかやってることは処理を上書きしてるだけだから、OOもクソもないそれこそモンキーな手法。

百歩譲って、オプソ言語の標準ライブラリの開発元が、元のソースのバグを完全放置して
継承パッチだけでしのいでるプロジェクト例を出してみたら、標準ライブラリの例も少しは受け入れられるんじゃね。
お前のプロジェクト以外で

805 :デフォルトの名無しさん:2012/08/21(火) 20:57:18.14
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < 馬鹿みたい
   \|   \_/ /  \_____
      \____/


806 :デフォルトの名無しさん:2012/08/21(火) 21:15:59.07
書き方なんてどうにでもなるんだよ
動かすってことを前提に考えないと

807 :デフォルトの名無しさん:2012/08/21(火) 21:16:53.89
      /|\
     /  |  \
        |
        |
        |
        |
     ┏┓              ┏━┓          ┏┓
      ┃┗━┓    ┏┓  ┗┓┃        ┏┛┗━┓      ┏┓
      ┃┏━┛  ┏┛┗━┓┃┃        ┗┓┏━┛    ┏┛┗━━━┓
      ┃┃      ┗┓┏┓┃┗┛        ┏┛┃┏━┓  ┗┓┏━━┓┃
  ┏━┛┗━┓  ┏┛┃┃┃  ┏━━┓  ┃┏┛┗━┛  ┏┛┃┏━┛┃    ┏━━┓
  ┃┏┓┏━┛  ┗━┛┃┃  ┗━┓┃  ┃┃┏┓      ┗┓┃┃┏┓┗┓  ┃┏┓┃
  ┃┗┛┃          ┏┛┃    ┏┛┃  ┃┃┃┗━┓    ┃┃┃┗┛┏┛  ┃┗┛┃
  ┗━━┛          ┗━┛    ┗━┛  ┗┛┗━━┛    ┗┛┗━━┛    ┗━━┛

808 :デフォルトの名無しさん:2012/08/21(火) 21:21:21.95
動かす気のない奴がやってるのか、最近は?

809 :デフォルトの名無しさん:2012/08/21(火) 21:25:03.42
動かないものを作ると評価が下がりますが
動くものを作っても、動くのは前提条件なので、それだけでは評価はあがりも下がりもしません

810 :デフォルトの名無しさん:2012/08/21(火) 21:29:32.54
>>801
俺は馬鹿なんで良く分からないが...
不用意な継承は望まない結果を生む原因になるので、想定された継承以外での継承はしない方が良いと思うのだが

811 :デフォルトの名無しさん:2012/08/21(火) 21:35:53.20
動いてるけど、思ったっとおりに動かないから
ダメ出しされる理由探しに勤しんでるのかな?

812 :デフォルトの名無しさん:2012/08/21(火) 21:42:56.18
ooで設計してるなら、設計に出てこないクラス増やすなよ。実装バグフィクスのために。

813 :デフォルトの名無しさん:2012/08/21(火) 21:46:41.08
クラなよ。実で設計してるなら、設計に出てこないクラス増やすなよ。実装バグフィクスのために。ooで設計してるなら、設計に出てこないクラス増やすなよ。実装バグフィクスのために。」
ooで設計してるなら、設計に出てこないクラス増やすなよ。実装バグフィクスのために。
ooで設計してるなら、設計に出てこないクラス増やすなよ。実装バグフィクスのために。
vvooで設計してるなら、設計に出てこないクラス増やすなよ。実装バグフィクスのために。

ooで設計してるなら、設計に出てこないクラス増やすなよ。実装バグフィクスのために。v
ooで設計してるなら、設計に出てこないクラス増やすなよ。実装バグフィクスのために。

ooで設計してるなら、設計に出てこないクラス増やすなよ。実装バグフィクスのために。
ooで設計してるなら、設計に出てこないクラス増やすなよ。実装バグフィクスのために。

814 :デフォルトの名無しさん:2012/08/21(火) 21:55:00.62
同じインターフェースを継承して修正部分以外は元クラスに委譲

これはOK?

815 :デフォルトの名無しさん:2012/08/21(火) 22:09:48.13
そんなもん設計論とかで答えが出るような物だと思うか?

オブジェクトのインターフェースってのはプログラム同士の契約だろ
相手先のオブジェクトが何を求めていて、何をサポートすれば良いかなんて
一般論で分かるはずが無い。
オブジェクトに接続する側はインターフェースの振る舞いは想定するが
実装がどうなっているかなんてことには無関係だ。
正しく動くオブジェクトを作るには、自分だ提供するオブジェクトが
相手が期待する振る舞いを出来るようにするしか無い
元のオブジェクトをラップしてインターフェースを委譲して
大丈夫かどうかは自分たちで確認する以外に無いし
それを設計論で答えを出そうとすることがバグってる。

816 :デフォルトの名無しさん:2012/08/21(火) 22:12:32.95
そんなもん設計論とかで答えが出るような物だと思うか?

オブジェクトのインターフェースってのはプログラム同士の契約だろ
相手先のオブジェクトが何を求めていて、何をサポートすれば良いかなんて
一般論で分かるはずが無い。
オブジェクトに接続する側はインターフェースの振る舞いは想定するが
実装がどうなっているかなんてことには無関係だ。
正しく動くオブジェクトを作るには、自分だ提供するオブジェクトが
相手が期待する振る舞いを出来るようにするしか無い
元のオブジェクトをラップしてインターフェースを委譲して
大丈夫かどうかは自分たちで確認する以外に無いし
それを設計論で答えを出そうとすることがバグってる。


817 :デフォルトの名無しさん:2012/08/21(火) 22:12:48.41
そんなもん設計論とかで答えが出るような物だと思うか?

オブジェクトのインターフェースってのはプログラム同士の契約だろ
相手先のオブジェクトが何を求めていて、何をサポートすれば良いかなんて
一般論で分かるはずが無い。
オブジェクトに接続する側はインターフェースの振る舞いは想定するが
実装がどうなっているかなんてことには無関係だ。
正しく動くオブジェクトを作るには、自分だ提供するオブジェクトが
相手が期待する振る舞いを出来るようにするしか無い
元のオブジェクトをラップしてインターフェースを委譲して
大丈夫かどうかは自分たちで確認する以外に無いし
それを設計論で答えを出そうとすることがバグってる。


818 :デフォルトの名無しさん:2012/08/21(火) 22:13:00.08
そんなもん設計論とかで答えが出るような物だと思うか?

オブジェクトのインターフェースってのはプログラム同士の契約だろ
相手先のオブジェクトが何を求めていて、何をサポートすれば良いかなんて
一般論で分かるはずが無い。
オブジェクトに接続する側はインターフェースの振る舞いは想定するが
実装がどうなっているかなんてことには無関係だ。
正しく動くオブジェクトを作るには、自分だ提供するオブジェクトが
相手が期待する振る舞いを出来るようにするしか無い
元のオブジェクトをラップしてインターフェースを委譲して
大丈夫かどうかは自分たちで確認する以外に無いし
それを設計論で答えを出そうとすることがバグってる。


819 :デフォルトの名無しさん:2012/08/21(火) 22:16:43.09
なんちゃってSEでも目指してる奴がいるとか?

820 :デフォルトの名無しさん:2012/08/21(火) 22:27:59.39
ぶはwwwwwwwwwww

821 :uY:2012/08/21(火) 22:28:10.57
class A
  def func n
    p "abc" + n
  end
end

a = A.new
p a.func(3) rescue p $!

class B < A
  def func n
    p "abc" + n.to_s
  end
end

b = B.new

b.func(3)



なくはない


822 :デフォルトの名無しさん:2012/08/21(火) 22:30:25.95
なんで発狂してるやつがいるんだ

823 :デフォルトの名無しさん:2012/08/21(火) 22:32:21.12
まともな感覚な人ほど壊れやすいってのもわかってねえのか

824 :デフォルトの名無しさん:2012/08/21(火) 22:32:52.03
rubyはendを何とかしろよ

825 :uY:2012/08/21(火) 22:33:14.97
いや継承でバグ修正でしょ

良いと思うよ

ほとんど利用価値のない継承の
唯一の使いどころかもしれない


826 :uY:2012/08/21(火) 22:35:15.51
>>824
なんとかしてやりましたけど?

A = Class.new {
  define_method :func ,&->n{
    p "abc" + n
  }
}

a = A.new
p a.func(3) rescue p $!

B = Class.new(A) {
  define_method :func ,&->n{
    p "abc" + n.to_s
  }
}

b = B.new

b.func(3)


827 :デフォルトの名無しさん:2012/08/21(火) 22:35:38.01
トリつけないと、偽馬鹿yuと間違えられるぞ

828 :uY:2012/08/21(火) 22:36:50.03
どうでもいい

829 :デフォルトの名無しさん:2012/08/21(火) 22:39:06.30
lambda限定じゃなくて全廃しろよ継承で

830 :uY:2012/08/21(火) 22:44:30.28
でもバグって元々そんなに入れないよね

バグを特定すれば
もしかしたらほんの数文字書き換えるだけで済むものを
再実装やっちゃうのか
バグ特定の方がもしかしたら早くねそれ

継承そのものがいらない概念

831 :デフォルトの名無しさん:2012/08/21(火) 22:46:14.94
おっぱい見せての人の事じゃあないんじゃ無い?
いつも二人か三人組で来る気持ちの悪い人達の事だよ、Iの言う疑心暗鬼な人達は
いつもみかん〜とかメンヘラなんとか〜言ってる奴ら
レイプ魔みたいな人達
レス見るとわかるよ
超気持ち悪い

832 :デフォルトの名無しさん:2012/08/21(火) 22:49:57.95
そりゃソースが触れるんなら直接なおすだろ

833 :デフォルトの名無しさん:2012/08/21(火) 23:04:03.21
>>828
じゃあ、名無しで書き込めカス

834 :デフォルトの名無しさん:2012/08/22(水) 00:07:17.35
でっていう

835 :デフォルトの名無しさん:2012/08/22(水) 00:12:31.78
うわっ、精神分裂しとる、前から片鱗見えてたけどマジモン?

836 :デフォルトの名無しさん:2012/08/22(水) 00:20:53.50
入れ子ループをいてれーたで中傷化してシリアライズすればいい(キリ

837 :520:2012/08/22(水) 04:11:56.63
>>804,815,830,832
・直接ソースコードの修正:手続き(手順)に対する修正
・継承による修正:機能に対する修正

手続き(手順)に対する修正と機能に対する修正を
同じレベルと考えるか、別次元と考えるか?、だね。

>>810
>俺は馬鹿なんで良く分からないが...
本当に馬鹿だと思っているなら普通は書かないよね。

>想定された継承以外での継承はしない方が良いと思うのだが
想定は出来ないでしょう。どのようなケースでも対応出来るように設計すると思うけど。


838 :デフォルトの名無しさん:2012/08/22(水) 05:03:06.70
継承修正は一つの次元の修正しかできないのか。使えないな。

839 :デフォルトの名無しさん:2012/08/22(水) 05:14:32.24


840 :デフォルトの名無しさん:2012/08/22(水) 07:44:55.82
>>1 というよりスレタイ
短さを求めるなら、関数型でしょう。


841 :uy:2012/08/22(水) 08:14:58.04
なあ
もしかして関数型スレ足りないんじゃないの?
隔離所が足りないから出て来ちゃってる

842 :デフォルトの名無しさん:2012/08/22(水) 08:19:40.56
>>841
きえろ

843 :uy:2012/08/22(水) 08:28:18.33
継承(笑)

844 :uy:2012/08/22(水) 08:36:50.87
520的な間違った継承の使い方だけでなく
真面目に継承使ってるやつって何考えて生きてるのかわからない

それ、どういう効果ねらってんの?

効率?
効率でるかそれ?



845 :デフォルトの名無しさん:2012/08/22(水) 08:37:14.00
>>843
あ、でもやっぱつけてていいや
そっちのほうが名前欄で一括ローカルあぼーんできてよかった

846 :デフォルトの名無しさん:2012/08/22(水) 09:05:34.27
>真面目に継承使ってるやつって何考えて生きてるのかわからない

真面目に「日本語」使ってるやつって何考えて生きてるのかわからない
と同意に聞こえるのは俺だけか?

なんでもそうだが、一般的に「よし」とされている実装方法を守ることは
設計方針がある程度予測できるため、全てのコードを追う必要もなく
引継ぎも苦労しないものなんだよ。

数人以下の小規模プロジェクトでソースの門外不出が約束されている、やっつけ仕事ならアリかもしれんが。


847 :デフォルトの名無しさん:2012/08/22(水) 09:07:17.13
たとえどんなに小規模であろうと
俺が部下なら上司には正しい日本語を使ってもらいたし
俺が上司なら、部下には正しい日本語を教えたいと思うが、
そうではないと考える人もいるんだね。


848 :uy:2012/08/22(水) 09:29:27.21
>>846
え?一般的によしとされてるか?
なんでもかんでも継承って一昔前の話じゃないの?
mix-inあったら普通そっち使うよね
継承されるとコンストラクタが「無駄に」複雑になるだけ

コンストラクタにかくべき処理なんてただの初期化
つまりただの代入文がまとまってればいいだけなんだよ
mixinのほうがはるかに単純

849 :デフォルトの名無しさん:2012/08/22(水) 09:50:57.96
>>848
何の言語を使っているか曖昧な状態で、その指摘は何の意味もなさないよ。
まあおそらくruby信仰者なのだろうが。
自分の望む設計ポリシーを持った言語で開発できないケースだってあるという点、注意してね。
「だからjavaはダメなんだよ、俺このプロジェクト絶対やらね」って
まあ、稀にいるけどね、こういう迷惑な人。


850 :uy:2012/08/22(水) 10:06:11.95
またいつの間にか社畜PGの話に推移してるんだけど

851 :デフォルトの名無しさん:2012/08/22(水) 10:12:01.02
>>850
それで関数型だと自然と短く書けるという話はどうなった?

852 :デフォルトの名無しさん:2012/08/22(水) 11:03:09.10
Rubyのmix-inのイメージ
http://www.nicovideo.jp/watch/sm2840707

853 :デフォルトの名無しさん:2012/08/22(水) 11:24:58.76
moduleのない言語はプログラミング言語ですらない
mix-inのない言語はプログラミング言語ですらない

854 :デフォルトの名無しさん:2012/08/22(水) 11:47:55.25
プログラム言語において、便利に使えるものは、大抵の場合、細心の注意を払って利用しないようにするべきものだ

855 :デフォルトの名無しさん:2012/08/22(水) 11:51:27.32
使っていてヤバイと思ったら止めればいいんだが520のようにセンスがないと嵌まっていってしまうのです
基本的にそういう人は抽象的に思考できない人、全体像が見渡せずに今書いているコードにだけ集中し過ぎてしまっているケースが多いね

856 :デフォルトの名無しさん:2012/08/22(水) 12:51:57.17
>>853
moduleなんてあっても使わない。

857 :デフォルトの名無しさん:2012/08/22(水) 13:47:38.46
class module,function module.
ない言語なんてあるのかよ。moduleの意味がわかってないだけか?

858 :デフォルトの名無しさん:2012/08/22(水) 14:00:24.77
>>857
class も function もない言語なら普通にあるだろ。BASICなんかの中には。

859 :デフォルトの名無しさん:2012/08/22(水) 14:11:18.11
>>858
そこらへんは教育用言語だな。
procedure moduleとかあるのはありそうだけど。

860 :uY:2012/08/22(水) 14:17:33.03
moduleいらないとか200年前で知識とまってる奴がいるな

861 :デフォルトの名無しさん:2012/08/22(水) 14:19:52.85
>>860
使うのかい?

862 :デフォルトの名無しさん:2012/08/22(水) 14:25:17.06
rubyの目玉機能だからな
ruby大好き人間は、他を腐すときにmoduleを引き合いに出すものだよ

863 :デフォルトの名無しさん:2012/08/22(水) 14:33:42.06
>>852
ワロタ

864 :uY:2012/08/22(水) 14:42:29.18
継承は捨てられて
ミックスインが主流になってくると思うよ
少なくともプログラムの設計段階で、
いままでクラスの継承関係でツリーを作ってたんだろうけどそれはミックスインで置き換わる

クラス継承を使う場面も一応存在する
クラスでライブラリのクラスの拡張するときは
親クラスのコンストラクタの呼び出しが必要になってくるから継承は必要になる
つうかそれもmix-inでやるようにライブラリが作られていないのが悪いんだけど
いまのところそれ以外の場所での継承は無意味だと思ってる

865 :デフォルトの名無しさん:2012/08/22(水) 14:45:29.54
どんな設計してんだ。

866 :uY:2012/08/22(水) 14:53:04.42
おしえない

867 :デフォルトの名無しさん:2012/08/22(水) 14:56:32.64
やっぱRubyは大した言語じゃないのか

868 :uY:2012/08/22(水) 15:00:41.74
Python使いであればその言葉は許される
それですらなければ負け惜しみにもならないよ

869 :デフォルトの名無しさん:2012/08/22(水) 15:01:22.57
mixinは多重継承に制限つけた機能でしょ?
いまさらどうこう、っていうより、ちゃんと設計できる人ならC++でも
同じ考え方の元で、やっていた話。これから、とか意味わからん。

870 :uY:2012/08/22(水) 15:06:42.68
継承っていう概念はちょっと機能のまとめ方を誤ったんだと思うよ
スーパークラスのメソッドはデフォルトでは呼び出せなくていい
呼び出さずにオーバーライドだけする事の方が多いんだから

871 :デフォルトの名無しさん:2012/08/22(水) 15:10:57.15
設計したことないんだな。

872 :uY:2012/08/22(水) 15:12:22.63
rubyのmix-inを学べばすぐに分かる
プログラムの設計に継承を使うような風習は終わっていくから、覚えておくように

873 :デフォルトの名無しさん:2012/08/22(水) 15:19:30.08
プログラミングは実装ですることだろ。
やっぱり設計したことないんだな。

874 :uY:2012/08/22(水) 15:21:02.31
設計を継承(笑)でやってる時点で設計したことねーようなもんだろうwえらそうにwwwっうぇwwww

875 :uY:2012/08/22(水) 15:26:10.55
世界に物凄い数の継承(笑)で設計されてしまったプログラムが存在し
やっと間違いに気づき始める奴らが出てきた

俺もC++使ってたころ、色々とクラスの機能は使ったけど継承だけは使わなかったんだよね
プログラミング初めて最初の瞬間から既に継承って概念に違和感持ってた
その違和感はmix-inに触れてよく分かった

継承は複数の役割を1個の機能で実現しようとしちゃってるんだよ
通りで使いたくならないわけだったわ

876 :uY:2012/08/22(水) 15:28:23.80
継承そのものがプログラミングの概念の中にあるバグのようなものだから
これを使ってバグ修正だ といわれても別に驚かない
バグをバグで潰すなんて素晴らしい
いいぞ もっとやれ

877 :デフォルトの名無しさん:2012/08/22(水) 15:29:58.95
現実世界は継承で出来ているので、自然と設計も継承になる。

878 :uY:2012/08/22(水) 15:34:06.43
じゃあいいよ
お前は二度とmix-in使うなよ

879 :uY:2012/08/22(水) 15:35:09.78
>>877
今後お前がmix-in使う事あったら負けな?

uYに負けた敗北者だからな?
ちなみに俺はmix-inも使うし、継承も使う

使い分けることが出来るからwwwwwwwww

880 :デフォルトの名無しさん:2012/08/22(水) 15:35:42.33
どっちしか使えないのかw

881 :デフォルトの名無しさん:2012/08/22(水) 15:36:41.51
どっちかしか使えないのかw

882 :uY:2012/08/22(水) 15:37:12.68
絶対に今後一生mix-in使うなよ
すべて継承でやれよ

883 :520:2012/08/22(水) 15:38:54.29
Rubyのmix-inはクラスの多重継承だね。
まつもとゆきひろ氏も多重継承と言っているよね。

なんでメソッドの継承とクラスの継承を比べるのか
不思議だったけどこれでわかったよ。

884 :uY:2012/08/22(水) 15:39:02.63
>>880,881
え?何?もしかして?wwww
タイプミスですかwwwwwwwwwwwwwwwwww恥ずかしいwwwwwwwwwwwwwwwwwwwwwwwwwwwww



継承ってタイプミスしても大丈夫なんだな

885 :デフォルトの名無しさん:2012/08/22(水) 15:41:11.54
なぜおまえの命令を聞かねばならんのだ。

さっきは継承はバグのようなものだと言ってたのに使うのか。

886 :デフォルトの名無しさん:2012/08/22(水) 15:43:50.68
そもそも、mixinも継承なのに、継承(笑)っておかしくない?
理解してないのバレてない?

887 :デフォルトの名無しさん:2012/08/22(水) 15:49:58.95
>>872
>rubyのmix-inを学べばすぐに分かる
>プログラムの設計に継承を使うような風習は終わっていくから、覚えておくように

>>883
>まつもとゆきひろ氏も多重継承と言っているよね。
www

お前が学べよw


888 :デフォルトの名無しさん:2012/08/22(水) 15:51:55.71
この人はmix-inってオモチャがよほど楽しいようだけど。
クラスA内に使いたいクラスBのフィールドを定義するのと同等じゃね?
mix-inって何が凄いの?

889 :デフォルトの名無しさん:2012/08/22(水) 15:56:21.57
性質でなく機能として見てるから、おかしなこと言っちゃうんだよ。

890 :デフォルトの名無しさん:2012/08/22(水) 15:59:30.50
   






 





 





 


 


891 :デフォルトの名無しさん:2012/08/22(水) 15:59:50.89

 
 
 
 






 


 


 

 


 


 


892 :デフォルトの名無しさん:2012/08/22(水) 16:00:00.81


 

 




 


 


 


 


 


 


 



893 :デフォルトの名無しさん:2012/08/22(水) 16:00:12.39



 


 


 


 


 


 

 


 


 

 

 


894 :デフォルトの名無しさん:2012/08/22(水) 16:00:23.14








 


 

 


 

 


 





 


 

895 :デフォルトの名無しさん:2012/08/22(水) 16:00:57.85


 



 


 


 


 


 


 

 

 
 
 
 



896 :デフォルトの名無しさん:2012/08/22(水) 16:01:32.93
>>888
委譲でも困る事は少ないよね。
単一継承は不便といえば不便だけど、ミックスインだってトレイトだって不便な多重継承なわけで、どの辺でバランスを取るかだと思う。

897 :デフォルトの名無しさん:2012/08/22(水) 16:03:28.14
うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ

うああああああああああああああ



898 :デフォルトの名無しさん:2012/08/22(水) 16:05:07.00
          ______
         /___      \    _____   思った通り
        ( (  ))  ̄ \   \. /     \  小っさい脳みそだお
    / ̄ ̄ ̄ ̄\ .   \  /           \
   /;;::       ::;::::ヽ    / ノ     ー     \
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄   .| (●)  (●)      |
                  \ (__人__)      /
                    / ` ⌒´       \     
      /::::::::\ 
  /:::::::::::::::::::::::::::::::::::::::\ 〜
  |:::::::::::::;;;;;;|_|_|_|_| 〜
  |;;;;;;;;;;ノ∪  \,) ,,/ ヽ 〜 ←>>1
  |::( 6∪ ー─◎─◎ ) 〜
  |ノ  (∵∴ ( o o)∴) 〜
  | ∪< ∵∵   3 ∵> ムッキー !!
  \        ⌒ ノ______
    \_____/ |   | ̄ ̄\ \
___/      \   |   |    | ̄ ̄|
|:::::::/  \___   \|   |    |__|
|:::::::| \____|⊃⊂|__|__/ /
|:::::/        | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕

899 :デフォルトの名無しさん:2012/08/22(水) 16:05:46.00
                 ,!  \
           ,!\          !    \      こういうスレ、マジでもういいから・・・
         i  \         l      \,,..__
          ,i′  ,\___,,--―l       \::゙'冖ーi、、
        i     :;\::::::::::..l              `'‐、、
       /__,..;:r---―-、,..__.     ,;'il:;}          .;:::`L__
   ,.:f''""゙゙゙´          、 ̄ヽ,//           ...::::::l;;;:;;::::
  _/       ......  、   \//、            ::::::::リ;;:::::::::....
//       ......:;::::::::::::. ヽ、\ ゙ヽ  ヘ    ●      ....:::::::::i';;;;::::::::::::
;;/    ::::::::::::;;;;;ノ ̄\:: 〉 〉゙'、 `ヽ_ノ       ......:::::::.;;;:ノ:;;;:::::::::::::
/    ..::::、__;;ノ;;;`ヽ_/: / /⌒)メ、_ノ/         .....:::::;;;/;;;:::::;;:::::::::
     ..:::イ;;.ヽ::;;;;;;;;;(__ノ /'"..:::::::::::::/  ...............:::::::::::;;;,;ノ;;::::::::::::::::
     :::::::l;;;;;;;;;\;;;;;;;,.(__ノ;.;:.\:::::::::/::::::::::::::::::::::::::::;;;;;/;:::::::::::::::::
    ::::::::,!::;;;;;;;;;;:.`゙'-、、  ::: \_/::::::::::;;;___,.;-―''"::::::::::::::::::::::::
   ..::::::::::,!;;;;;:;;;;;:::;;;;;:::;;;;;;`゙ ̄'''冖''―--―'";;;;;;;;;:::::::::::::::::::::::::

900 :uY:2012/08/22(水) 16:05:58.04
mix-inはmix-inだからさあ、
すぐ ○○ == ×× って当てはめようとするなよ 継 承 と は 別 概 念 だ


Matzはコミュ障だから、昔から説明を端折る癖がある
ruby使いであればmix-inが多重継承とは違う事くらいすぐにわかる


継承はタイプミスしても大丈夫なんですか?

901 :uY:2012/08/22(水) 16:09:48.28
mix-in使いたいならまず俺に謝れよカス

「mix-inやっぱり使いたいです。uyさん使わせてください。」って言え
継承が間違っていた事を泣きながら詫びろ
いままで継承を書いてきたソースコードすべてに謝れ
ゴミカスコードを量産してしまった事を関係者すべてにあやmれ
お前らがmix-in使う = 負け
mix-in使いたかったらまず謝れよ
ぜんぜん先に進まないよ

902 :デフォルトの名無しさん:2012/08/22(水) 16:11:17.50
では、オマエさんのいう「継承」とは何か、説明したほうがいいよ。
世間一般でいうオブジェクト指向の「継承」と違いそうだから。


903 :uY:2012/08/22(水) 16:11:22.21

>>880-881

継承はタイプミスしても大丈夫なんですか?

904 :デフォルトの名無しさん:2012/08/22(水) 16:13:24.16
         ___      n
      / __ \.    ||
      | |(゚)  (゚)| |    ||
      ヽ.  ̄ ̄ ̄ /   「|^| |`|
         ̄□ ̄    | !  : ::} ___________
     / ̄ ̄ハ ̄ ̄\ ヽ  ,イ | |             |
__/          \ | ̄|. | |             |
| | /   ,              ヽ| | | |             |
| | /   /         r.    | | |             |
| | | ⌒ ーnnn        |\  ノ |_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二 _|_|__|_

905 :デフォルトの名無しさん:2012/08/22(水) 16:15:21.50
                           ,r;;;;ミミミミミミヽ,,_
                         ,i':r"    + `ミ;;,
       __,、           ≡     彡        ミ;;;i
    〃ニ;;::`lヽ,,_           ≡  彡 ,,,,,、 ,,,,、、 ミ;;;!
    〈 (lll!! テ-;;;;゙fn    __,,--、_  ..   ,ゞi" ̄ フ‐! ̄~~|-ゞ, ≡
   /ヽ-〃;;;;;;;llllll7,,__/"  \三=ー"."ヾi `ー‐'、 ,ゝ--、' 〉;r'  ≡  自分自身を客観的に見ることはできるんです
   >、/:::/<;;;lllメ   \ヾ、  ヽTf=ヽ  `,|  / "ii" ヽ  |ノ
  j,, ヾて)r=- | ヾ:   :ヽ;;:     | l |  l  ''t ←―→ )/イ^    ≡ あなたとは違うんです
 ,イ ヽ二)l(_,>" l|    ::\;::    | |  |  ヽ,,-‐、i'  / V
 i、ヽ--イll"/ ,, ,//,,    :;;   l //  l く> /::l"'i::lll1-=:::: ̄\
 ヾ==:"::^::;;:::/;;;;;;;;;:::::::::::::: :::::ゞ ノ/   L/〈:::t_イ::/ll|─-== ヾ
  \__::::::::/::::::::::::_;;;;;;;;;;;;;;;;;ノノ   ヘ   >(゙ )l:::l-┴ヾ、ヽ  )
      ̄~~ ̄ ̄/ :::|T==--:::::  //  / ト=-|:|-─ ( l   /
         / ::  ::l l::::::::::::::::::/ /:::::::::::/:::::(ヽ--─  / |  /
         ヽ_=--"⌒ ゙゙̄ヾ:/ /:::::::/:::::::::`<==-- ノ / /

906 :uY:2012/08/22(水) 16:15:49.20
はい俺の勝ちだね

雑魚は這いつくばって死ね

907 :デフォルトの名無しさん:2012/08/22(水) 16:16:41.06
                           ,r;;;;ミミミミミミヽ,,_
                         ,i':r"    + `ミ;;,
       __,、           ≡     彡        ミ;;;i
    〃ニ;;::`lヽ,,_           ≡  彡 ,,,,,、 ,,,,、、 ミ;;;!
    〈 (lll!! テ-;;;;゙fn    __,,--、_  ..   ,ゞi" ̄ フ‐! ̄~~|-ゞ, ≡
   /ヽ-〃;;;;;;;llllll7,,__/"  \三=ー"."ヾi `ー‐'、 ,ゝ--、' 〉;r'  ≡  自分自身を客観的に見ることはできるんです
   >、/:::/<;;;lllメ   \ヾ、  ヽTf=ヽ  `,|  / "ii" ヽ  |ノ
  j,, ヾて)r=- | ヾ:   :ヽ;;:     | l |  l  ''t ←―→ )/イ^    ≡ あなたとは違うんです
 ,イ ヽ二)l(_,>" l|    ::\;::    | |  |  ヽ,,-‐、i'  / V
 i、ヽ--イll"/ ,, ,//,,    :;;   l //  l く> /::l"'i::lll1-=:::: ̄\
 ヾ==:"::^::;;:::/;;;;;;;;;:::::::::::::: :::::ゞ ノ/   L/〈:::t_イ::/ll|─-== ヾ
  \__::::::::/::::::::::::_;;;;;;;;;;;;;;;;;ノノ   ヘ   >(゙ )l:::l-┴ヾ、ヽ  )
      ̄~~ ̄ ̄/ :::|T==--:::::  //  / ト=-|:|-─ ( l   /
         / ::  ::l l::::::::::::::::::/ /:::::::::::/:::::(ヽ--─  / |  /
         ヽ_=--"⌒ ゙゙̄ヾ:/ /:::::::/:::::::::`<==-- ノ / /

908 :デフォルトの名無しさん:2012/08/22(水) 16:18:34.94
>>903
例えばjavaだとoverrideつけとけば、継承元にない場合教えてくれるから大丈夫だよ。

909 :デフォルトの名無しさん:2012/08/22(水) 16:19:05.04
                           ,r;;;;ミミミミミミヽ,,_
                         ,i':r"    + `ミ;;,
       __,、           ≡     彡        ミ;;;i
    〃ニ;;::`lヽ,,_           ≡  彡 ,,,,,、 ,,,,、、 ミ;;;!
    〈 (lll!! テ-;;;;゙fn    __,,--、_  ..   ,ゞi" ̄ フ‐! ̄~~|-ゞ, ≡
   /ヽ-〃;;;;;;;llllll7,,__/"  \三=ー"."ヾi `ー‐'、 ,ゝ--、' 〉;r'  ≡  自分自身を客観的に見ることはできるんです
   >、/:::/<;;;lllメ   \ヾ、  ヽTf=ヽ  `,|  / "ii" ヽ  |ノ
  j,, ヾて)r=- | ヾ:   :ヽ;;:     | l |  l  ''t ←―→ )/イ^    ≡ あなたとは違うんです
 ,イ ヽ二)l(_,>" l|    ::\;::    | |  |  ヽ,,-‐、i'  / V
 i、ヽ--イll"/ ,, ,//,,    :;;   l //  l く> /::l"'i::lll1-=:::: ̄\
 ヾ==:"::^::;;:::/;;;;;;;;;:::::::::::::: :::::ゞ ノ/   L/〈:::t_イ::/ll|─-== ヾ
  \__::::::::/::::::::::::_;;;;;;;;;;;;;;;;;ノノ   ヘ   >(゙ )l:::l-┴ヾ、ヽ  )
      ̄~~ ̄ ̄/ :::|T==--:::::  //  / ト=-|:|-─ ( l   /
         / ::  ::l l::::::::::::::::::/ /:::::::::::/:::::(ヽ--─  / |  /
         ヽ_=--"⌒ ゙゙̄ヾ:/ /:::::::/:::::::::`<==-- ノ / /

910 :デフォルトの名無しさん:2012/08/22(水) 16:20:25.30
ノ         _   ミ:::
 ノ    二__, --、r'"___、 ヾ ト、::ヽ
  ミレ'"~,-,、 !  ! ' '" ̄ .ノ \ヾ:、
  K/ー'~^~_/  ヽミ:ー‐‐'"   ヽ i.
 !〉 ー―'"( o ⊂! ' ヽ   ∪   Y_  
 i  ∪  ,.:::二Uニ:::.、.       l i 
 .!     :r'エ┴┴'ーダ ∪    !Kl     
 .i、  .   ヾ=、__./        ト=
  ヽ. :、∪ ゙ -―-    ,; ∪ ,!   
  \.  :.         .:    ノ
   ヽ  ヽ.       .    .イ   
.    `i、  、::..     ...:::ノ ,∧

911 :uY:2012/08/22(水) 16:25:03.51
>>908
すげーな


>>880-881
やったじゃん

912 :デフォルトの名無しさん:2012/08/22(水) 16:25:14.49
    i`i
    | .|_,.、/'i
   ノ'" ニヽイ
  r〈   くン      __
  ト-'r、ィ-へ7  _Σニ'ゝ=<ーァ
  Y   ̄' |'"´       ̄`ヽ、
  |     |___,,.._ゝ___    ,  `ヽ、
  |     イ-'/´ ̄/ ̄ハ`""''ヽ、ィ _i
  |     / /| /-!、レ' | ハ_ !  `''〈   こいつ最高にアホ
  .|    | / レ'ー=、  レ,.=、、7 ハ |
   |    .| | | ""   .  ヒ_ノイ/ /__!イ
   |、__  |,|  |  rー--、   "i ト !ソV、
 ト、,ト、,___,.ィ! ', ト、 ヽ.__,ノ  ,.イ ハ' ̄'`
i\ |      ヽ|`「>ーr=i'"レヘレヽ|
〉  ヽ、    イ´ Σ>o<{ハヽ、ィ'i_ 
ゝ、_  `ヽr-'"´ 、  /   i  〉, フ  
 ∠  >ヽ.  Σ>o<{  _,イ  イイ. 
  レへ,  ハ   / ⌒  |__,.-ヘ.7  
      '⌒!,ヘ/ 、   , ト,   \ 
        r〉 '   i   ヽ'〈´   〉
       / /   !  ヽ ヽ、 /
      /  /       ,イ `く
     /   /     _rヘo'_    ヽ、
   rく /       レiヽ_7  ヽ  」、

913 :uY:2012/08/22(水) 16:25:45.10
>>880-881
タイプミスは動的言語では致命的だから
JAVA使う事をオススメする

914 :デフォルトの名無しさん:2012/08/22(水) 16:27:24.42
                     /⌒ ヽ              /\  /ヽ
                       /´・ω・`ヽ        ヽ、 lヽ'   ` ´
    きめぇwwwwwwww    ,ノ      ヽ、_,,, ニコ厨自重wwwwwwww
       きめえええwwvwww, '"´``Y'""``'j   ヽ     |
                { ,ノ' i| ,. ,、 ,,|,,ktkrwwwwwwwwwww      ニ
                '、 ヾ ,`''-‐‐'''" ̄_{ ,ノi,、;;;ノ      l  ――‐    ・
キタ━━━━━━━━!!   ヽ、,  ,.- ,.,'/`''`,,_ ,,/     ヽ            ・
                  `''ゞ-‐'" `'ヽ、,,、,、,,r'       | ――――  ・
                    ,ノ きめぇええwwwwwwwww
                   ./        ;ヽ       .|  ――┐
       ↓お前の人生wwwwwwwwww .;;;l       |.       |
      つまんね・・・・・・  .|      ,,, /    ;;;|       .|   ――┘
                   |   ,' ;;;l l ;;'i,   ;|      | ┌―――
        ↓ねーよwwww   /  / l `'ヽ, 、;|      /.  | 一 -十
         俺のほうがマッチョだな ヽ  l  ,i|     /   | 口 ヽ|
                  l`'''" ヽ   `l: `''"`i     `l  / ヽノ \|
wwwww            l ,. i,'  }    !テラマッチョwwwwwwwwww
           ,, .--、,,__,,-' ̄;;"`´ ;; __  __, -―- 、;; ̄`l  ┌┐┌┐
  ちょwwwwwwwwなんぞこれwwwwwwww´|     l ヽ.,/  ││││
      /l ;;, -‐Y´| l  __  /`'| |   | l  l;|       l ヽ. └┘└┘
     /|;;;;ヽ/  .| | |.;;l_,-'l | V | |.l .|   .|    l  i i   | ;;l |  ○  〇

915 :520:2012/08/22(水) 16:28:12.26
>>900
>すぐ ○○ == ×× って当てはめようとするなよ 継 承 と は 別 概 念 だ
「あるとき、著名な若手研究者が多重継承とMix-inは別物だと信じていらっしゃった。
しかも、その原因がRubyであったのを知って深く反省したものです。」
まつもとゆきひろ氏談

著名な若手研究者も間違えるみたいだね。

916 :デフォルトの名無しさん:2012/08/22(水) 16:28:50.71
 7月にソウルの在韓国日本大使館の正門にトラックで突っ込み、暴力行為処罰法違反罪に問われた金昌根被告(62)の初公判が22日、
ソウル中央地裁で開かれた。金被告側は起訴された行為自体は認めたものの、
「豊臣秀吉の朝鮮侵略などに抵抗した義兵の精神を受け継ぐ行為だ」として無罪を求めた。

 被告側は日本の竹島(韓国名・独島)の領有権主張も非難した。公判は即日結審し検察は懲役1年を求刑。判決は9月5日に言い渡される。

 起訴状によると、金被告は7月9日早朝、トラックで大使館正門に突っ込み門を壊した。日本の民族派団体の男性が6月に、
元従軍慰安婦の被害を象徴する同大使館前の少女像に「竹島は日本固有の領土」と書いたくいを縛り付けたことに怒り、
日本が責任ある措置を求める世論を起こす目的だったと、金被告は捜査段階や公判で主張した。(共同)

ソース 産経新聞
http://sankei.jp.msn.com/world/news/120822/kor12082213080004-n1.htm
ソウルの日本大使館正門に突っ込んだトラック。荷台には「独島はわれわれの領土」と書かれている=7月9日(共同)
http://sankei.jp.msn.com/images/news/120822/kor12082213080004-p1.jpg


917 :デフォルトの名無しさん:2012/08/22(水) 16:29:29.41
俺には、1人や少人数で開発したプログラムにおいて

一体どこにデバッグに梃子摺る要素があるのか分からない

分けが分からないw
自分で書いたコードすら管理できないならプログラミングやめろよ


918 :デフォルトの名無しさん:2012/08/22(水) 16:29:38.19
I/Fの少ない、或いは抽象度の高いプログラムに限定するなら、同意。
デバッグが必要なプログラミングをしているのなら、何か間違っている。
しかし、GUIやドライバのような自分が全てを知り得ないようなものとのI/Fを
プログラミングするのであれば、相性と言う問題も含めてデバッグが必要になってくる。
或いは、チューニング作業もある意味デバッグと言ってもいいかもしれない。

それはさて、トリッキーで短いコードは判り難いと言うことはそんなに受け容れ難いことなのかねぇ。

919 :uY:2012/08/22(水) 16:30:54.42
>>915
つまりMatzのrubyとmix-inへの理解力はその程度ってこと

今更いうまでもない

920 :デフォルトの名無しさん:2012/08/22(水) 16:33:45.15
>>919
おまえは凄くゴミ臭いのにえらい大きく出たもんだw

921 :uY:2012/08/22(水) 16:35:06.39
しょうがないからコード出してやるけど
module A
  attr_accessor :x
end

a = Object.new

a.extend A
a.x = 5

p a.x


これを継承()だとか多重継承()() だとかいわれても困るんだよ



じゃあ
a.extend A

これ使いまくってる俺は、多重継承使いまくりなのかよって話

a.extend A   ←これが多重継承だとまだいえるのか?

 別 物 で す

922 :uY:2012/08/22(水) 16:36:09.01
>>920
そしてこれは
お前が俺に謝るまで一生使えない機能だから
覚えておかなくていいよ


忘れろwwwwwww一生継承だけつかってろwwwwwwwwwww雑魚wwwwwwwwwwwwwwww

923 :デフォルトの名無しさん:2012/08/22(水) 16:36:18.01
難しく書いて

「俺すげぇぇぇぇぇ」
「馬鹿にはわからないだろな」

をやらなければいいんだよね?

文章と一緒で読者を意識して理解しやすく書けばいい


924 :デフォルトの名無しさん:2012/08/22(水) 16:36:39.44
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所


925 :uY:2012/08/22(水) 16:37:03.47
Mix-inは馬鹿には無理

926 :デフォルトの名無しさん:2012/08/22(水) 16:37:27.80
>プログラマAとプログラマBを「同じような存在」として扱うための奴隷機構だぞ?
一人でしかプログラムを書かない、書けないバカが言いだしそうな台詞だな
アルゴリズムとは別の誰が書いても同じような部分は没個性的であればあるほど良いに決まっている
既に築き上げられた定石とイディオムの塊だよ。
vc++やvbから入った奴らのガラパゴス進化したコードなんて読んでみたいと思うか?想像するだけでぞっとする

927 :デフォルトの名無しさん:2012/08/22(水) 16:37:53.15
まあ、まだプログラム初めて20年ちょっとの初心者ですが。

その程度のコストも支払えない環境で開発するなら、Cでアセンブラ時代にやっていたような仕組みを導入するのがよいです。

固定構造体に確保済み配列を使いまわす例のヤツねw

928 :uY:2012/08/22(水) 16:38:06.28
目障りなスレだから埋め立てといてね

じゃ

929 :デフォルトの名無しさん:2012/08/22(水) 16:38:15.47
Aというクラスのfooメソッドにバグがありました。
Aを継承したBというクラスでfooメソッドをコピペしバグを修正しました。

fooメソッドにはもうひとつバグがありました。
Bというクラスにも当然バグが含まれています。
さらにBを継承したCを作ってバグを修正しました。

fooメソッドにはもうひとつバグがありました。
BにもCにも当然バグが含まれています。
さらにCを継承したDを作ってバグを修正しました。


930 :デフォルトの名無しさん:2012/08/22(水) 16:40:39.91
>>921
それ、同じことをC++でやると継承使うんだけどね。
rubyはその部分をmoduleという機能つかって簡略化しているんだよ。

931 :デフォルトの名無しさん:2012/08/22(水) 16:45:42.77
>>921
それ、同じことをC++でやると継承使うんだけどね。
rubyはその部分をmoduleという機能つかって簡略化しているんだよ。

932 :デフォルトの名無しさん:2012/08/22(水) 16:45:47.51
>>929
ループさせんなバカ。
もう一つバグがあったらBを書き換えればいいだろ。

前提としてAは5年前にAさんが作った物でBはお前が作っている。
それともCさんDさん・・・・・・・Zさんって無限に必要なのか?

933 :デフォルトの名無しさん:2012/08/22(水) 16:45:50.42
>>921
それ、同じことをC++でやると継承使うんだけどね。
rubyはその部分をmoduleという機能つかって簡略化しているんだよ。

934 :デフォルトの名無しさん:2012/08/22(水) 16:46:01.20
>>921
それ、同じことをC++でやると継承使うんだけどね。
rubyはその部分をmoduleという機能つかって簡略化しているんだよ。

935 :デフォルトの名無しさん:2012/08/22(水) 16:46:27.10
>>921
それ、同じことをC++でやると継承使うんだけどね。
rubyはその部分をmoduleという機能つかって簡略化しているんだよ。

936 :uy:2012/08/22(水) 16:46:30.90
コードだせよ
別物だから

937 :デフォルトの名無しさん:2012/08/22(水) 16:46:49.87
10年もたつとITリテラシが変わるので、再度一から知識リフレッシュをしなければならないんだが
やらずに当時の試行錯誤がさらに力技になった果てに520が生まれるって印象。

938 :デフォルトの名無しさん:2012/08/22(水) 16:49:00.04
>>937
全世界のライブラリをおまえが管理している前提かよ。

939 :uy:2012/08/22(水) 16:49:02.67
それいったら

構造体とクラスはおなじ

簡略化してるだけ

配列も構造体も同じ

簡略化してるだけ

配列とINT変数も同じ

簡略化してるだけ


二審数もrubyもおなじ

簡略化してるだけ

940 :デフォルトの名無しさん:2012/08/22(水) 16:53:24.55
>>939
やっと気づいたのか。
そういった設計を簡単に実装できるように言語がサポートしてるだけ。
Cでooを実現するために、第一引数をオブジェクトとするローカルルール作ったり。

941 :デフォルトの名無しさん:2012/08/22(水) 16:54:26.81
>「あるとき、著名な若手研究者が多重継承とMix-inは別物だと信じていらっしゃった。
>しかも、その原因がRubyであったのを知って深く反省したものです。」
>まつもとゆきひろ氏談
uYが520から完膚なきまでにボコられw

>つまりMatzのrubyとmix-inへの理解力はその程度ってこと
「まつもとゆきひろ」まで完全否定して発狂しているぞw

942 :デフォルトの名無しさん:2012/08/22(水) 16:58:09.44
>>939
さっきも言ったけど、お前さんが言う「継承」は一般的な「継承」と意味が違うんだよ。
なぜrubyでmoduleを採用したか知ってる?
javaのような単一継承は世の中の事象を表現するのに、やりすぎた制限だから
多重継承を許したいが、多重継承はモジュール間の関係がネスト化して複雑になるため
その問題を解決する方法としてmixinを採用し、rubyではそれ専用にmoduleという機能を用意して
ネストが複雑にならないように制限かけているんだよ。

もう、継承という言葉を使わないほうがいいよ。誤解されるから。
rubyのmoduleが素晴らしいと言ってればいいだろ。



943 :デフォルトの名無しさん:2012/08/22(水) 16:59:45.48
はいはいmix-inは素晴らしい素晴らしい。でもおまえはゴミ臭い。

944 :デフォルトの名無しさん:2012/08/22(水) 17:45:57.20
ちなみに他スレでトリップつけてるアホが居るみたいだが
あれは偽物、俺のなりすましな。
ま、証明はできないが。

945 :デフォルトの名無しさん:2012/08/22(水) 18:06:18.59
>>860
今時、モジュールなどというものを重視している言語がメジャーなものの中に
あるということを教えていただきました。ありがとうございました。

946 :デフォルトの名無しさん:2012/08/22(水) 19:16:03.73
>a = Object.new
>a.extend A

ObjectとAを多重継承したクラスやがな


947 :デフォルトの名無しさん:2012/08/22(水) 19:47:56.30
私的には、多重継承より演算子オーバーロードの方が必要だと思うのですよ。
文字一致くらい==でやりたいし、イテレータを++で進めたいとか思ってるんだけど、
なかなかそういう言語が増えないのが疑問。

948 :デフォルトの名無しさん:2012/08/22(水) 20:25:36.12
C#はできたと思うよ

949 :uy:2012/08/22(水) 21:36:27.97
ほんとにさwwww
rubyやってないやつって時代錯誤なこと言い始めるよな

イテレータ進めるのに++て

950 :デフォルトの名無しさん:2012/08/22(水) 21:40:28.27
>>864
トリなしuYもローカルあぼーんしました

951 :uy:2012/08/22(水) 21:40:45.87
教えるよりもプライドつぶさないように放置がいいのか
とりあえずさあ最近でてくる言語がなぜrubyの真似してるのが多いのか考えた方がいいよ
別に常用しなくてもいいんだから最低限ruby流の書き方くらいしってれば
時代遅れなこと言い始めることもないんだよ
互換性を捨てながらも進化してるってことはな
構文に関していえばrubyは最先端って意味だよ

952 :デフォルトの名無しさん:2012/08/22(水) 22:01:27.40
そういう偉そうなことは、継承の意味を理解してから言ってね。
みてるほうが、恥ずかしいから


953 :デフォルトの名無しさん:2012/08/22(水) 22:06:23.73
rubyがぱくってるだけなのにrubyしか知らない子はruby流という

954 :uy:2012/08/22(水) 22:13:49.54
譲歩しても関数型までだよな
ruby python 関数型言語のどれもやってない奴なんて
設計や実装を語る発言権すらないわ

作るのかたとえC# JAVAであろうと先進的な概念はマイナー言語にしかないよ
マイナー言語で有益さが認められてようやくC# JAVAに実装され広まっていくんだけど
大抵は既に間違った風習が蔓延ってるから機能実装されたとしても
大々的に記事とかで取り上げられなければ
C# JAVAだけやってて気づけるわけがなく、優秀な知り合いでもいなければ一生情報など拾えず
時代錯誤なことやりつづけるだろう
周りも同じだから、周りがほとんどそれ正しいと認識してる状態で知識あるやつが一人もいなければ全員が全員で間違う
間違った風習が蔓延ってるからJAVAしかやらないJAVA使いはカスなんだよ
rubyだけやってる奴の方がJAVAしかやってない奴よりは先進的な方法だけは知ってるからまだマシ
今後自分で何か設計するとしてもrubyの実装にあわせながらやっていけば初心者が最初から綺麗にうまくできても不思議じゃない
rubyはそれだけ根がちゃんとしてる
時代錯誤なことはいい加減にしろカス

955 :デフォルトの名無しさん:2012/08/22(水) 22:16:00.80
C++みたいになんでもできるけど何をやるにも煩雑な仕様もあるし
javaのように制約は多いけど大概の事は簡単にできる仕様もある。
rubyはいじったことは無いけどどうなんだろうね。

956 :uy:2012/08/22(水) 22:23:36.02
rubyはrubyを使わないとしても
言語の作りそのものがオブジェクト指向の見本になる
イテレータかくならrubyの真似すればいいんだよ
他言語では普通にやってるインクリメントがどれだけ冗長か
インクリメントしないとアルゴリズムが記述できない言語は既に時代錯誤

957 :デフォルトの名無しさん:2012/08/22(水) 22:27:02.70
やたらレス番が歯抜けになっておる。。

958 :デフォルトの名無しさん:2012/08/22(水) 22:28:49.57
for(int i=0;i<array.length;i++){
array[i]=0;
}

冗長だよな。でもこの程度の無駄でやる気を失ってるようではカスだぜ。


959 :デフォルトの名無しさん:2012/08/22(水) 22:30:04.15
rubyが最強 終わり

960 :デフォルトの名無しさん:2012/08/22(水) 22:31:34.22
こいつに設計させたら設計書にrubyのコード書きそうだな。
設計の勉強したことないプログラマに設計はさせない方がいいか。

961 :デフォルトの名無しさん:2012/08/22(水) 22:35:20.45
>>958
冗長って何がだよ
だったら、アセンブラでかけや

962 :uY:2012/08/22(水) 22:37:29.95
>>958
俺は社畜ではないから
C++でfor文書くときはマクロで記述するよ

>>960
周りが俺の設計に合わせてコードかくなら複数人での作業は可
俺が周りに合わせる事はない

つうか設計書に書くならrubyコードでもPythonでもなく「こんな言語あったらいいな」の自作の言語で書くだろ
手書きプログラミングするときにまでendかかない


963 :デフォルトの名無しさん:2012/08/22(水) 22:39:08.36
時代時代いってたJAVA転落ざまあww

964 :uY:2012/08/22(水) 22:39:12.49
>>961
ほんとにもうね

965 :デフォルトの名無しさん:2012/08/22(水) 22:39:31.79
昔C++には多重継承狂信者っていうのが居たがその類だろうな。

966 :uY:2012/08/22(水) 22:41:06.18
>>946
それrubyでmodule側で宣言した@や@@つき変数のスコープどうなるか分かってる?

967 :デフォルトの名無しさん:2012/08/22(水) 22:41:36.22
rubyが最強 終わり

968 :デフォルトの名無しさん:2012/08/22(水) 22:42:03.88
rubyは相変わらず遅くて使い物にならないそうだが、
java1.7は大概のループでC++を超える実行効率を叩きだす。

969 :uY:2012/08/22(水) 22:43:33.57
>>968
こういうのがJAVERだよな

内部の仕組みが何も分かってない
たとえ最適化性能で一時的にJAVAが↑にいったとしても
C++よりもJAVAのほうが色んなこと裏でやってんだから
速度差なんて火を見るより明らか

970 :uY:2012/08/22(水) 22:48:52.74
Rubyが遅い(笑)って、
ブラウザかOSでも作ってるのかって話だよ
普段何作ってるんですか?ぜひ教えてくださいwwwwwwwwwwwwwwwwwwwwww

そんなに速度なんて必要とされていない場所まで速度がー速度がー言ってる奴って冗長だよな

971 :uY:2012/08/22(水) 22:51:59.53
謝れ

972 :デフォルトの名無しさん:2012/08/22(水) 22:55:24.23
書き方が冗長でも「とにかくできればいい」それがjava流
それをrubyみたいにカッコつけてやる必要はない。ましてやlambdaとかclosureとかウンコだと思う。
ましてやruby厨みたいに威張り散らかす必要はもっとない。

973 :uY:2012/08/22(水) 22:58:19.59
for(int i=0;i<array.length;i++){
array[i]=0;
}



ary = [1,2,3]
ary.map!{0}



謝れ

974 :uY:2012/08/22(水) 22:59:37.95
はやく

975 :uY:2012/08/22(水) 23:02:20.36
初心者謝れ

976 :デフォルトの名無しさん:2012/08/22(水) 23:03:17.95
日本語は冗長だからな、じゃあお前は日本語を使うな、エスペラント語でもやってろってこった。

977 :デフォルトの名無しさん:2012/08/22(水) 23:04:30.91
おまえは10進法を使うな。2進法、16進法しか使うな。10進法は冗長だからな。

978 :uY:2012/08/22(水) 23:05:35.09

マジそういうのいいからさっさと

ary = [1,2,3]
ary=[0]*ary.size
p ary

ary = [1,2,3]
ary.size.times{|i|ary[i]=0}
p ary

ary = [1,2,3]
ary.each{|i|i=0}
p ary


謝れ!!!!!!!!!!!


979 :デフォルトの名無しさん:2012/08/22(水) 23:07:25.79
おまえはオナニーは20秒以内に終わらせろ。

980 :デフォルトの名無しさん:2012/08/22(水) 23:07:45.04
0初期化するだけなのにmap使わなきゃいけないなんてダサすぎる

981 :デフォルトの名無しさん:2012/08/22(水) 23:08:33.47
書き方が色々あると迷うからな、どれでやろうかな〜って迷っている時間が無駄なrubyは効率が悪い。

982 :デフォルトの名無しさん:2012/08/22(水) 23:08:38.89
>ary=[0]*ary.size
冗長

>ary.size.times{|i|ary[i]=0}
冗長

>ary.each{|i|i=0}
冗長

983 :uY:2012/08/22(水) 23:08:43.89
早く謝ったほうがいいんじゃないのか?
謝るまでmix-in使えないからな?

>>980
え、初期化?

え、代入にしか見えない

はい初期化
ary = []


984 :デフォルトの名無しさん:2012/08/22(水) 23:09:41.70
>>983
1で初期化してみ

985 :デフォルトの名無しさん:2012/08/22(水) 23:10:16.01
情緒不安定!

986 :uY:2012/08/22(水) 23:10:18.03
ary = Hash.new{|a,b|a[b]=0}

さっさと謝れ

987 :デフォルトの名無しさん:2012/08/22(水) 23:12:08.67
この0埋めするコード何種類も書いる子供なんなの?
池沼?

988 :uY:2012/08/22(水) 23:12:17.86
>>984
ary = 1
ハァ?

ツウカこういうアルゴリズムの存在自体が「冗長」
なんだよ

rubyで普通に最初からやってれば、配列まわして全部0にするとか
1にするとかは、ねーーーーーーーーからさ

質が違うんだよ

時代遅れいい加減にしろ

989 :uY:2012/08/22(水) 23:13:04.10
>>987
0が好きなんだよ

990 :デフォルトの名無しさん:2012/08/22(水) 23:13:04.47
>>988
レスが冗長()

991 :uY:2012/08/22(水) 23:13:59.59
>>987
>>990
お前は嫌いだけどな

992 :デフォルトの名無しさん:2012/08/22(水) 23:14:36.62
ゆとり言語ばっか使っててアルゴリズム書けないプログラマっているよね

993 :デフォルトの名無しさん:2012/08/22(水) 23:14:52.02
ruby≒おまえ

誰に謝るんだ?人間じゃないrubyに謝ってどうするんだ?
狂信者にはruby神が見えるのか?
rubyごときが神だとはお笑いだw


994 :デフォルトの名無しさん:2012/08/22(水) 23:15:12.78
>>991
人生が冗長()

995 :uY:2012/08/22(水) 23:15:34.06
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

ゆとりJAVA使いが何か申しておるwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

996 :デフォルトの名無しさん:2012/08/22(水) 23:16:03.42
訂正 ruby≠おまえ



997 :デフォルトの名無しさん:2012/08/22(水) 23:16:32.95
自分以外はみんなjava使いだと思い込むのもゆとりの特徴だけどね

998 :uY:2012/08/22(水) 23:16:42.08
>>993
ほら、謝罪しろよ
ひざまずいて死ね!!!!!!!



999 :デフォルトの名無しさん:2012/08/22(水) 23:17:15.54
uYは2ちゃん依存症

1000 :uY:2012/08/22(水) 23:17:21.32

>>1

              . ; '
            . ・ ' . ; '
         ハ,  ;'.  ,ハ      ∧ ∧,〜 
        ( ゚./   /ω゚ )    ( (⌒ ̄ `ヽ    _
       / ./   /   \     \  \ `ー'"´, -'⌒ヽ
     ⊂  )/   /  ノ\つ    /∠_,ノ    _/_
            (_⌒ヽ     /( ノ ヽ、_/´  \
             ヽ ヘ }   、( 'ノ(     く     `ヽ、
        ε≡Ξ ノノ `J  /`   \____>\___ノ
────────────/───―‐/__〉.───`、__>.──────


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

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

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)