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

オブジェクト指向は戦場では必要無し その2

■ このスレッドは過去ログ倉庫に格納されています
0001あたたたたNGNG
オブジェクト指向はより自然なモデルに即したものではあるが、クラス
を理解する労力が大きく、目的まで達成するのに時間がかかる。
他人のソースを見るにも複雑でときほぐしにくい。
ちゃんと整備されたドキュメントがなければ粗大ゴミソース。
またオブジェクト指向が○○に優れているとかいう話も、あくまでちゃ
んと設計され、ちゃんと実装されたクラスがあるという前提での話。
実際は世の中にどれだけの糞SEや糞PGがいることか。。。
よってオブジェクト指向は戦場では使いものになりません。

前スレ http://pc.2ch.net/test/read.cgi/tech/1011997945/

いつの間にかスレが1000に達しようとしていました。たくさん
の意見ありがとうございます。
前スレでの議論の結果、やはりというか当然というかオブジェ
クト指向の戦場での実績や有効性には大きく疑問が残るという
結果となりました。。。
皆さんも本当に何が残ってゆく技術なのか、何がイマイチぱっ
とせずに中途半端に終る技術なのか見きわめて、技術を習得して
いきましょう。
0175 NGNG
>>174
使って間違い無いのはGUI部品だけ。
0176デフォルトの名無しさんNGNG
業務でも有効だけど何か?
でも派遣や委託、DQソにやらせるなら、処理の末端部分、つまり
「このフローをココにかけ」レベルまで落とし込んでやらないと
だめ (OO でも実装の末端は細かい処理の集まり)。従って >>1 は
末端のフローしか書かせてもらったことのないドコモ社員。
0177デフォルトの名無しさんNGNG
>>155
工程の見積もりはFP法でも使ってくれ。
メトリクスはソースコードが健全かどうかを測るものだ。
例えばリファクタリングの基準に使える。
0178デフォルトの名無しさんNGNG
つーかDQNにOOやらせちゃ駄目。
0179 NGNG
つーかOOでフローなど言語道断。
0180デフォルトの名無しさんNGNG
>>178
つーかDQNに仕事やらせちゃ駄目
0181 NGNG
つーかそれじゃコボラーとおんなじ。OOにした意味無し。
0182デフォルトの名無しさんNGNG
>>180
つーかDQNをプロジェクトに入れちゃ駄目
0183デフォルトの名無しさんNGNG
>>182
つーかPMがDQNだからそれ無理
0184デフォルトの名無しさんNGNG
必死で勉強したオブジェクト指向で作品を作りたくて仕方のない、
しったか君はプロジェクトでつまはじき。
0185外人NGNG
日本ってほんっとレベル低いね(藁
0186デフォルトの名無しさんNGNG
>>185
おい外人、お前らなぁUNICODEみたいな糞規格つくるんじゃねーよ。
0187デフォルトの名無しさんNGNG
>>185
おい外人、おまえらの国際化とは ISO-8859-X 圏だけか?
ウワァァン
0188デフォルトの名無しさんNGNG
おい日本人、お前らさっさと英語を公用語にしる!
0189チョソ通信NGNG
日本が生き残る道はハソグルを公用語にすることニダー
0190デフォルトの名無しさんNGNG

話が脱糞してます…
0191 NGNG
まあ、あれだ、散々探しまわった挙句、究極の開発手法は
COBOLでずーっと前からやってた手法と変わんなかったわけだ。
童話「青い鳥」と同じという
心温まるお話でした。

0192デフォルトの名無しさんNGNG
だってさぁ、石投げてアサインできるのは手続きを順番通りに
並べるしかできない奴らばっかなんだもん… それ以上の知識
を得ようという奴は少ないし。

手法の問題というより業界意識の問題かな。アウシュビッツも
そうだけど、安定した作業をこなすには考えないで黙々とこなす
事務的な人が必要という罠。
0193デフォルトの名無しさんNGNG

開発=アウシュビッツ論が提出されました。
0194デフォルトの名無しさんNGNG
開発はアウシュビッツである。そこは脚色された殺人鬼が喜びに酔い
しれながらユダヤ人を殺害してゆくのではなく、大量のユダヤ人を効率
よく殺してゆくため与えられた作業を黙々とこなす作業員ばかりだった。

# 文才ねぇな、おれ…
0195デフォルトの名無しさんNGNG
>>183
経営者がDQNですが、なにか?
0196デフォルトの名無しさんNGNG
>>195
顧客がDQNですが、なにか?
0197デフォルトの名無しさんNGNG
>>196
小泉みたいなハリボテを支持してしまうDQN国民ですが、なにか?
0198デフォルトの名無しさんNGNG
>>192
手続きを順番通りに 並べる方法で使えるからクラスライブラリは便利なのではないのか?
ひとりでやってるならともかく、
そういうふうに下位コーダに作業出来るようにするのが上位プログラマの仕事だろ?

みんながクラス作る側に回ったら、そりゃ船頭多くて山に登ってしまうよ
0199デフォルトの名無しさんNGNG
いつまでも戦争を止めないDQN星人ですが、なにか?
0200デフォルトの名無しさんNGNG
上司の子供が珍ですが何か?
0201デフォルトの名無しさんNGNG
結局ここにいたOO野郎は戦場を経験してもない、
机上理論野郎だったということだね。
0202デフォルトの名無しさんNGNG
>>198

「下位コーダ」とやらにはクラスを作らせない、インターフェイスは変えさせない
って事か?
そういうことやってるから巨大なクラスが出来上がってクライアントからパフォー
マンスでクレームが来るんだよ。
いい加減ウォーターフォールの幻想は捨てろよな。
0203デフォルトの名無しさんNGNG
>>201
いや、むしろ逆だろ。
0204デフォルトの名無しさんNGNG
>>201

残業は勲章だと思ってる勘違い野郎か?

確かに、

戦争=毎回デスマーチ

と言う意味では未経験だが、何か?
0205デフォルトの名無しさんNGNG
>>202
 なんで? パフォーマンスに関係する所なんて触らせたりしないよ?
逆に思うんだけど、そんな所まで触らせてまともなものが出来るなんて
よほど良質な下請使ってるんだね。 よかったら紹介してよ
0206 NGNG
>>201
つい最近DQNの援護射撃で味方撃ち殺しプロジェクトで地獄を見てきましたが何か?
0207デフォルトの名無しさんNGNG
>>202
厨にクラス設計させると大変なことになるって…
0208デフォルトの名無しさんNGNG
>>202
DQNは通常パフォーマンスに影響しない部分でも激重コーディング
しますが何か?
0209202NGNG
>>205
>パフォーマンスに関係する所なんて触らせたりしないよ?

自分をコーダとしか思ってない奴にクラスライブラリ使わせると、とんでもない
ソースを書いてきやがりませんか?
関数呼び出しの感覚で高コストインスタンスをループ中で毎回生成したりとか。
俺はそういう意識の奴が外注で来たら、コードレビュー程度では超えられない溝が
有るとみなして即切り。
逆にその辺がわかってるレベルの外注なら詳細設計を任す事も良くやる。
担当範囲でのクラス新設は自由。もちろんレビューはするけどね。
0210デフォルトの名無しさんNGNG
>>208
そもそもDQNは「パフォーマンス」という言葉や意味を知らないのですが、何か?
0211デフォルトの名無しさんNGNG
>>209
オレはコーダより上だというレベルでも
とんでもないソースを書いてきやがりますが、なにか?
0212DQNの評価NGNG
非OO=役立たず
 OO=自爆テロ
0213デフォルトの名無しさんNGNG
try{
  for(int i=0; i<100000; i++){
    Connection c = DriverManager.getConnection();
    String s = "SELECT FOO FROM BAR WHERE ID=" + i;
    ResultSet r = c.createStatement().executeQuery(s);
    r.next();
    ret[i] = r.getString(1);
    c.close();
  }
} catch(ArrayIndexOutOfBoundException ex){
  ;
}

ループの終了条件は配列外参照という罠。
>>202 はこんなコード見たことないんでしょ (鬱
0214202NGNG
>>213

いや、だからそんな馬鹿コード書く外注は即チェンジなんだってば。
社内メンバがそれ書いたらどうするかって?
上司に言ってチームから外してもらいます。俺を。
0215俺なら死刑NGNG
>>213
初めて見た、なんてすばらしいコードだ…
0216あまりのすばらしさにNGNG
屁がでました
0217デフォルトの名無しさんNGNG
>>214 なんだいつでも逃げられるようなシタッパか
0218デフォルトの名無しさんNGNG
>>217
それなりに実力がある人間なら、ほんっとに開発体制が腐ってると思ったら

 この仕事終わったら、転職させてもらいます

とは言えると思うが。(会社を経営してる人間は除く)
0219デフォルトの名無しさんNGNG
良い物見せてもらったので age
0220デフォルトの名無しさんNGNG
>>218
”外注は即チェンジ”なんてのたまってられる環境は転職したってそうは見つかるもんじゃない。

その前に、そんなせりふが出るような人間に プログラマーとしての能力は認められても
マネジメント能力は期待出来ない。 それだけの人間だと思われてるよ。
0221俺なら市中引き回しNGNG
>>213
すばらしぃ・・・間違いなく俺の拳がコーダーの顔面を直撃しているだろう。
0222デフォルトの名無しさんNGNG
>>213
おれのコードだ!
0223202NGNG
>>220

なんで?
外注のレベルが低いのは俺の責任か?
無理してDQN外注使って後で責任追及されるのは俺なんだから、早めにリスク回避
するのが当然だろ。
もしかしてDQNを更正させるのもマネジメントの一部なのか?
0224俺なら市中引き回しNGNG
>>221
一発殴って言い?
0225デフォルトの名無しさんNGNG
プロジェクト要員の面接時に >>213 のコードの悪い部分を全て出して
もらうっての良いんじゃない?

つうかこれはちょっとやばすぎるだろ…
オチはコピペで大量生産と睨んだ。
0226デフォルトの名無しさんNGNG
>>224 自分をか(w
0227 NGNG
ループの終了よりコネクション数の方が異常だと思うが・・・。
0228 NGNG
あ、いちおうcloseしてるのか。
いちいち。
0229デフォルトの名無しさんNGNG
>>223 
すこしいいすぎたよ。すまんな

外注を好きに選べる今の環境は幸せだと思うよ。大事にするといい
0230デフォルトの名無しさんNGNG
>>227,228

コネクションプーリング関連でサーバにすさまじく負荷をかけると思われ。
0231デフォルトの名無しさんNGNG
外注を「下請け」「下位コーダー」と呼んで枠にはまった単純作業しかさせなけ
れば、そりゃ能力がある外注は別のところに逃げるって。
0232213NGNG
>>225
> オチはコピペで大量生産と睨んだ。

当たり。元々はいくつかの処理を走らすと開放されないDB接続が
発生していたので調査したしたのが事の始まり。もうびっくりと
いうかなんと言うか、マジ笑えました。とはいえ一応親会社みたいな
ところから頼み込んで入ってもらった人達なので切る事もまま
ならず、結局資料まとめてた新人に修正させました (俺も手一杯
だったし)。こんなすごいお方たちにクラス分割なんて申し訳なくて (;´д`)
0233213NGNG
・ループごとにコネクションを取得/クローズしている (本当はコネクションプールから)
・配列に値をとるのに毎回 SQL を投げている (配列は 200 個)
・配列外参照でループを抜けるときにクローズされない
・その他の例外でもクローズされない
・ちゅうかそもそも配列外参照でループ抜けるな
・規約に入ってたトランザクション分離レベル設定も自動コミット設定も無視

が正解 (他にある?)
0234 NGNG
俺はループの中でコネクション確保してる所まで見て
頭の中が真っ白になったYO!
その先読めないYO!
0235デフォルトの名無しさんNGNG
あー俺も過去に見たことあるなー、設定ファイル感覚でデータベースから
値を「一個一個」とってる奴。今はもういないが (藁
0236っていうかNGNG
こんなやり方もあったんだ!と目から鱗
0237213NGNG
なんかいろいろ思い出しちまった。

「動かしてて遅いと思いませんでした?」
「アハハ♪ボクのマチン、セレロン 500 に Win98 でしたから♪」

  鯖・側・で・動・い・て・ん・だ・よ、カ・ス!!

ダブルクリックが好きな奴らでな、ウィンドウの×ボタンをダブル
クリック、[スタート] メニューをダブルクリック、OKボタンも
ダブルクリック…。結局こいつらのためにダブルクリックするだけ
で必要なファイル全部コンパイルするバッチファイル書いてやったさ、
おー書いたとも。なんか文句ある?あーーーーーすっきり!
0238デフォルトの名無しさんNGNG
>>237
ワロタ
0239デフォルトの名無しさんNGNG
>>237 やるなら SQLパッケージのラッパー作っておけばトータル楽だったんじゃないの?
0240デフォルトの名無しさんNGNG
>>239
あたりだね。ドキュソにDriverManagerを直で触らせるような状況に
した人がわるいきもする。バカにバカコードを書かせない技だね。
0241デフォルトの名無しさんNGNG
まあこんな奴がけっこうウヨウヨいるんだろうな。
だとするとOOなんてまともに普及するわきゃねーんだよ。
本国アメリカでもなんだかんだいって同じようなもん
0242213NGNG
あのコードはラッパー抜きの簡略コードで書いちゃいました。
DriverManager ってのは本当はデータソースです。
0243 NGNG
>>237
奴らって何?一人じゃないの?そんな事すんのは。
0244お好み醤油NGNG
>>213 のコードって、書いてる奴の思考が読めておもしろい。
「要は適当な回数だけ回してえ、query投げてテキトーに配列に入れときゃいいんでしょ」
っていう感じ。

とても日常的というか素人的なんだけど、
でも、人間がいちいち最適なループ構造を考えなきゃいけないような
現在の大部分のプログラミング言語ははっきりいって不完全だと思う。

こういう、最適化をまったく考えられないような素人が書くコードでも、
そこそこまともに動くようなフレームワーク(言語とか概念とか)を
作っていかないとソフトウエア業界は近い将来立ちゆかなくなるだろう。
0245244NGNG
しまった、名前が残ってた…
0246213NGNG
3 人のうち 1 人が作ってコピペでまわされた形跡があった。
質的に VBそこそこC少々×1 + VB厨完全体×2 という感じ
(後で分かった)。本業務から外れたメンテナンス機能だった
のでこっちも少々油断しすぎていた (藁。まぁコードはかな
り簡略化したけどね、フロー的にあんな具合に動くよ。
0247デフォルトの名無しさんNGNG
>>244
Smalltalkのenumeratingメソッド群、もしくは
Iteratorパターンを覚えよう!
0248デフォルトの名無しさんNGNG
>>244
> ソフトウエア業界は近い将来立ちゆかなくなるだろう
RDBMS なんかは、ある意味で「素人が書くコードでも、 そこそこまともに動くような
フレームワーク」ではあるんだけどね。

OS もデバイスドライバもなし RDBMS もなしって状況で、ファイルシステムを一か
ら実装するのに比べれば、既存の RDBMS を使うのは遥かに楽だし。
0249デフォルトの名無しさんNGNG
>>246
そういうやつって、外注全体のうちどのくらいいるんだろ…
ロジックのコストとかに脳みそがいかない人がいるっていうのは、言語
使える使えないと全く違う話だというのは、最近ワカタヨ。

Cを10年やってるベテラン扱いの人が一緒に仕事してるんだけど、確かにCで
コードはかけるんだけど(Javaの仕事なので、CっぽいJavaコードをかかれるが)、
そういうところが腐ってる人がいるよ。おいらが、ソイツのコードを全部チュー
ニングしなおししてるよ。ソイツは俺の倍給料貰ってるよ。理不尽ダーヨ。
0250デフォルトの名無しさんNGNG
>>248
OSとデバドラがあって、ローカルディスクが使えるなら、
なるべくファイルシステム使うようにして欲しいよ。
0251!=248NGNG
>>250

うちはボラと提携してるから無理っス。
0252デフォルトの名無しさんNGNG
>>250
トランザクションと同時アクセス対応が難しいっス。
50万件のレコードを許容時間内に検索するコード書けませン。
デッドロック時がきついっス。

でも不必要に DB 使うのはどうかと思う今日この頃。

# 1 から Oracle を作ったら米国の国家予算が丸ごと必要
# だっつう話をどこかで聞いたような
0253250NGNG
>>252
RDBMSが機能として持っている、そういった機能を使わざるをえない
時は、使ってもいいよ。つうか、使うべし。

うちのバカは、単に通信のログとるのにDBにInsertくり返すんだよ…
しかもログ管理サーバ(そんなものがあるのも不思議)へログを渡すには、
当然のように一件ずつロックしてSELECTして条件分岐してDELETE。
もうあほかと。馬鹿かと。
0254  NGNG
>デッドロック時がきついっス。

ヲイヲイ
0255  NGNG
>>252
ひょーっとして
デッドロック>タイムアウト  
でかろうじて動いてるのを「遅い」とか言ってるのではあるまいな?
0256デフォルトの名無しさんNGNG
213でも、まだマトモなコードに見えてしまうような
外注しか知らないヲレは逝ってよしですか?

「例外って何ですか?」氏ね、ヴォケレベルしか知らない

0257デフォルトの名無しさんNGNG
>>256
元VB、Cプログラマなら許せ。仕方ないさ。
Javaプログラマで雇ってそれだったら、そく首だ。
0258188NGNG
>>213 のコード直すのは簡単だが、
  RDBMSアクセス全般を汎用性のあるOOコードで書くのは、
  すげー大変だと思う。

けきょーく、
・RDBMS使ってて、
・まっとうなRDBMSラッピング手段↓持ってない所
 #Rational社も方法論作ったORマッピング:
 #  WebGain TopLink, Oracle BC, WebObjects, EJB2.0 等々
では、ストアド・プロシージャで処理書いて下さいっつー事になる。
0259 NGNG
未だストアド・プロシージャ以外を扱うプロジェクトに出会ったことなし。
0260デフォルトの名無しさんNGNG
>>257
まっとうなPGならどの言語だろうとそんなことはしない。
0261デフォルトの名無しさんNGNG
>>257
なにをおっしゃいます。
マルチスレッドも知らないようなDQNにサーバーサイドへの道を開いたのは
ほかならぬJavaではありませんか。
0262257NGNG
>>260-261
少なくともいえることは、あんたらの職場が幸せな部類に入る
ということだ。

ワケワカラン外注ねじ込まれてタイヘンな目にあったことないんでしょ。
0263デフォルトの名無しさんNGNG
>>257
この間上司(自称あせんぶらー)から送られてきたソースが
まま>>213みたいなやつだったんですが頃してよかですか?
0264デフォルトの名無しさんNGNG
Javaの場合、ライブラリにまだお手軽さが足りない上
VBより遅いから JAVA上でラップしてあげるのも難しいわけで
正直外注を使ったり共同作業というのは難しいね
0265デフォルトの名無しさんNGNG
Java=遅いという短絡指向はヤヴァイ。
バカPGが生み出す糞コードの性能差に比べたら、微々たるもんだ。
0266デフォルトの名無しさんNGNG
>265
そんなことないよ。
Javaは放っておいても変わらないけど、
バカPGは成長するんだよ。
265がバカだと思ってたPGもいずれ辞めるか、一人前に成長するよ。
バカPGを叩きなおす事は少なくとも、Java自体の速度向上を待つより
も見込みが有るはず。
0267デフォルトの名無しさんNGNG
>>266
あなたのいうバカPGってどれくらいのバカなの?
私の中では「叩き直せる」うちはバカではないと思ってるんだけど。

本当にどうしようもない人達って沢山いるよ。
本当に小規模の開発だったから「設計から全部まかせるよ」って上司に言われて
「プログラムよくわからないですから」って言ってAccessマクロで
システム組んだ入社半年君とか…。
勉強することなく、「僕、プログラムわからないです」って、お前プログラマーとして雇われてるんとちゃうんか!と小一時間どころか三日三晩問い詰めたいわ、マジで。
0268デフォルトの名無しさんNGNG
>>267
スレの流れと関係無いが、そりゃ振った奴が悪いぞ。
0269デフォルトの名無しさんNGNG
全然関係無いけど、
バカPGとPGバカって、ニュアンスが微妙に違うよね
0270デフォルトの名無しさんNGNG
女「このパカPG・・・」

と

女「もう、PGバカなんだから」

は全然違うよね!
0271268NGNG
>>267
せめて、「言語の勉強をかねてるんだから、しっかりやるように」
くらいはいってやれよ…新卒は、想像力が貧困なくせにプライド高い
やつ多いから、結果が出れば手段は問わないと思えば、やり方を知って
いる方法を使うのは自然な流れだと思われ。
0272デフォルトの名無しさんNGNG
Accessマクロで組むの別に悪いとも思わないけどなあ
0273デフォルトの名無しさんNGNG
>>272

十中八九VB叩きに発展するからやめとけって。
ここは腐ってもOOスレなんだから。
0274デフォルトの名無しさんNGNG
>>272
だから、環境をしっかり指定しないでほっといた>>267が
DQNだという話でしょ。要求仕様がVBでOKなら問題なし。
■ このスレッドは過去ログ倉庫に格納されています