トップページ⇒tech
1001コメント306KB

消えてなくなれよ >オブジェクト指向 part.2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/03/22(日) 06:57:59
前スレ
http://pc11.2ch.net/test/read.cgi/tech/1198822420/
0263デフォルトの名無しさん2009/05/11(月) 06:36:32
unko
0264デフォルトの名無しさん2009/05/11(月) 08:08:50
結局一面だけ宣伝したバカにのせられてそこだけ信じて騙された〜!って騒いでるだけに見えるな(w
0265デフォルトの名無しさん2009/05/11(月) 13:24:40
だからOOAの事言っているのかOOPの事言っているのか
はっきりさせようぜ。
0266デフォルトの名無しさん2009/05/11(月) 13:33:22
>>264
はい、その通りです
てか、業界全体がだまされた
0267デフォルトの名無しさん2009/05/11(月) 13:34:42
>>265
両方だろ、馬鹿。
だが、設計技法を発展させて一般化すればErlangにも応用可能かもな。
0268デフォルトの名無しさん2009/05/11(月) 18:07:49
そういう〜かもね的な意見に食傷気味
0269デフォルトの名無しさん2009/05/11(月) 20:05:04
>>259
#!/usr/bin/bash
mysql --user=root --password=password -e "USE jinji_kanri; SELECT * FROM tbl_employee WHERE dpt_code <> 10;" | awk '$1 ~ /^104/{print}'
0270デフォルトの名無しさん2009/05/11(月) 20:06:58
>>268
「〜かもね」=誰かやれよ
02712692009/05/11(月) 20:11:53
awkじゃなくgrepで用が足りるんだが、
>>250でawk使ってるからそれに合わせた。

短く書こうとすれば結構短くなるもんだ。

Rubyでももう少し簡潔にできるのでは?
0272デフォルトの名無しさん2009/05/11(月) 20:32:55
なんで | awk '$1 ~ /^104/{print}' なんて書いてるの?
db側でやっちまったほうが手っ取り早く見えるが。
mysqlはwhere句の中で正規表現使えないのか?
postgresqlなら and foo ~ '^104'と書く。

クエリが複雑になったらRubyで書くとカンタンやね。
sshと組み合わせてリモートで処理させるときは、
シェルスクリプトでやっちゃったほうがマシなときもある。
0273デフォルトの名無しさん2009/05/11(月) 20:45:15
MySQLでもREGEXPで正規表現は使えるから
そのほうが簡単だろうけど
02742722009/05/11(月) 21:24:39
あ、失礼。
> なんで | awk '$1 ~ /^104/{print}' なんて書いてるの?
部分はそもそもの発端である>>250にむけてのレス。
0275デフォルトの名無しさん2009/05/11(月) 21:28:47
AWKとかどうでもいいでしょう。オブジェクト指向言語じゃないんだから。
オブジェクト指向の効率が悪いっていう証明をしてくれよ
0276デフォルトの名無しさん2009/05/11(月) 21:34:40
>>272
>>250を見ると関数を定義してるから、
sql "SQL文"
で済むみたいだけど。
ruby使うともっと簡単になるの?
もし、単にSQL文並べるだけよりも楽になるなら便利だよね。
0277デフォルトの名無しさん2009/05/11(月) 22:41:39
>>275
じゃあ、C言語+構造化で組むと3ヶ月でできる仕事を
C++とオブジェクト指向で組んだら何ヶ月でできる?

仕事って数字出せなきゃ駄目なんだよね・・・
0278デフォルトの名無しさん2009/05/11(月) 23:11:11
>>277
おまえのところは、
アセンブラで組んだら3ヶ月でできる仕事だから、
C言語使ったら何ヶ月かかるか見積もってね
という仕事を請けてるの?
0279デフォルトの名無しさん2009/05/11(月) 23:13:59
>>278
は?
お前がオブジェクト指向云々の話がしたいっていうから
比較対象でC言語出しただけだよ
好きなのでいいよこだわりねーし
オブジェクト指向でやると工数がどうにかなんじゃなかったの?
0280デフォルトの名無しさん2009/05/12(火) 01:21:38
かくして
猿猿合戦の火蓋は切って落とされたのであった
0281デフォルトの名無しさん2009/05/12(火) 04:12:27
>>272
Ruby含めてDBライブラリを持つ言語を使わないとトランザクション
とかエラー処理周りを書くのにえらい苦労すると思う。
検索専門だったりデータをガツンと丸ごとインポートする程度なら
シェルスクリプト+αもありだし実際使うけど、エラーも考慮して
継続的にデータを出し入れする「ちゃんとした」DBアプリを作るの
であればawk云々の出る幕はないと思うんだがなぁ。

とりあえず>>250はクエリで複数行を引っ張ってきてから手元で
絞り込みをかける奇妙さといい、そもそも何で正規表現使っている
のかなとか例としては謎が多すぎる。
0282デフォルトの名無しさん2009/05/12(火) 09:57:10
OOPなど余計だ(キリッ)などと言っている人が、
得意満面で余計なことをAWKでしてる、という話。
0283デフォルトの名無しさん2009/05/12(火) 10:07:45
>>282
いいえw
てか何でAWK?
俺はHaskell派なんだけど・・
0284デフォルトの名無しさん2009/05/12(火) 10:18:59
>>283
お前じゃねーよw
>>249-251を見れw
0285デフォルトの名無しさん2009/05/12(火) 11:50:27
企業の御用聞きにOOPは不必要だ
客に言われるがまま新しいコードを作るのにOOPなんてやってたら何時までも終わるわけがない

OOPの必要性が分かるまで、潰れないだけで、飛躍も無いけどな
0286デフォルトの名無しさん2009/05/12(火) 12:12:57
レッテル貼りをした>>284が言い逃れをした、という話
0287デフォルトの名無しさん2009/05/12(火) 21:37:49
使えない奴ほど偉そうだ
0288デフォルトの名無しさん2009/05/12(火) 22:41:02
>>287
OO使える(と思っている)やつが、OOのメリットを明確に示せないからしかたないね。
0289デフォルトの名無しさん2009/05/12(火) 23:07:05
プログラミングできる人と、プログラミングできない人じゃ同じ仕事やるのでも
まったくアプローチが違うっていうのと一緒。
プログラミングできない人は「プログラミングしなくても、Excelあれば十分じゃん」言うし、
プログラミングできる人は「awkで処理すればすぐできるのに」と思う。
0290デフォルトの名無しさん2009/05/12(火) 23:22:53
小さいプログラムならOO使うまでもないわな
0291デフォルトの名無しさん2009/05/12(火) 23:28:17
rubyの小さいプログラムで、ファイルの殆どを1つのアプリケーションクラスの
定義に費やして、ファイル末尾三行ぐらいでnewしてメソッド呼び出し、終了って
のを、時々見かけるけど、あのOOPは何かの役に立ってるんだろうか?
0292デフォルトの名無しさん2009/05/12(火) 23:31:26
エンドユーザさんでもプログラムは組めたほうがいい。
ただ、彼らは学習に時間と金をかけられないから
何をやるにもシェルスクリプトオンリーとかawkオンリーになるわけだ。

たとえ面倒でも、他人に頼らずに目的を達することができるなら、
それはそれでアリだろう。
何でも同じ包丁で調理するのは我々から見ればナンセンスだが
彼らの立場では合理的選択なのさ。
0293デフォルトの名無しさん2009/05/13(水) 05:35:27
>>291
役に立っていないと思うよ。
トップレベルの名前空間を汚したくないからクラスに隔離している
だけだと思う。今のところRubyではこれが一番簡単な方法。
グローバル変数とかの類は気分的に気持ち悪い人も多いかと。
書き捨てならともかく再利用したり他人の目に触れる可能性がある
プログラムならなおさらね。
0294デフォルトの名無しさん2009/05/13(水) 05:35:27
>>291
役に立っていないと思うよ。
トップレベルの名前空間を汚したくないからクラスに隔離している
だけだと思う。今のところRubyではこれが一番簡単な方法。
グローバル変数とかの類は気分的に気持ち悪い人も多いかと。
書き捨てならともかく再利用したり他人の目に触れる可能性がある
プログラムならなおさらね。
0295デフォルトの名無しさん2009/05/13(水) 07:30:23
>>288
馬の耳に念仏って言葉、知ってるか?
0296デフォルトの名無しさん2009/05/13(水) 09:22:59
豚「真珠? そんなもんイランわい! 食えるもんもってこいや!」
0297デフォルトの名無しさん2009/05/13(水) 10:26:37
豚耳東風
0298デフォルトの名無しさん2009/05/13(水) 11:44:05
馬の耳を付けたら、東から風がフゥ〜っあqwsなわけねだろ〜!
0299デフォルトの名無しさん2009/05/13(水) 18:38:55
俺、関数型言語やったらOOのメリットわかった。
たとえば、関数型の高階関数をOOでどうやってやるんだって考えてたら
抽象メソッドを継承するって思いついた。
0300デフォルトの名無しさん2009/05/13(水) 20:16:08
OOPL
0301デフォルトの名無しさん2009/05/13(水) 21:26:56
>>299
関数型言語やったことねぇだろwwww
0302デフォルトの名無しさん2009/05/14(木) 20:20:56
抽象メソッドを継承するって言い方初めて聞いたよ
0303デフォルトの名無しさん2009/05/14(木) 23:30:06
そうやって用語がゴチャゴチャしてるのがOOのクソさ。
関数型なら引数に関数を取れる、で一発
0304デフォルトの名無しさん2009/05/15(金) 02:35:47
だから、おまえは手続き型言語とOOPLを一緒にして話すなって。
0305デフォルトの名無しさん2009/05/15(金) 02:38:37
オブジェクト指向って手続きの中でしか実現できない概念じゃん。
だからOOPLは手続き型言語の一種
0306デフォルトの名無しさん2009/05/15(金) 03:31:36
何か変なのが沸いてきたな
0307,,・´∀`・,,)っ-○○○2009/05/15(金) 07:32:56
岡村は一応関数型かつオブジェクト指向
0308デフォルトの名無しさん2009/05/15(金) 07:59:55
黎明期のOOってCLOSとかFlavorみたくLISPベースが多かったのはガン無視ですか?
現代的な言語に絞っても、Haskellにも型クラスの継承関係あるし
PrologにもOO拡張が存在するし
0309デフォルトの名無しさん2009/05/15(金) 08:07:33
継承が有るとOOなんですか。斬新な考え方ですね。
0310デフォルトの名無しさん2009/05/15(金) 08:30:08
継承があればOOなんて、誰がどこに書いてる?
0311デフォルトの名無しさん2009/05/15(金) 09:14:31
(゚∞゚)ペーチュンチュン
0312デフォルトの名無しさん2009/05/15(金) 14:04:11
C++をOOと言い出した奴が悪い
0313デフォルトの名無しさん2009/05/15(金) 15:33:08
C++はOOというよりマルチパラダイム指向な

禿が言ってる
0314デフォルトの名無しさん2009/05/15(金) 15:36:14
ハゲ?
  ∧_∧
 ミ ゚Д゚ 彡
  ∪ ∪
  し―J


誰がハゲにゃねんっ!
  ( ⌒ )
   | | /
  γ⌒`ヽ ぷんぷん
⊂ミ,,゚Д゚彡  
 /   ノ∪  
 し―J ‖|
     ペシッ!!
  _) ∧_∧ (_
  ⌒)   (⌒
 

  γ⌒`ヽ
 ミ ゚Д゚ 彡
  ∪ ∪
  し―J
0315デフォルトの名無しさん2009/05/16(土) 21:06:31
ならOOはどれ?
0316デフォルトの名無しさん2009/05/17(日) 13:39:39
Smalltalk
0317デフォルトの名無しさん2009/05/18(月) 20:48:28
OOプログラミングは、まあ役に立つこともあるんだけど…

OO分析とかOOデザインとか言ってる奴等にかぎって役に立たないのはなぜ???
0318デフォルトの名無しさん2009/05/18(月) 21:03:27
OOはチーム全員が理解してないとあまり意味がない
理解できない子はとりあえず取り替えないとチームが成立しない
0319デフォルトの名無しさん2009/05/18(月) 21:08:51
> 理解できない子はとりあえず取り替えないとチームが成立しない
その昔
「アホでも使えるようになるからOO分析とかOOデザインをやれ」
って聞いたぞwW
0320デフォルトの名無しさん2009/05/18(月) 21:13:20
「パターン指向リファクタリング入門」
なんかでも作りこみすぎはダメてなことが載ってる。
時代的にまた一回りしてきたってとこかね。
0321デフォルトの名無しさん2009/05/18(月) 21:55:13
>>32
まぁね、UML とか言っても、まだハード屋が使ってるビヘイビア記述に
追いついてないような気がするし、記述方法とかを理解できる奴の範囲
が限られるし…
ソフト畑って、未だにベース部分のばらつきが大きすぎるんだと思うよ

ゆとりとか何とか言ったって、ハード屋の方が粒がそろってるように見える
0322デフォルトの名無しさん2009/05/18(月) 22:25:34
あのさ、「ゆとり」って言葉は元々政府の教育戦略なんだけど、
それを無能世代の別の言い方にしてしまったのは団塊世代なんだぞ。
ゆとり教育世代を批判しまくって人材を安く買いたたくためでしかない。
未だにゆとりがどうのこうの言ってるやつはそろそろ団塊世代に踊らされていたことに気づけ。

んで、当の団塊世代が定年などで一線から退いたら、今度は手のひらを返したように「今の若い人は優秀で自分たちがいかにボンクラだったか思い知らされる」
などと言っている訳なんだよ。
結局、優秀なやつは優秀で無能なやつは無能というだけ。
その数に世代は関係ないみたいだね。
0323デフォルトの名無しさん2009/05/18(月) 23:15:36
>>321
文系なのにハード屋ってのはまだ少数派だろう。
0324デフォルトの名無しさん2009/05/18(月) 23:52:09
>>319
OOライブラリを使わせるだけならそうだろうけど
使うだけの側のプログラマーって現実的にはありえないし
0325デフォルトの名無しさん2009/05/19(火) 00:23:05
>>318
生産効率下がるじゃん
0326デフォルトの名無しさん2009/05/19(火) 01:02:39
オブジェクト脳に犯されすぎて関数型に切替えるのに苦労してます(´・ω・`)
0327デフォルトの名無しさん2009/05/19(火) 02:26:04
意味不明
0328デフォルトの名無しさん2009/05/19(火) 04:45:23
本物のOOはよいRubyは偉い
でもオブジェクト指向の本来はインスタンス指向なのに
巷ではすっかりクラス指向になってしまった
せっかくの良いアイディアが腐ってしまった
元を質せばC++がOOと相性の悪い静的型付けマンセーだからだ
つまり禿が悪い
0329デフォルトの名無しさん2009/05/19(火) 05:04:58
関数とか変数とか名前付けるのメンドクセ

