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

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

にわかプログラマー俺「オブジェクト指向分かんなすぎワロスww」

1 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:06:49.316 ID:m5Z/B/1+M.net
使う機会なさすぎww

2 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:07:28.399 ID:NvZkkf8Vd.net
いるんだよねー最近オブジェクト指向が入口の子

3 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:07:48.126 ID:ihHcDFRr0.net
使う機会とかじゃなくて自然と使うものだから

4 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:09:50.372 ID:T3N5OS240.net
あのさあ!

5 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:11:07.943 ID:FtzOjSfm0.net
わかんねえこと

6 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:11:48.963 ID:i5U2L4hj0.net
俺も会社で「オブジェクト指向は理解できてるか?」ってまず聞かれたわ

7 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:12:13.385 ID:m5Z/B/1+M.net
>>2
>>3
こういうやつら怖すぎワロタw

8 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:12:16.974 ID:b3zN+QI90.net
使うときはひたすら使うぞ

9 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:13:34.507 ID:jNZWt5ig0.net
なんかクラス使ってそれっぽいものは作れるけど
デザインパターンなんかはまだ使う意味が分からない

10 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:16:07.186 ID:Fieg+Ngd0.net
OOPとか言ったって、結局はただのダックタイピング至高理論よ

11 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:17:12.506 ID:UfB5UOXX0.net
>>9
工数の削減じゃねぇかな

12 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:17:15.246 ID:Sb4SEtTd0.net
また二次元ホリエモンがキレるぞ

13 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:18:53.595 ID:/eR0SmGt0.net
ぼく「オブジェクト指向は設計思想なので、C言語でもオブジェクト指向設計と実装は可能」

14 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:19:31.547 ID:Fieg+Ngd0.net
>>13
例:WinAPI

15 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:19:44.675 ID:esp/l8Js0.net
何をメインでやってるんだろう
cobolとかlispとか?

16 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:26:51.861 ID:DlVcaYT+0.net
ただ言語がオブジェクト指向をサポートするかどうかはある

17 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:31:57.529 ID:zFDjNVuB0.net
>>15
js php swift java

18 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:32:01.189 ID:MUc1Q0A70.net
使う機会ありまくりだろ
過去に生きてるのかよ?

19 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:32:57.201 ID:MUc1Q0A70.net
>>9
設計だよ

20 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:34:21.516 ID:armxvqj/0.net
単体で動かすプログラム作るつもりなのかよ
全部自分で手打ちするつもりなのかよ
オブジェクト指向じゃないって徒歩で日本一周するようなもんだぞ

21 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:35:27.428 ID:esp/l8Js0.net
>>17
jsもphpもフレームワーク次第でバリバリのオブジェクト指向になるやんけ
swiftやらjavaあたりなんてオブジェクト指向の代表格やんけ

22 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:38:23.436 ID:MUc1Q0A70.net
>>20
オブジェクト指向が一般化する前から普通にシステムはあったけど

23 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:42:32.908 ID:UfB5UOXX0.net
昔は徒歩で日本一周が普通だったんだよ

24 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:53:05.211 ID:zFDjNVuB0.net
>>18
>>20
>>21
落ち着けよw

25 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:56:01.998 ID:mocROz3S0.net
Javaあたりだと普通にプログラミングしてるだけでオブジェクト指向に則ってるって理解なんだけど間違ってる?

26 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:56:14.761 ID:TSpypjOe0.net
どうしてビップのプログラマはみんなこんなにオラついてるの

27 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 20:59:21.354 ID:Fieg+Ngd0.net
>>25
残念ながら間違ってる
OOPは、常に意識していないと正しく使えないプログラミング手法だ
特にJavaは言語が古すぎるので、今となっては標準ライブラリでさえ現代的なOOPにはそぐわない場合がある

28 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:00:46.804 ID:mocROz3S0.net
>>27
あー間違ってるかー
今から追いつくのは大変なんだな
ありがとう

29 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:03:21.418 ID:MUc1Q0A70.net
>>27
古すぎるとか素人みたいなこと言うなよ…
具体的に説明できなだけという

30 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:05:30.882 ID:Fieg+Ngd0.net
>>28
いや、やってる事自体はめっちゃ簡単なんだよ
「中で何やってるのかはわかんないけどこのメソッドを使えばメソッド名通りの事ができる」
っていう状態を常に作り続けるだけ

31 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:06:51.719 ID:MUc1Q0A70.net
>>30
これは分かってない奴の説明だわ…
メソッドと関数が区別されてねえもの

32 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:08:19.835 ID:Fieg+Ngd0.net
>>29
System.inとかSystem.outが何故OOP的ではないのかとか、詳しく説明した方がいい?

33 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:08:45.458 ID:Fieg+Ngd0.net
>>31
Javaにメソッドと関数の区別があるかよ

34 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:09:01.448 ID:MUc1Q0A70.net
>>32
説明して

35 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:09:15.452 ID:MXNzOVPh0.net
>>32
ききたーい

36 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:09:49.381 ID:MUc1Q0A70.net
>>33
オブジェクト指向について話しているんだからオブジェクト指向と手続き型は区別して語るのは常識だろ

37 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:12:08.754 ID:MXNzOVPh0.net
Javaが古すぎて現代的なOOPにそぐわないというのがどういう事なのか具体的にしりたーい

38 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:16:28.984 ID:MUc1Q0A70.net
>>32
知ったかちゃんは逃亡か?

39 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:17:08.415 ID:mocROz3S0.net
>>30
なるほど
JavaどころかVBAでもそれ意識してた

でも面白そうなのでよかったらもっと詳しく教えてくれ

40 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:18:33.565 ID:jSHkB7cFd.net
サブルーチンと何が違うの

41 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:19:43.917 ID:MUc1Q0A70.net
>>40
データはオブジェクトが保持していること

42 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:23:34.647 ID:Fieg+Ngd0.net
>>34-35
まず、System.outはPrintStream型である
このPrintStreamは、次の3つの機能を持つ:

(1) intやdoubleといった非文字列値から文字列への変換
(2) それらの文字列の、バイト列への変換
(3) OutputStreamというバイト列への出力

このうち(1)と(2)が単一のクラスに存在するという事が、まずOOP的に不適切
何故なら非文字列値から文字列の変換は、文字列をいかなる方法でバイト列に変換するかとはまったく別次元の問題だからだ
ユーザーは、状況に応じて同じ数値を違う文字列として出力したいかもしれない……たとえば「1」と「一」とか
ならば、そのような変換処理はPrintStream自身が持つのではなく、PrintStreamに与える引数なりプロパティなりとして持つ方が理に適っている
だが、PrintStreamはそんな仕組みにはなっていない糞
こんな糞クラスを使ってるSystem.outは当然糞

System.inも同様

43 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:24:16.777 ID:Fieg+Ngd0.net
>>36
どこに区別する必要があったんだよ
OOPの話しかしてないんだから、関数なんてどこにも出てくる余地ないだろ?

44 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:25:10.942 ID:Fieg+Ngd0.net
>>41
それは間違い
データをオブジェクトが保持している必要はない

45 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:27:36.655 ID:MXNzOVPh0.net
現代的なOOPって何〜?
古いOOPとの差分を知りた〜い
教えて?

46 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:27:51.417 ID:Fieg+Ngd0.net
>>39
いや、ほんとそれだけなんだってば
なんかインターフェースとか継承とか、そういうわけわかんない事やってるように見えるのは、
単にそういうダックタイピングを静的型付け言語で実現するにはそれっきゃないよね、ってだけ
あるいは、C++のテンプレートメタプログラミングみたいな謎の黒魔術に傾倒するか

47 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:29:21.997 ID:MUc1Q0A70.net
>>43
>>44
お前の定義を言えよ
>>30じゃVBAのころから言われているし、サブルーチンとの違いが分からんと指摘されとるぞ

48 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:31:29.962 ID:MUc1Q0A70.net
>>42
状況に応じて同じ数値を「1」とか「一」とかに出力する機能を標準クラスに組み込むってあり得んぞ…

49 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:32:09.228 ID:Fieg+Ngd0.net
>>45
「とりあえずクラスの中にカプセル化すればOOP」とか、「OOPとはオブジェクト同士がメッセージ交換するもの」とか、
そういう形式的な理解を便宜上「古い」と言ってるだけよ

>>47
昔から言われてる事なのは間違いないけど、昔から誤った理解をされてる事も確か
そしてJavaも誤った理解で開発されてたよね、って話

50 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:32:40.627 ID:mocROz3S0.net
>>46
すまん表現を変える
にわかな俺の質問に答えるより他の人らとの応酬を見てる方が面白そうだから相手してやってくれ
超面白そうなので

51 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:32:54.249 ID:Fieg+Ngd0.net
>>48
もちろん、標準クラスとしては「1」だけでいいんだよ
問題は「一」を自作するのに、PrintStreamそのものを継承する以外の方法がないこと

52 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:33:47.364 ID:MUc1Q0A70.net
>>49
メソッド(オブジェクト指向)と関数(手続き型)の区別という意味なんだが…
そう解釈するのは常識だと思っていたわ…

んで、回答は?

53 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:34:33.326 ID:esp/l8Js0.net
>>49
参考までに聞きたいけど厳密にオブジェクト指向に基づいて設計された言語ってどのあたりになるのん?

54 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:34:33.778 ID:MUc1Q0A70.net
>>51
問題は「一」を自作するのに、PrintStreamそのものを継承する以外の方法がない

嘘つくな…
ちょっとは考えてから書き込めよ

55 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:35:59.958 ID:4JC2dAq80.net
時代はMBD

56 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:36:12.047 ID:mocROz3S0.net
ここで質問だけ投げてる人達の解釈も見てみたいなー
超☆面白そう

57 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:37:10.694 ID:zGSYa1p50.net
phpやってるけど
えっクラス使う場面あると毎回思うわ
まぁpdoは使ってるけど

58 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:39:11.531 ID:Fieg+Ngd0.net
>>52
俺はそもそも「手続き型的な関数」なんてものを考えてすらいないんだ
メソッドはメソッドであり、関数との対比として存在するものではない
単に似たような文法を使っているだけの、全く無関係な概念だ

だから、俺のOOPの定義は>>30だよ
重要なのは(メソッドの用法としての)インターフェースであり、
それ以外はOOPを定義するためには一切無関係、という立場

59 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:40:49.370 ID:Fieg+Ngd0.net
>>53
言語自体はJavaもそうだし、Pythonもそう
ただ、標準ライブラリがちょっと微妙ってだけ

>>54
じゃあ、System.out.print(1);って書いた時に「一」が出力される方法を書いてみてくれ

60 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:41:24.045 ID:MUc1Q0A70.net
>>58
だからさあ…>>30じゃ関数と区別できないんだからだめだわ
手続き型的な関数はお前がどう思おうと概念的に存在する
だって、オブジェクト指向が登場する前から関数の概念はあったし、利用されているんだから

お前が関数とメソッドの区別も付かないレベルだということだけは分かったが

61 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:42:31.829 ID:mocROz3S0.net
>>60
俺はマジでわからなくなってきたので聞くけど
関数もメソッドもオブジェクトじゃないの?

62 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:42:48.245 ID:MUc1Q0A70.net
>>59
オブジェクト指向のコード書いたことあってそんなこと言ってる?
質問が的外れ過ぎて…

63 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:43:42.837 ID:MUc1Q0A70.net
>>61
メソッド(オブジェクト指向)
関数(手続き型)
と暗黙的に区別することは普通なんだが

64 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:45:32.113 ID:mocROz3S0.net
>>63
プログラミングの基本設計から違うので用語も使い分けるのが当たり前って話?
俺はガチでにわかなので「普通」がわからないんだ

65 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:46:26.754 ID:Fieg+Ngd0.net
>>60
ああ、「非OOPな手続き型言語でも名前の通りに動作しなければならないのは同じ」って意味か
それはその通り

66 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:47:33.960 ID:MUc1Q0A70.net
>>64
>>60読んでくれ
歴史的背景を踏まえての比較は自然だろ
分からなければ自分で勉強してくれ

67 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:48:43.121 ID:MUc1Q0A70.net
>>65
メソッドの定義は?と聞いているんだが…
お前の定義じゃ関数との区別ができないからだめだよ

68 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:48:55.159 ID:Fieg+Ngd0.net
>>62
何がどう的外れなのか、説明できるか?

>>63
そもそもその2つを区別するのが間違ってる
手続き型かどうか、という観点と、オブジェクト指向かどうか、という観点の間には、全く関係がない
Javaはオブジェクト指向の手続き型言語だし、
F#はオブジェクト指向の関数型言語だし、
Cは非オブジェクト指向の手続き型言語だし、
Lispは非オブジェクト指向の関数型言語だ

69 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:49:43.829 ID:ctF0PENr0.net
ゾイゾイ言ってないでさあ!

70 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:49:59.802 ID:Fieg+Ngd0.net
>>67
メソッドと関数の違いは、
メソッドはオブジェクトに対する操作である事、だな
関数は必ずしもそうとは限らない

71 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:50:37.835 ID:MUc1Q0A70.net
>>68
System.out.printと指定してあるのに別のメソッドを呼ぶ出せってアホな質問だと思わない?

72 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:51:17.618 ID:mocROz3S0.net
>>66
調べてみたことはあるけどにわかすぎて諸説ある中からどれが正しいか判断できないんだよねー
なのでこのままだとID:Fieg+Ngd0の解説をそのまま受け入れることになる

73 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:53:06.480 ID:MUc1Q0A70.net
>>68
>>70
じゃあ質問の仕方を変えよう

メソッドが関数より優れているのはどのような点か?

74 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:53:10.264 ID:Fieg+Ngd0.net
>>71
別のメソッド呼び出せなんて俺は言ってないぞ?

75 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:53:49.701 ID:Fieg+Ngd0.net
>>73
ポリモーフィングだろ?

76 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:54:18.806 ID:MUc1Q0A70.net
>>72
そうしたきゃそうすりゃいいんじゃね
俺としては十分説明したから分からない、調べる気がない奴にこれ以上詳しく説明する気はない

77 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:55:07.430 ID:2PtjDvv90.net
>>73
C++とかメソッドじゃなくてメンバー関数って呼ぶし
まずは用語の定義を明確にしとかんとあかん

78 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:56:16.752 ID:MUc1Q0A70.net
>>74
逆に質問だけど
System.out.print(1)まで指定してあって自作のクラスを呼び出すって何?
お前の考えるあるべきオブジェクト指向の望ましい手法にのっとっている実装方法を教えてくれ

79 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:57:19.273 ID:MUc1Q0A70.net
>>75
もっと具体的に説明すると?