それだけのためにクラスを使っている。
他の面倒な機能は使っていない。
0330デフォルトの名無しさん2009/05/19(火) 05:12:19

消えてなくなれよ->オブジェクト指向(2);
0331デフォルトの名無しさん2009/05/19(火) 08:05:17
インスタンス指向って何の事?
Scalaみたいなやつ?
0332デフォルトの名無しさん2009/05/19(火) 08:52:57
>>328
何言っているんだ?
インスタンス指向とクラス指向って何がどう違うんだ?
俺にはどちらも同じに感じるのだが
0333デフォルトの名無しさん2009/05/19(火) 11:12:20
インスタンス指向とかいうのはケイによるプロトタイプベースのOOの別名だろう
クラス指向っていうのは多分、すっぽすっぽ先生の抽象型によるOOのこと
あと一つなんかあった気がするけど忘れた
0334デフォルトの名無しさん2009/05/19(火) 12:25:31
>>325
だからイマイチ流行らねんだ。
0335デフォルトの名無しさん2009/05/19(火) 13:13:31
プトタイプとクラスは違うと気が狂ったように言う奴がいるが
そいつの説明を聞いても、単なる言い方の違いとしか思えないのだが...
0336デフォルトの名無しさん2009/05/19(火) 13:16:19
>>335
無いわー
JavaやC#やってた人がJavascriptに違和感なく入れるっていう人くらい詐欺話だわー
0337デフォルトの名無しさん2009/05/19(火) 14:51:09
>>336
Javaやってる人がC#に違和感無く入れるって?
0338デフォルトの名無しさん2009/05/19(火) 16:49:59
C#やってたけどJavascriptに違和感なく入れたよ
0339デフォルトの名無しさん2009/05/19(火) 17:58:38
>>335
クラスはコンパイル時に静的に決定される。
0340デフォルトの名無しさん2009/05/19(火) 19:30:01
>>339
それは静的型付けクラスベースの場合だけ。
0341デフォルトの名無しさん2009/05/19(火) 20:20:29
>>339
静的とか動的と言う言葉の定義がわからん
0342デフォルトの名無しさん2009/05/19(火) 21:33:33
型システムなんてコンパイラが十分賢ければ
静的だろうが動的だろうがどうでもいい

今時、最低点の型推論もしないような糞コンパイラは捨てろよ
高級言語名乗る資格なし >> ほとんどの C++

# C は高級アセンブラなので許す
0343デフォルトの名無しさん2009/05/19(火) 22:06:49
C++やJavaのオブジェクト指向は整数も関数もオブジェクトではなく
クラスを持つものだけがオブジェクトという糞設計で改悪どころではないんだよ

メッセージ通信による弱い結合で柔軟に記述できるはずが
継承を繰り返して親クラスの親クラスの..とあちらこちらに依存しているという
情けないことになってしまった

Smalltalkにあったクロージャやダックタイピングというオブジェクト指向の
重要な機構は無断でどこかに捨ててしまったくせに
オブジェクト指向という名前だけちゃっかり借用してるんだ

しまいにテンプレートだジェネリクスだとマクロの変種を持ち出し
例外処理という名のGOTO文やシングルトンと呼ばれるグローバル変数を乱用し
一体どこまで悪くすれば気が済むんだか

消えてなくなるべきは紛い物のオブジェクト指向もどきだよ
0344デフォルトの名無しさん2009/05/19(火) 22:12:32
完全なオブジェクト指向があったとして、誰がどう幸せになれるわけ?
0345デフォルトの名無しさん2009/05/19(火) 22:15:04
>>344
「ピュアピュアリスプ
計算なんかはできないの」
ってのと、おんなじ
0346デフォルトの名無しさん2009/05/19(火) 22:21:03
>>343
純血オブジェクト指向じゃ組みにくいよ
ジェネリクス・例外処理は便利
0347デフォルトの名無しさん2009/05/19(火) 22:26:38
>>342
プロトタイプベースは動的バインディングでないと無理だと思う。
0348デフォルトの名無しさん2009/05/19(火) 22:45:05
>>346
組みにくいなら海外でRubyがうけたりしないよ
生産性の高さ"だけ"ならRuby最強だと思ってる
Smalltalkの変態構文のこと言ってるんでしょうけどね
0349デフォルトの名無しさん2009/05/19(火) 22:56:51
>>348
Rubyにbegin rescueあるだろ。
動的型付けだからジェネリクスはないが。
Rubyの生産性が高いのは認める。
0350デフォルトの名無しさん2009/05/19(火) 23:27:04
>343
ダックタイピングで思い出したが、Scalaの静的ダックタイピングが超便利。
0351デフォルトの名無しさん2009/05/20(水) 00:02:12
>>349
勿論、実行時にしかわからない動的な処理を行うなら
例外機構が必要なのは分かってるが
単にエラーコードを戻せばすむようなケースまで
乱用されるようになってしまったのは禿げがキチンと
説明しなかったせいじゃないかと思ってる
自分はあんまりraiseしないで使えてるし
0352デフォルトの名無しさん2009/05/20(水) 08:33:56
>>343
> 例外処理という名のGOTO文やシングルトンと呼ばれるグローバル変数を乱用し