80 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 21:58:12.551 ID:Fieg+Ngd0.net
>>72
歴史的な話をするのなら、JavaよりもSmalltalkとかObjective-Cあたりのほうがわかりやすい

81 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:01:36.998 ID:Fieg+Ngd0.net
>>78
「1」という数値を"1"という文字列に変換する、という行為には、必ずしも必然性はない
必然性がないのだから、「既定で用意されている」事はあってもいいが、「差し替えられない」というのはおかしい
だから、System.out.setFormatter(new Formatrer());みたいな事をすると、文字列変換仕様を変えられる、というのが好ましい
System.setOut(new PrintStream(new Formatter()));でもいいけど
Formatterの中に、「1」→"1"みたいな変換の方法が各種定義されてるイメージ

82 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:02:19.164 ID:Fieg+Ngd0.net
>>79
データの意味に応じて、メソッドの動作が適切に変化すること

83 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:03:37.984 ID:MUc1Q0A70.net
>>81
「一」として出力する機能は標準じゃないとお前も認めているんだから
System.out.print(1)に限定する必要がなさ過ぎて…

だから質問が的外れだと言っているんだが…

84 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:04:50.153 ID:Fieg+Ngd0.net
>>83
標準じゃなかったとしても、そうしたいケースはあるだろう?
だから、System.out.print(1);で"一"が出力されるようにできる必要がある

85 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:04:57.074 ID:MUc1Q0A70.net
>>82
え?お前間違ってるよw
>>44

86 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:05:40.645 ID:mocROz3S0.net
>>76
なるほど
適当に煽って情報を引き出そうとしたのは失礼だったな、ごめん

87 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:05:51.774 ID:Fieg+Ngd0.net
>>85
おっとすまんな、「オブジェクトの意味に応じて」だったわ

88 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:06:00.815 ID:E/mBiOAe0.net
cとかでクソ面倒くさい文字列操作経験した後に
オブジェクティブ指向の文字列操作経験するとホントありがたみを感じる

89 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:06:17.403 ID:MUc1Q0A70.net
>>84
ねーよw
標準クラスじゃないんだから呼び出しも当然System.out.print(1)ではねえわ

90 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:08:57.809 ID:MUc1Q0A70.net
>>87
俺が言ってるのは
関数とメソッドの区別を意識すると俺の最初の定義のようなトーンが出てくるということ
お前自身がそうしたとおりな

で、それに対して間違っているというのは揚げ足取りでしかないってこと
それはお前自身がたった今実演したw

91 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:09:56.020 ID:Fieg+Ngd0.net
>>89
>>81みたいにすれば、標準クラスでもそうやって"一"が出力できるんですよ?

92 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:11:33.473 ID:Fieg+Ngd0.net
>>90
すまぬ、「間違ってる」を結構言いまくってる気がしたので、どの「間違ってる」に対するものなのか明らかにしてくれ!

93 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:12:18.443 ID:2PtjDvv90.net
>>84
需要の高さと代替手段の敷居の高さ
汎用ライブラリってのはその辺踏まえて設計しなきゃならん
OOだって同じで、ドメイン・コンテキストによってあるべき姿は変わってくる
俺はJavaは知らんけど、たぶん君はその辺見えてないのでは?

94 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:12:47.473 ID:MUc1Q0A70.net
>>91
だからさあ、「一」として出力する機能は標準で用意する必要がないとお前も認めたよ…

95 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:13:50.296 ID:MUc1Q0A70.net
>>92
>>44だよ
数レス前に指摘したことも覚えていないって…

96 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:13:55.591 ID:mocROz3S0.net
>>90
ガチにわかからするとどこで定義を明示したかがわからないんだぜ
>>60も歴史的な背景を挙げて暗示しただけ?

97 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:14:55.723 ID:qZlQeVAc0.net
OOP委員会みたいなのが定義決めることにでもなってるならともかく
現状のOOPってそこまでしっかり定義できるもんじゃないだろ

98 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:15:08.896 ID:MUc1Q0A70.net
>>96
>>41
>>44
遡って…

99 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:19:00.854 ID:mocROz3S0.net
>>98
俺プラグラミングに対する知識はない上で突っ込むので「じゃあお前はどう定義する?」って突っ込まれると非常に困るんだけど
>>44>>41の定義を否定しただけで定義し直してはいなくね?

100 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:19:57.448 ID:Fieg+Ngd0.net
>>94
俺が認めたのは『数値の1を「一」という文字列に変換する機能を用意する必要がない』という事であって、
『数値の1を「一」という文字列に変換する機能を自作したとしても、それを使える必要がない』ではないんだよ

>>95
>>41>>82は全く意味が違うんだが……
>>82は、「オブジェクトというデータ」の事であって、「オブジェクトが保持するデータ」の事ではないんだよ

101 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:20:20.152 ID:MUc1Q0A70.net
>>99
そうだよ
だから定義を明示しろって聞いていただろ
日本語とIDをよくチェックしような

102 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:23:03.689 ID:mocROz3S0.net
>>101
じゃあなんで
>俺の最初の定義のような
ってレスしたの?
勢い?

103 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:23:55.667 ID:MUc1Q0A70.net
>>100
機能を用意すれば使えるのは当然過ぎて…

「オブジェクトというデータ」と「オブジェクトが保持するデータ」が
まったく違うものだと言うなら関数とメソッドの区別もちゃんとしたほうがいいぞ

104 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:24:54.707 ID:FF9Pp5hl0.net
さぁSmalltalkに還ろう

105 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:25:04.317 ID:MUc1Q0A70.net
>>102
俺の最初の定義が>>41なんだが…
面倒だからそろそろ無視させてもらうわ

106 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:25:41.033 ID:MUc1Q0A70.net
>>103
機能を自作って意味な

107 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:26:11.601 ID:Fieg+Ngd0.net
>>103
そう、機能を用意すれば当然の事
だがその当然の事を、PrintStreamはできない
ゆえに設計が間違ってる

で、お前は関数とメソッドの違いは何だと思ってるの?

108 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:26:20.562 ID:mocROz3S0.net
>>105
ごめん完全に勘違いしてた

109 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:26:47.382 ID:MUc1Q0A70.net
>>107
クラスを作るなりすりゃいいだけだろ

110 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:29:52.528 ID:MUc1Q0A70.net
>>107
後半については>>41で回答したろ

111 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:30:56.074 ID:Fieg+Ngd0.net
>>109
もちろん、PrintStreamをラップするような別クラスを作ればいける
そんなのは当たり前
でも、だったらそもそもPrintStreamにint出力を用意してる意味って何?
System.outはOutputStreamにして、
最初から既定のラッパークラスだけ用意すればよかったんじゃないの?

112 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:31:42.643 ID:Fieg+Ngd0.net
>>110
だから、オブジェクトがデータを保持する必要はない
オブジェクトはメソッドだけ保持していればいい

113 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:35:19.708 ID:MUc1Q0A70.net
>>111
もっときれいな設計はあったろうね
できないとかおかしなことを言わなければ良かったのにとは思うけど

Javaの標準クラスの設計は改善の余地があるということを言いたいってことかな?
それならそうだね
それはみんなが認めていること
でもまあどんな言語でも癖はあるし、「一」を出力するみたいなケースで多少のコードが必要になるからJavaはだめって判断するのもどうかと