Smalltalk否定ですか。
例外処理は例外がエスケープしなければ構造化を壊さないし、
Singletonを禁じ手にしたらSmalltalkのMetaclassをどう定義しますか?
0353デフォルトの名無しさん2009/05/20(水) 08:49:33
>>351
例外を嫌う理由がわからん。
メソッド呼び出しの深いところでエラーが発生したら、
いちいちエラー処理するレベルまで呼び出しを逆にたどって
エラーコードを戻すのってうっとしくないか?
0354デフォルトの名無しさん2009/05/20(水) 08:55:28
例外がどういうときに例外なのか作ったやつに聞いてみないとわからないのが嫌いだな俺は
大抵わかんねーし
馬鹿に限ってドキュメントかかねーし
普通にFALSE返せばいいようなのを例外で返ってくるようなのもあるしね
0355デフォルトの名無しさん2009/05/20(水) 12:11:24
>>353
それぞれの関数でエラー処理するだけだろ。
関数作るときに、それがどのくらいの深さで呼ばれてるとか
意識するべきではないし。
0356デフォルトの名無しさん2009/05/20(水) 12:36:07
ドキュメンテーションされていないと使い物にならない
のは例外も関数内でのエラー処理も一緒だと思うけど。
0357デフォルトの名無しさん2009/05/20(水) 12:42:54
コード=ドキュメント
0358デフォルトの名無しさん2009/05/20(水) 12:44:03
>>355
エラー処理の実装を関数側に書きたくない事って多いと思うけど。
コンソールに吐きたいとかログに吐きたいとかダイアログ出したい
とか見ないふりして先に進みたいとか、呼び出し側で決めたいこと
は少なく無いと思う。