114 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:36:32.348 ID:MUc1Q0A70.net
>>112
それは知ってるよw
俺は関数とメソッドの区別を強調して答えたのであって、厳密さにかける点があったことは認めただろ

115 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:36:57.727 ID:Fieg+Ngd0.net
>>113
まあ、「一」の例はともかくとして、改善の余地があるってことよ
それが>>27の意

116 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:39:24.924 ID:MUc1Q0A70.net
>>115
改善の余地があるということは同意する
でも、だからJavaは古いみたいな評価をするのは同意できんな

117 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:39:52.248 ID:Fieg+Ngd0.net
>>114
多分、俺はお前の発言の意図がよくわかってない
>>41の意図が「オブジェクトとメソッドという関係をC的な構造体と関数として表現する時、オブジェクトは構造体であるのでデータとしてメンバー変数を持つ」なら、まったくもって正しいな

118 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:41:24.928 ID:MUc1Q0A70.net
>>117
関数と比較してのメソッドの利点という観点から解釈して欲しい

119 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:42:59.871 ID:Fieg+Ngd0.net
>>116
確かに、古いのは標準ライブラリの設計であって言語そのもののせいではないから、表現が間違ってたな
言語自体は今もOOP言語の代表例であり続けるくらいには現代に通用する
(enumとかラムダとか、変態的な実装でカバーしてる部分はあるとはいえ)

120 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:44:46.500 ID:Fieg+Ngd0.net
>>118
メソッドから見た場合、というなら理解した
オブジェクトが実際にデータを保持するかどうかというより、
メソッドがオブジェクトのデータを利用できるかどうか、という観点か

121 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:46:52.739 ID:MUc1Q0A70.net
>>120
関数の場合、処理で使うデータは基本的に引数で指定する
メソッドの場合、基本的にオブジェクトを参照する

この差は実際の開発において非常に大きい

122 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:51:45.566 ID:Fieg+Ngd0.net
>>121
うーん……そこはあまり大した差じゃないと思うんだよな
関数にthisに相当する第一引数構造体を渡しとけばいいだけだから
まあこれは典型的な「CによるOOP」だから、こんな使い方をする関数はメソッドだと主張されるとその通りなんだが

123 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 22:55:34.728 ID:MUc1Q0A70.net
>>122
そんなんじゃ構造体を変えたら全部変更が必要だろ

124 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:05:13.806 ID:Fieg+Ngd0.net
>>123
んなこたーない
その気になればちゃんとできる
Javaで全部staticメソッドで書いても、読んだ奴がキレるだけで書くだけは書けるのと同じ

125 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:07:30.088 ID:MUc1Q0A70.net
>>124
「Javaで全部staticメソッドで書いても、読んだ奴がキレるだけで書くだけは書ける」
なんて最悪だろ
それと同じということはだめってことじゃん…

大違いということを明確に示している

126 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:10:41.254 ID:Fieg+Ngd0.net
>>125
PythonとかPerlは、Java的に言えば「全部static」だぜ?
呼び出し方として 第一引数.メソッド(第二引数以降) と呼ぶだけで

127 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:13:45.057 ID:MUc1Q0A70.net
>>126
メソッドの利点を自分でなんと言ったか読み直してから言ってくれ

128 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:14:14.910 ID:Fieg+Ngd0.net
いや全部staticってのは違うか
ちゃんと第一引数に応じて動的ディスパッチされるから

129 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:15:46.891 ID:Fieg+Ngd0.net
>>127
現実に、CでOOPを実現してるライブラリなんてごろごろしてるし……
もちろんデータの意味に応じて内部的にswitchして適切な関数を呼び出してるぜ?

130 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:18:41.312 ID:MUc1Q0A70.net
>>129
呼び出し方法が固定のライブラリを前提に語ることが間違っているんだが…

131 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:26:00.466 ID:Fieg+Ngd0.net
>>130
でも、ライブラリも全部自作する状況で、
クラスはライブラリ側でしか追加できないって事にするなら、何もおかしな事はないだろう?

132 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:26:43.440 ID:2/1r9gLm0.net
お前ら話長いわ

133 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:27:17.331 ID:mocROz3S0.net
今優勢なのはID:MUc1Q0A70に見えるけど
相手の言い分を引き出して否定する手法によるものなんだな
ガチで語るのがすげーめんどくさいレベルの話になってるとは思うけど

134 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:28:48.377 ID:MUc1Q0A70.net
>>131
自作する前提だからこそ変更を想定するんだろ

135 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:30:09.343 ID:Fieg+Ngd0.net
>>134
まあ、その気になれば変更も比較的簡単にできるけどね
関数ポインタぶっ込むだけだから

136 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:30:48.204 ID:MUc1Q0A70.net
>>133
ディスカッション手法の差じゃないぜ…
>>41を具体的に話しているだけで最初っから俺の主張はオープンにしてるし、変わっていない

137 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:32:13.083 ID:MUc1Q0A70.net
>>135
データの持たせ方を変えたら全面改修になるんだが

138 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:32:26.866 ID:Fieg+Ngd0.net
ID:MUc1Q0A70は、理解さえすれば別に間違った事は言ってないんだよ
ちょっと俺に伝わってないだけ

139 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:33:06.334 ID:mocROz3S0.net
>>136
にわかから見るとそう見えるんだお
ガチレベルの人達同士ではたぶん通じてるんだろうけど
それはそれでさびしい!

140 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:33:07.758 ID:Fieg+Ngd0.net
>>137
「データの持たせ方を変える」ってのはどういうのを想定してるんだ?

141 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:33:37.016 ID:Fieg+Ngd0.net
>>139
ごめんね!
もっと知りたい事とかあったらいろいろ訊いてくれていいよ!!

142 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:40:02.775 ID:MUc1Q0A70.net
>>140
構造体をやめて配列にするとか
持たせる項目を変える、個数を変えるとかも場合によっては全面的な改修になる

そもそも構造体にデータを持たせるとか変更箇所が不明瞭になるから
オブジェクト指向的には避けるべきやり方だろ
オブジェクト指向のそもそもの目的に立ち返って考えよう

143 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:41:56.667 ID:Fieg+Ngd0.net
>>142
ならない
どうせgetter/setterに相当するアクセサ関数作るので、
Javaでフィールド構造を変えた時と同程度にしか変更点はない

144 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:45:44.879 ID:Fieg+Ngd0.net
ああ、もしかして>>142は、「構造体を渡す」っていうのが「構造体を定義して渡す」だと思ってるのか?

んな事しねーよwww
使う側は不完全型へのポインタなりvoid*なり、兎に角直接構造体の値にアクセスできない形で使うから、
構造体の中身をどんだけ派手に変えようが、メソッドに相当する部分の中身しか変わらない

145 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:46:19.205 ID:mocROz3S0.net
ガチな人達が根拠を明示した議論キター!!

146 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:47:37.352 ID:Fieg+Ngd0.net
>>145
お前は何を喜んでるんだよホントにw

147 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:48:40.538 ID:MUc1Q0A70.net
>>143
構造体から配列に変えて大幅改修にならないとは思えないんだが…
それとアクセサ関数を使わずに直接参照するコードを書かない保障がない

148 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:49:48.723 ID:Fieg+Ngd0.net
>>147
保障はある
それが>>144

149 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:52:35.475 ID:wC5KeClE0.net
プログラミング初心者だが最近Java使って感動したわ
所謂ポリモルフィズムというやつ。同じインターフェースを持ったクラスなら内部の処理が全然違っても、外からは同じように扱えるのが便利すぎる
ゲームプログラミングとかだと絶大な威力を発揮しそう

150 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:53:28.821 ID:MUc1Q0A70.net
>>148
自作しているライブラリという前提なんだから構造体の構造も分かってるだろうが

151 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:54:22.866 ID:mocROz3S0.net
>>146
世界が拡がる感があって楽しい

152 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:56:27.971 ID:Fieg+Ngd0.net
>>150
じゃあお前は、Javaで自作ライブラリのクラスにprivateメンバーがあったら、
それをクラス外から使いたいがためにpublicに変更するの?
「構造体の構造をわかってるから使う」ってのはそういう事だぞ?

153 :以下、\(^o^)/でVIPがお送りします:2017/04/30(日) 23:57:43.159 ID:MUc1Q0A70.net
>>152
privateにすればアクセスできないという保障があるという話だぞ

154 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:00:00.728 ID:xhPrJx840000000.net
>>153
もちろん、同じ事をCでやる場合、アクセスできない保障があるよ
具体的には、こういう内容が書かれてるヘッダーをインクルードする

typedef struct hoge* LPHOGE;

実際のstruct hogeにはint m_hogeというメンバーがあるとして、
お前はLPHOGEを使ってm_hogeにアクセスできるか?
なんかわけのわからない無理やりなポインタ操作とかをしない限り絶対にできないだろ

155 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:01:00.473 ID:xhPrJx840.net
なんか時間がすごかった

156 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:03:56.161 ID:j0NFBoQ+0.net
>>154
struct hogeを直接使わない保障がないという話なんだが…

157 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:05:55.881 ID:xhPrJx840.net
>>156
ない
何故ならstruct hogeはヘッダーではなく.cの側に入れるから
もちろん、そのソースからコピペするとか、.cを#includeするとか、そういう糞みたいなコードは書こうと思えば書けるけど、
だったらJavaだってprivateをpublicに書き換えて使えるから同じくらい危険だよね

158 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:06:43.259 ID:j0NFBoQ+0.net
>>154
それと複数のオブジェクトに相当するようなデータを渡すときどうするんだ?

159 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:07:34.016 ID:xhPrJx840.net
>>158
Javaだとどうやるの?

160 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:08:08.040 ID:1dx6Bn8/0.net
20時半ばからずっとレスバトルしとるんか・・・

161 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:10:10.978 ID:j0NFBoQ+0.net
>>159
Listとか使うな

162 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:10:40.943 ID:xhPrJx840.net
>>161
Cにも配列はあるよ

163 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:11:43.542 ID:j0NFBoQ+0.net
>>157
そうするならsetterの変更が必要なときに大幅改修だな

164 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:13:00.274 ID:xhPrJx840.net
>>163
setter関数以外のどこを直せと?

165 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:14:00.007 ID:j0NFBoQ+0.net
>>164
setterを呼び出しているところ全部に決まってるだろw

166 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:14:25.026 ID:xhPrJx840.net
>>165
Javaはsetterを変更したら全部直さなくていいの?

167 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:15:15.592 ID:Q6+onJ7wM.net
汎用機でCOBOLやJCLを未だやってる俺が来た

168 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:15:27.665 ID:j0NFBoQ+0.net
>>166
オブジェクトを渡しているなら呼び出し側は変更いらないね

169 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:17:04.661 ID:xhPrJx840.net
>>168
え?
単に関数定義が変わるだけならCでも呼び出し側の変更なんて要らないよ?
Cで呼び出し側の変更が必要って事は、関数名が変わるとか、引数や戻り値の型が変わるとかだよ?
それってJavaでも呼び出し側の変更が絶対必須だよ?

170 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:17:51.100 ID:j0NFBoQ+0.net
>>169
データ項目が変わるケースが前提だろ?

171 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:18:56.913 ID:xhPrJx840.net
>>170
データ項目が変わっても、呼び出し側には一切影響ないんだけど
Cのポインタはちゃんと理解してるか?

172 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:21:58.885 ID:j0NFBoQ+0.net
>>171
データをセットするところと受け取る側は変わるだろが

173 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:22:49.790 ID:d5LAS92j0.net
>>154
ちょっと初心者の質問なんだが
このLPHOGEはなんでm_hogeにアクセスできないの?
LPHOGEもhoge型なんでしょ?

174 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:22:54.914 ID:xhPrJx840.net
>>172
Javaで例を書いてくれ、俺がCで書き直す

175 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:25:41.550 ID:j0NFBoQ+0.net
>>174
たとえばデータ項目が2つの文字列しかないと思っていたけど
項目が追加されたし、文字列の1つは数字にした、複数の値を持つ項目もあると分かった
みたいな想定でいいよ

176 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:26:49.157 ID:xhPrJx840.net
>>173
この文ではstruct hogeという何らかの構造体がある事だけは示しているけれど、
それの中身までは定義していない
別途、struct hogeの中にm_hogeがある事を示してやればm_hogeが使えるようになるけれど、
その『別途』は行なわない=使えるようにはならない

177 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:28:04.459 ID:j0NFBoQ+0.net
>>175
オンラインショッピングサイトで
最初は1個の商品と個数だけ持っていれば十分だと思ったけど
複数商品を同時に買うこともあるし、税金情報も必要だとわかったみたいなイメージで

178 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:30:49.682 ID:xhPrJx840.net
>>175
とりあえず、既存のgetter/setterの定義自体は変わらない、って事でいいんだな?
つまり、文字列の1つは数字になったけど、getter/setter自体は何故か文字列入力のまま、みたいな

LPHOGE lphoge = hoge_create();
hoge_set_a(lphoge, "aaa");
hoge_set_b(lphoge, "1"); // 文字列のままでよい
// 追加項目cや、配列を指定するdへの追加関数が増えても、使用しないままなので変更は不要

179 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:31:37.436 ID:d5LAS92j0.net
>>176
要するにcって型だけインクルードできるって事?
それは型の名前だけ使えるだけで中身のメンバにはアクセスできない仕様になってるの?

180 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:33:44.261 ID:j0NFBoQ+0.net
>>178
商品をカートに追加する処理は?

181 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:34:12.009 ID:xhPrJx840.net
>>179
そういうこと
もし型名すら都合が悪ければ、void*という「型すらないけどとにかくポインタ」も使えるぞ
JavaとかのObject型に近いけど、メソッドの類は一切ない

182 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:34:59.232 ID:xhPrJx840.net
>>180
だからJavaで書けって
同じようにできるぞ

183 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:35:10.996 ID:d5LAS92j0.net
>>181
じゃあメンバを使いたい時はどうしたらいいの?

184 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:36:03.956 ID:xhPrJx840.net
>>183
char* a = hoge_get_a(lphoge);

185 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:36:10.726 ID:j0NFBoQ+0.net
>>182
いやいや例としては十分明確だろw

186 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:37:20.273 ID:aoG1nkEG0.net
ちょっと時間かかるまで待てって言うなら外野が保守するが

187 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:37:27.932 ID:d5LAS92j0.net
>>184
ちょっとよくわからないw
日本語で説明頼む

188 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:38:06.821 ID:xhPrJx840.net
>>185
俺は「Javaで書いた、Cじゃ絶対これできねーだろってプログラムを挙げてくれ」って言ってんの
具体的な用法とかどうでもいい