関数内で確保したリソースの解放とか、関数内で出来る後始末だけ
してもらって後はさっさと例外投げてもらった方が使い勝手が良い
し再利用性も高いと思うけど。
0359デフォルトの名無しさん2009/05/20(水) 12:47:56
メイヤーのオブジェクト指向入門の一冊目か二冊目にその話題なかった?
エラーを関数内で処理してしまうつくりは良くないとかなんとか。
0360デフォルトの名無しさん2009/05/20(水) 12:56:49
>>355
>関数作るときに、それがどのくらいの深さで呼ばれてるとか
>意識するべきではないし。

だから例外処理がいいんだろ。
それぞれの関数でエラー処理ってそらないわ、358の言うとおり。
03613552009/05/20(水) 15:01:11
エラー処理って、関数内で確保したリソースを開放して
エラーコード返すくらいだけど?
エラーコードをどう処理するかは呼び出し側の関数で決めればいいこと。
0362デフォルトの名無しさん2009/05/20(水) 15:42:34
>>361
355は直接呼び出したメソッドでエラー処理しているらしいことはわかった
おれは同じようなエラー処理をあちこちに書きたくないから例外を使う


0363デフォルトの名無しさん2009/05/20(水) 17:22:38
>>361
呼び出し関係が深くなっていった場合を考えよう。
それぞれの呼び出し側でエラーを認識して、そのまた呼び出し側にそのエラーを正しく伝えなければならない。
そんなことするぐらいなら、例外で1つのハンドラで包んだほうが構造として正しいと思わないか?
■ このスレッドは過去ログ倉庫に格納されています