189 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:39:09.469 ID:j0NFBoQ+0.net
>>188
カートに商品を追加する処理
>>177を前提に頼むわ

そうすりゃ俺の言いたいことも伝わるだろうから

190 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:40:42.361 ID:j0NFBoQ+0.net
>>188
あと具体的な用法は関係ないというのは全然違うだろ
実際上の違いがあるかが重要

なんとかかんとかやることはできれば一緒だろっていうなら評価方針が違うから
話が噛み合わないのが当然

191 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:41:21.202 ID:AAn8VSU60.net
わからない僕がわかるように簡単に教えて
オブジェクト指向って何

192 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:42:12.902 ID:aoG1nkEG0.net
前提はオブジェクト指向プログラミングと手続き型プログラミングの違いを浮き立たせるって事でいいんだよな

193 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:45:27.034 ID:xhPrJx840.net
>>187
Cには「宣言」と「定義」の2つの概念がある
「宣言」は「こんな事がありますよ」で、「定義」は「具体的にこうですよ」だ
>>154のコードだとstruct hogeは宣言されているけれど定義されていない
そして同様に、宣言だけして定義されてないhoge_get_a()という関数が(>>154には省略したが)ある
宣言は何度やってもいいので、「使用側」は全部宣言でいく

一方、実際のstruct hogeの中身は、「定義側」の.cに書く
hoge_get_a()という関数も、ここに定義する
このhoge_get_a()の定義から見ると、ちゃんとstruct hogeが定義されているので、別に何の問題もなく使える
だからstruct hogeからm_hogeを取得して、そいつを平然と返してやれば万事解決

194 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:46:55.120 ID:xhPrJx840.net
>>189
LPCART lpcart = cart_create();
LPPRODUCT lpproduct1 = product_create();
LPPRODUCT lpproduct2 = product_create();

cart_add(lpcart, lpproduct1);
cart_add(lpcart, lpproduct2);

こういうこと?

195 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:48:22.853 ID:I3mp0qcr0.net
死ねゴミ

196 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:49:41.873 ID:j0NFBoQ+0.net
>>194
まあそんなイメージだね

cart_addを呼び出した後のlpcartはlpproduct1とlpproduct2のデータをコピーして持っているんだろうか?

197 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:51:35.158 ID:xhPrJx840.net
>>196
そのままポインタ持ってるだけだろ
そうすると、データ破壊のタイミングが悩ましいけど、その辺はOOPというよりGCの問題なので割愛

198 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:51:45.274 ID:d5LAS92j0.net
>>193
という事はその「struct hogeの中身は、「定義側」の.cに書く。hoge_get_a()という関数も、ここに定義する」
というファイルはそのファイルの中ではプライベートな領域って事になるね
で、「宣言部分」はパブリックな窓口になってる
おいおい
オブジェクト指向出来ちゃうじゃんw

199 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:53:49.372 ID:z9YsubYc0.net
ポインタ型にすると元の構造体が不完全(ソースコード上から定義が見つからない)状態でも
どこかで定義されててコンパイル・リンク時に見つかることを期待して「ポインタだけ」なら扱えるんだよね

200 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:55:14.060 ID:j0NFBoQ+0.net
>>197
ポインタとして持っているのか?
それじゃ商品単価、商品別合計金額、注文合計金額はどこで持つんだ?

この辺りはいかにも変更が発生しそうだから、現時点での仕様とともに変更が発生しても
対応できるようにしたいよな

201 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:55:45.334 ID:xhPrJx840.net
>>198
そうだよ、できちゃうんだよw
言語側のサポートがない分くっそめんどくさいけどな!!!

202 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:56:51.026 ID:d5LAS92j0.net
>>201
ありがとう
目からウロコが落ちた
cってそうやるのか

203 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:57:52.109 ID:xhPrJx840.net
>>200
ポインタが示す先に決まってんだろうが
そもそもcart_create()なりproduct_create()なりしてできたのもポインタだぞ?
そして、それらの中身がどうなってるかは、cart_create()の中身が知っている
コンストラクタが知ってるのは当然だよねw

204 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 00:59:06.230 ID:j0NFBoQ+0.net
>>203
業務システムの開発経験ないだろ?

205 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:00:16.333 ID:aoG1nkEG0.net
問題は業務システムの開発経験の有無じゃなくね
メソッドと関数の差異の話だろ

206 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:00:55.499 ID:xhPrJx840.net
>>202
実際にそういう設計思想で作られてるライブラリの中で、一番有名なのはたぶんWinAPI
例えば、HANDLEを作る関数はいろいろあるけど、だいたいCloseHandle()に渡すと閉じられるポリモーフィング仕様
でも稀によくCloseHandle()じゃ閉じられないHANDLEがあって、どこの馬鹿が設計したんだよMS死ねってなる

207 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:01:04.426 ID:j0NFBoQ+0.net
>>205
ポイントが伝わっていないように感じるということ

208 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:01:15.404 ID:xhPrJx840.net
>>204
業務システムだったらどう書くの?

209 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:01:39.483 ID:xhPrJx840.net
>>207
伝わってねえよ
だからJavaのコードで書けって言ってんだよ

210 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:02:44.025 ID:j0NFBoQ+0.net
>>208
まず回答してくれ
会話がうまく成立していないように感じるから
その理由がお前が業務しシステムの開発経験がないことに起因しているのか確認しないと
適切な対応を判断できない

211 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:03:18.765 ID:aoG1nkEG0.net
>>207
そのポイントって業務システムの開発経験の有無で分かれるような事じゃないよね
手続き型とオブジェクト指向の違いに対する理解度の話だよね

212 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:03:51.286 ID:d5LAS92j0.net
>>206
なるほど
ありがとう
それWindowsアプリを作る時に使うやつだよね

213 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:04:02.460 ID:j0NFBoQ+0.net
>>211
実システムでどのような変更が想定されるかの理解の有無

214 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:04:44.333 ID:xhPrJx840.net
>>210
この道10年以上仕事やってるよ

215 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:05:27.316 ID:z9YsubYc0.net
このスレを見る限りではOOPというのは問題ばかり生んで
生産性はそれ程上がらないように錯覚するね

216 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:05:36.339 ID:xhPrJx840.net
>>213
そんなものは関係ない、と言ってるの
そこの変更を考慮するからCが糞ならば、
クラスの中身を書き換えなければならないJavaも全く同じ理由で糞なんだよ

217 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:06:42.753 ID:aoG1nkEG0.net
>>213
そこも今までの議論のポイントじゃなくね…?

218 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:07:59.999 ID:j0NFBoQ+0.net
>>214
あれ、そうなのか…

それじゃカートに入れてから注文を確定するまでの間に商品の価格が更新されることもある
とかはありがちな業務要件として想定できるよな?
で、その場合にカートの商品の価格を更新するか、更新しないかの判断とか
仕様変更としてありがちだよな

だから>>203みたいな言い方は違和感あるなあ
言ったことを踏まえて考えてくれ

219 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:08:43.258 ID:j0NFBoQ+0.net
>>217
オブジェクト指向の目的の根幹に関わるポイントだけど

220 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:10:09.356 ID:xhPrJx840.net
>>218
ああ、そういう事な
それは別に問題ないよ
product_get_price()みたいな関数が、内部でポインタの中身じゃなくてDBを呼びにいけばいいだけだから

221 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:11:51.451 ID:j0NFBoQ+0.net
>>220
価格が更新された場合にカートの商品の価格を更新するか、更新しないかは変更される
つまりどちらのケースもあるって前提だぜ

222 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:11:59.796 ID:aoG1nkEG0.net
>>219
ほんとだ!

223 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:15:48.785 ID:xhPrJx840.net
>>221
ならこうだ

int product_get_price(LPPRODUCT lpprod)
{
 int product_id = lpprod->m_product_id;
 return db_get_price_from_product_id(product_id); // 更新する場合
 // return lpprod->m_price; // 更新しない場合
}

このproduct_get_price()を使う側は、どちらの場合であっても一切の変更は不要

224 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:21:26.782 ID:j0NFBoQ+0.net
>>223
ありがちな要求として
更新する場合にそれだと毎回データベースを見に行くのでシステムのパフォーマンスが悪化しちゃいました
変更があった場合だけ価格を更新するようにして欲しい

225 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:22:59.335 ID:xhPrJx840.net
>>224
int product_get_price(LPPRODUCT lpprod)
{
 int product_id = lpprod->m_product_id;
 return db_get_price_from_product_id_with_cache(product_id);
}

これでよくない?

226 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:24:27.843 ID:j0NFBoQ+0.net
>>225
そのcacheの実装の概略は?
変更された商品とカートの商品との関連を把握する必要があるよね?

227 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:25:04.220 ID:z9YsubYc0.net
ID:j0NFBoQ+0 は自分が言ってきた要求を一通りOOP言語で模範解答する用意があるということ?

228 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:26:58.589 ID:j0NFBoQ+0.net
あんまりしつこく聞くのもあれだから結論を先に言うと
実際のシステムでは変更が頻発するからそのときの変更対象範囲を明確に把握できる必要があって
オブジェクトで区切るということはそれ自体にメリットがあるということ
それと時間の概念が入ってくるとオブジェクト同士の協同が必要になるから
たんなる構造体だけでは対応できないだろう

229 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:27:49.213 ID:j0NFBoQ+0.net
>>227
概略はもちろん
ってかオブジェクト指向で普通にできるから

230 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:28:36.848 ID:xhPrJx840.net
>>226
論点は『使う側で変更する必要があるかどうか』だろ?
もうそれは示したんだから、これ以上は必要ないだろ?
それとも、Javaだとキャッシュの実装をしなくてもいいの?

231 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:29:11.176 ID:j0NFBoQ+0.net
>>230
>>228の後半読んで

232 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:31:17.049 ID:xhPrJx840.net
>>231
だから、全部Cでもできるよ?

233 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:32:11.547 ID:j0NFBoQ+0.net
>>232
できなくはないだろうけど、適しているか
じゃあcacheの概略は?

234 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:32:34.106 ID:z9YsubYc0.net
時間の概念が入ってくるとオブジェクト同士の協同が必要ってどういう意味なの
独自の用語を使わないで説明してくれ

235 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:32:59.536 ID:j0NFBoQ+0.net
>>234
オブジェクト間の相互作用

236 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:33:11.066 ID:xhPrJx840.net
>>233
Javaと全く同じように書けるので、ためしにJavaで書いてみてくださいよ

237 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:34:30.382 ID:xhPrJx840.net
キャッシュの概略はあれだな
キーを作ってmemcachedに投げる

238 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:34:30.639 ID:j0NFBoQ+0.net
>>236
商品に対応したオブジェクトを作るんだから
価格が更新されたら、その商品を保持しているカートに通知することなんて簡単だよ

239 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:34:51.521 ID:xhPrJx840.net
>>238
だから、その「簡単」を書いてみてくださいよ^^
書けないの?wwwww

240 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:36:02.745 ID:j0NFBoQ+0.net
>>239
コードを書けなんて俺はお前に要求してないだろw
概略は書いたんだからお前もCの実装での概略を書けよ

価格が更新されたらどうすんの?

241 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:36:29.506 ID:xhPrJx840.net
>>240
Javaと全く同じように書きます、と言ってるの

242 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:37:10.804 ID:z9YsubYc0.net
コードが書けないSEが大口叩いてる職場は大変だな

243 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:37:31.509 ID:j0NFBoQ+0.net
>>240
だって、構造体しかないんでしょwww
構造体しかないのにオブジェクト間の相互作用を実装できるってのが謎過ぎて

244 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:38:03.675 ID:xhPrJx840.net
>>243
だから、試しにJavaで書いてみて下さいよwwwww

ちなみに俺はJavaでも書けない

245 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:39:50.338 ID:j0NFBoQ+0.net
>>244
オブジェクトがあるのにオブジェクト間の相互作用が書けないってお前の実力がないだけだよwwww

オブジェクトがある→オブジェクト間の相互作用が可能

構造体しかない→「謎」→オブジェクト間の相互作用が可能
の違いは分かるだろ

この「謎」の概略を説明してくれよ

246 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:41:16.222 ID:xhPrJx840.net
>>245
そもそもお前の言う「オブジェクト間の相互作用」って何?
単にobserverに通知してそこから変更するってだけ?

247 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:43:16.808 ID:j0NFBoQ+0.net
>>246
イメージ的にはそんな感じ

248 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:44:20.856 ID:xhPrJx840.net
>>247
ならこれでいいじゃん

LPPRODUCT product_create()
{
 LPPRODUCT prod = (LPPRODUCT)malloc(sizeof(struct product));
 product_init(prod);

 observer_instance()->add_product(prod);

 return prod;
}

249 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:46:42.509 ID:xhPrJx840.net
まあ、>>245の「謎」について答えるのなら、
「構造体へのポインタを、Javaでいうところのオブジェクトへの参照と見なす」
が答えだな

250 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:48:48.224 ID:j0NFBoQ+0.net
>>248
Cでもこんな書き方できたっけ?
observer_instance()->add_product(prod)

よく分からんけど、通知を受け取ったカートでの処理も書く必要あるし、
そこまでやるならオブジェクト指向言語使えよって感じだな

251 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:50:19.257 ID:2Ltq77CQ0.net
先月からこの業界に入った俺にはついていけない話題だった

252 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:50:39.883 ID:xhPrJx840.net
>>250
もちろん、OOP言語を使った方が早いに決まってらーな
OOP言語が全部コンパイラ側で実装してる部分を自前実装する事になるんだから

253 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:51:03.005 ID:j0NFBoQ+0.net
>>252
Cでもこんな書き方できたっけ?
observer_instance()->add_product(prod)

254 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:53:13.689 ID:j0NFBoQ+0.net
>>190
なんとかかんとかやることはできれば一緒だろっていうなら評価方針が違うから
話が噛み合わないのが当然

と言っといたけどな

255 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:53:21.525 ID:xhPrJx840.net
>>253
ああ、そこはミスだな

observer_add_product(observer_instance(), prod);

がより正しい

256 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:55:27.664 ID:j0NFBoQ+0.net
>>255
これだとコードの読みやすさも違うよな
現実的なケースを想定すると無理やり感が強まる

257 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:56:54.142 ID:xhPrJx840.net
>>256
別に、無理やりじゃないとは言ってないぞ?
関数をメソッドとして使える例、でしかないんだから

258 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 01:57:42.528 ID:j0NFBoQ+0.net
>>257
だったら>>190


259 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 02:00:53.087 ID:Km/u7Zi2a.net
オブジェクト指向は設計方法で
言語とか関係ないんじゃなかったか
オブジェクト指向言語だと書きやすいってだけだったと思う

260 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 02:03:27.092 ID:xhPrJx840.net
>>258
まあ、言いたい事はわかる
でもそれって、Cを「第一引数.関数(第二引数以降)」っていう書き方にできる言語(それしか変わらないのだから当然非OOP)があれば、それだけで解決じゃない?
OOP言語の優位性では全くない

261 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 02:03:33.396 ID:j0NFBoQ+0.net
>>259
「オブジェクト指向言語じゃなくてもオブジェクト指向の考えは適用できる」というだけで
「オブジェクト指向言語のほうがオブジェクト指向に適していることはない」ということではない

262 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 02:05:47.178 ID:j0NFBoQ+0.net
>>260
オブジェクト指向のメリットを分かってないだろ…
ちょっと風呂入ってくるからまだ話したければメリットを列挙しといて

263 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 02:14:09.247 ID:xhPrJx840.net
>>262
大事なのはOOP的思考の方であって、それを簡単に書けるかどうかは別問題
ならば、その「簡単に書けるかどうか」の部分がほぼ同等になるのなら、
同じOOP的思考を同じように実現できるわけだから、全く差はないわけじゃん?って話

264 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 02:22:31.669 ID:j0NFBoQ+0.net
>>263
コードの分かりやすさ、区切りも重要だといったが

265 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 02:23:15.391 ID:z9YsubYc0.net
GTK+とかCでOOP風コーディング方法実現してるしな

266 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 02:25:37.409 ID:xhPrJx840.net
>>264
だから、それが同じになるんでしょ?

267 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 02:46:26.258 ID:z9YsubYc0.net
>>120-130あたりの話とループしてね?
OOP的には許されるの?

268 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 03:01:30.848 ID:xhPrJx840.net
>>267
そもそもOOPは「書き方」なんてものは定義してない
オブジェクト.メソッド(引数) なんて書き方は、単にJavaがそうだったからそうなってるに過ぎない
Obj-Cなんかだと [オブジェクト セレクタ1:引数1 セレクタ2:引数2 …] なわけだし

269 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 03:02:22.820 ID:xhPrJx840.net
セレクタ1、セレクタ2じゃなくてキーワード1、キーワード2だな
キーワード:を全部繋げたのがセレクタだ

270 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 03:24:52.253 ID:z9YsubYc0.net
でも言語が思考を制限するってよく聞くよな
OOP的思考だと思っていたことが実はJava的思考だっただけなんじゃないのか
OOPのデファクトスタンダードぶってるJavaの罪は重い

それよりJavaの模範解答マダァ-? (・∀・ )っ/凵⌒☆チンチン

271 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 03:26:03.065 ID:xhPrJx840.net
まあ、だからといってSmalltalk式が広まっても嫌だったけどなw

272 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 04:47:22.437 ID:k8+NZN5j0.net
勝手にスレ伸びててワロタwww

273 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 06:46:21.820 ID:HpZwJ0Av0.net
ぞいぞい言ってないでさあ!

274 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 07:28:15.904 ID:wih9ie510.net
>>270
OOPの根幹は一緒
表記の違いなど些細な事は本質じゃないから気にするなよ

275 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 08:16:08.994 ID:nOWXgW5Z0.net
気軽にスレ開いたら専門板みたいなバトル始まっててワロタ

276 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 08:45:25.818 ID:Z92B82In6.net
入門書だけ教えて欲しい

277 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 08:46:19.119 ID:YkqkI5aE0.net
>>275
そらプログラミングやってるやつなんて殆ど根暗陰キャばっかだからなw

278 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 09:32:08.794 ID:ULJCBFnDd.net
マは陰キャ

279 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 10:21:25.282 ID:gFHGtU0B0.net
なんてレベルの低いwww

280 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 10:50:04.501 ID:p8uBleXJp.net
オブジェクト指向言語使ってるくせにオブジェクト指向設計出来ない奴www

281 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 10:51:52.598 ID:hcY9W9dG0.net
誰かC言語教えてくれや

282 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 11:02:47.707 ID:xhPrJx840.net
>>281
おうよ

283 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 11:27:40.041 ID:sbJheNzAM.net
>>14
あれは究極に酷いAPIだと思う

284 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 11:29:29.328 ID:IAzIbstT0.net
カプセル化だかやろうとしたら糞めんどくさくて挫折した思い出

285 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 12:10:29.087 ID:RVSENRBkr.net
雑魚なぼく「オブジェクト指向はみんなでぷろぐらむするから、みんなでつかえるようにつくって、みんなでつかおうね」
「勝手にいっぱいぷろぐらむ書き足したらしねよ」

286 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 12:17:33.207 ID:AaPVPmOX0.net
何してんだこいつらw

287 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 12:18:01.077 ID:i1b7DzR00.net
わざと分かりにくい単語にして初心者を翻弄していくスタイル

288 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 13:20:41.939 ID:5njRoCWE0.net
みんな前に同じスレ立ってたの知らないの?
え?タイムスリップ?え?

289 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 13:25:03.235 ID:0HlXkYl00.net
とりあえずスッキリJava嫁
まずはそれからだ

290 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 13:39:48.347 ID:UmZ5i78Ma.net
SmalltalkとJavaやっとけばだいたいおk
清々しい理想 vs 泥臭い実践

291 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 13:52:23.748 ID:Au3ccTsJ0.net
日本語でおk

292 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 15:35:38.205 ID:onMgW5sc6.net
プログラムスレめっちゃ伸びたてワロタ
さすがITドカタの巣窟だわ

293 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 15:36:18.090 ID:onMgW5sc6.net
>>2
マンガで見た

294 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 16:56:41.993 ID:K2mfJeIFM.net
分からないなら触るなって言えるように設計しようねってこと

295 :37.72.239.49.rev.vmobile.jp 裏2chへようこそ!:2017/05/01(月) 17:08:21.881 ID:xOv3DipGM.net
「壊れてないのに直すな」ってホントなの?

296 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 17:42:34.420 ID:/iUOMQGo0.net
アスペ指向

297 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 17:55:48.777 ID:j0NFBoQ+0.net
まともなシステムを開発した経験もない奴が自分の意見を主張すんなってことよ
そんなのたわごとだから

298 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 17:56:43.014 ID:5A+L71un0.net
PHPer俺、低みの見物

299 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 17:57:33.989 ID:qByntMEod.net
>>9
とりまmvcやっとけ
みんなが同じデザインパターンで実装することで保守性が上がる

300 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 18:02:49.553 ID:j0NFBoQ+0.net
>>270
さっきから的外れなことばっかり抜かしてんじゃねえよ
殺すぞ雑魚

301 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 18:04:43.546 ID:AaPVPmOX0.net
恐いなー

302 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 18:15:18.857 ID:p8uBleXJp.net
自分で意思をもって開発出来ない奴は一生まともなシステム開発には関われないよ
コーダー止まり

303 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 18:16:40.588 ID:0HlXkYl00.net
>>300
あ〜ぁ、言っちゃった・・・

304 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 18:17:26.702 ID:0HlXkYl00.net
>>302
コーディングシート見ながらPCに打ち込むパートのパンチャーだろ

305 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 18:18:01.602 ID:pk1H4P/30.net
なんでこのスレこんなに伸びてんの

306 :以下、\(^o^)/でVIPがお送りします:2017/05/01(月) 18:31:56.969 ID:j0NFBoQ+0.net
>>304
いつの時代の話だよ?

総レス数 306
87 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★