トップページ⇒tech
108コメント33KB

●●デザインパターンって死滅しちゃうの??●●

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
無意味に流行って開発効率下げるだけのデザインパターンを必死に勉強している俺っていったい・・・?
0058デフォルトの名無しさんNGNG
>>57
そだな。デザパタではなく「実装パターン」またはイディオムと
よばれてるものに近いかも知れない。

それにC++やjavaみたいな、(デザパタレベルから見れば)抽象度の低い言語では、
ウィザードはコードそのものという具体的なものしか吐かないので、
その(抽象度の低い言語の)コードはあくまで実装パターンレベルしか
反映していないだろうな。

SmalltalkだとMVC wizardとかが有るらしいYOYOYO。
0059デフォルトの名無しさんNGNG
>>58
デザパタに限らず「概念そのもの」がコードに直接表現できない場合は多いね。

今ならクラスや継承関係が直接記述できる言語は多いけど、デザインパターンや汎用プログラミング
になると、まだまだサポートが期待できる言語のほうが少ない。たとえば C++ の STL で重要な役割
を果たしている Assignable Type なんて概念は、言語レベルで記述する方法はない。
0060デフォルトの名無しさんNGNG
ハッタリ屋はデザパタ用語連発するね。(実務は駄目だけど 藁)
0061デフォルトの名無しさんNGNG
悲惨な >>1 のいるスレだ.

(-人-)ナンマイダー
0062デフォルトの名無しさんNGNG
>>26 が実際どんなプログラムを書いてるのか知見てみたいものだ
0063デフォルトの名無しさんNGNG
>>60
実務、実務と言うやつに限って、

 「デスマーチになってるのは、お前のせいだろう、ゴルァ」

と言いたくなるようなコードを書いていて笑えない、っつー傾向もあるが。全部が全部じゃないけど。
0064デフォルトの名無しさんNGNG
泥臭いコードかいて、
泥臭いデバッグして、
泥臭いバグが取れずに、
行進するのが「実務」だと勘違いしていると思われ。
0065デフォルトの名無しさんNGNG
本人が最新だと思いこんでるコードかいて、
本人が最新だと思いこんでるデバッグして、
本人が最新だと思いこんでるバグが取れずに、
途中で投げ出して会社来なくなるくせに
なぜか周りを見下しているデザパタ馬鹿よりはマシだろ。
0066デフォルトの名無しさんNGNG
>>10-11

が本質を突いた!
0067デフォルトの名無しさんNGNG
>>65
くどいなぁ。sage ぐらい覚えろよ。
0068デフォルトの名無しさんNGNG
>>65
デザパタが最新ねぇ(w
0069デフォルトの名無しさんNGNG
http://discuss.develop.com/archives/wa.exe?A2=ind0201b&L=dotnet&F=&S=&P=60006
0070デフォルトの名無しさんNGNG
>>69
ごめん。間違えた。
0071デフォルトの名無しさんNGNG
>>65
> 本人が最新だと思いこんでるデバッグして、
UnitTest のことか?

デザパタは設計に関する話だから、旧来の設計手法と「二者択一」になる場面はあるが、テスト
技法に関しては

 printf デバッグ
 デバッガによるステップ実行
 積極的な assert()
 コードレビュー

なんかと並行して UnitTest 使うのは可能だから、問題はないと思うが。テスト手法は、バリエー
ションを増やせば検出できるバグの数は増えこそすれ、減ることはない。費用対効果の問題はあ
るけど、基本的にバグは

 発見が遅れれば遅れるほど、損害が指数関数的に大きくなる

代物だから、多少のコストをかけても早めに対策しておくのは正当化できる場合が多いぞ。
0072C++超初心者NGNG
デザインパターン・・・・・・
わかりません先生ミ#゚Д゚ミy-~教えてください
0073デフォルトの名無しさんNGNG
>>72
よくあるデザインのパターンです。
0074デフォルトの名無しさんNGNG
>>72
google
007572NGNG
http://www.google.com/search?q=%83f%83U%83C%83%93%83p%83%5E%81%5B%83%93%81@%88%D3%96%A1&hl=ja

逝ってきます。
0076デフォルトの名無しさんNGNG
ていうか結城さんのギコ猫とデザインパターンがトップかよ(藁
0077デフォルトの名無しさんNGNG
>>65
デザインパターンに「デバックに関するパターン」なんてあったっけ?
UnitTestとデザインパターンを混同してないか?
(UnitTestにデザインパターンが使われている、って場合はあるが)

>途中で投げ出して会社来なくなるくせに
>なぜか周りを見下しているデザパタ馬鹿よりはマシだろ。
この部分は同意。どんな技法使ってても途中で逃げるヤツは逝って良し!
0078デフォルトの名無しさんNGNG
>>66
スタティック変数とsingletonはちがうもーん
0079デフォルトの名無しさんNGNG
現在のオブジェクト指向は自由すぎるのだ
goto文が廃止されてif,for,whileに整備されたのと同様に
オブジェクト指向はさらに整備されるべきだ
その過程としてデザインパターンはあるのみ
0080デフォルトの名無しさんNGNG
むかしから OO やってきた人にとっては関係ないかも知れないけど、
デザパタは「 OO ではこうプログラミングしろ 」っていうすごい教科書だと
思うよ。
OOPL に触る人はやっぱり全員理解しなきゃ駄目だと思う。
知らなきゃ恥っていうレベルで。
0081 NGNG
「 OO ではこうプログラミングしろ 」などと命令されて動きたくない人
は読まなくてよろしい。
0082デフォルトの名無しさんNGNG
デザインパターンは良いものだけど、いくつかの単語が
予約語扱いになってしまって、名前に困るときがある。
0083デフォルトの名無しさんNGNG
>>77
同じような奴に アンチパターンってのがあったと思います。
0084デフォルトの名無しさんNGNG
>>83
アンチパターンはクソ訳本のせいで用語が定着してません。
0085デフォルトの名無しさんNGNG
79>>
てゆーとOOPLが死滅すると?
0086デフォルトの名無しさんNGNG
1は真面目に質問してるのかと思ったけど、たんにこの名前でスレ立てたかった
だけっぽいな。
0087デフォルトの名無しさんNGNG
1は死滅スレを並べてみたいに、キャラモカロック3個
0088デフォルトの名無しさんNGNG
OO に限らず、手続き型プログラミングでも「定石」はあるけど、なぜか名前がついてないな。

たとえば関数電卓なんかで使う、関数名と実装の関数ポインタの対となるテーブルを用意して使う方法。

struct {
  const char *name;
  int num_opl;
  int (*func)(struct node*);
} op[] = {
  { "sin", 1, Sin },
  { "cos", 1, Cos },
  { "ack", 2, Ack },
};

これで「テーブルドリブンパターン」とか。if - else でロジックに埋め込むよりも保守が楽。

他にも末尾に番兵となる要素を入れておく「センチネルパターン」、連結リストを使うときに両端にダミーノードを
ひとつ用意することで端かどうかの条件分岐を無くす「ダミーノードパターン」とか、いくらでも出てきそうな気が
する。

(この例だと、設計よりは実装よりだな……)
0089デフォルトの名無しさんNGNG
>>88

それらはすでにアルゴリズム定石として確立してるでしょ?
デザインパターンとは粒度が違うよ。
0090デフォルトの名無しさんNGNG
85>>
OOPLの死滅は当分ないと思うが、より整備され、形を変えるのは
そう遠い未来の話ではないと思う。
こういったスレが登場する時点で現状のOOPLはその程度のものでしかない
しかしいつの時代でもSEは現状与えられたテクノロジーで設計するより他に道はないのだ
その限られた条件の中でパターンの定義化というのは重要な意味を持つ。
それは1年もOOPLをやれば誰でもわかる事だ。
0091デフォルトの名無しさんNGNG
>>89
他はともかく、テーブルドリブンは State パターンと粒度が等しいと思う。
0092デフォルトの名無しさんNGNG
>>91
俺的にStateパターンは無駄なクラスが大量に増殖していやん。
とくにJavaなんかだと最悪だね。
009389NGNG
>>91

じゃ、「StateパターンのC言語最適化実装」でいいじゃんか。
言語依存実装をそれぞれパターンとして認定するのは明らかに無駄&有害。
0094デフォルトの名無しさんNGNG
>>93
テーブルを State にしか使わんのか。もったいない。
009589NGNG
>>94

ちがうってば。
メタデザインとして捉えてくれって事。
0096デフォルトの名無しさんNGNG
>>95
フレーズ短すぎ。っつか「メタデザイン」なんて解釈が曖昧で揉めそうな単語を使うなら、定義を書いて
おいたほうが良い思われ。

テーブルドリブンは、もう少し抽象度を上げて書くとデータドリブン、なんじゃないのかなぁ。ロジックに
に書かずにデータに切り出すという意味で。
009789NGNG
>>96
話が通じにくいな。
ここでも読んでみたら?
http://www.omgj.org/technology/beginner/mda.html
0098デフォルトの名無しさんNGNG
>>89パターンと呼ぶかどうかは粒度が問題とはならない。
アナリシスパターン・アーキテクチャパターン・デザパタとかいろいろあるけど、
どんな粒度でもパターンと呼べばパターンだし。
まあ、デザパタではないという意見なら賛同だな。
っつーか、OOじゃないし>>88は。

しかし、>>88は分類が難しいな…
Cのイディオムというには扱ってる内容が一般的過ぎる。
名前とメソッドの対をどこかのテーブルで一元管理するなんてことは
Cじゃなくてもできるし、むしろやってるし…
0099デフォルトの名無しさんNGNG
それこそ本人が言うとおりのテーブルドリブンパターンとか言って、そのCでの実装例が>>88ってとこだね。
確かに名前がないけど、粒度が細かくて名前を付けるまでもない範疇になってるのかなぁ。
(パターンの爆発につながるって(藁)
が、そういう考えはオブジェクト指向的な「ものに名前を付けて名前で管理する」考えと逆行するとも
言えるし、確かに難しいところではある。最近この手のイディオム的なものにも〜パターンなんて
つけてるのが多くてちょっとうざいと思ったり。(例:NullObjectパターン)
0100ミルクココア ◆KMhlJLXI NGNG
  100げっと〜!
   ̄ ̄∨ ̄ ̄ ̄
  __∧∧__
/\(゚ー゚*)  \         (´´
\/| ̄∪ ̄ ̄|\     (´⌒(´
  \|____|≡≡≡(´⌒;;;≡≡≡
         (´⌒(´⌒;;
    ズザーーーーーッ
0101パターンオタクNGNG
>99
オレはデザインパターンの考え方に感化されちゃって
日常生活での作業にも色んなパターン名をつけてるよ
恥ずかしくてとても他人には言えないけど(藁

デザインパターンそのものの良し悪しではなくて
パターンを見出すという行為に惹かれる奴が結構多いんじゃないのか?
もちろん、それを一般に流布するかどうかは別問題だけどね。
0102デフォルトの名無しさんNGNG
デザパタ14のパターンをウェブ上でサンプルソースつきで
手に入れることってできますかね?
googleで検索しても手にはいらん。
0103デフォルトの名無しさんNGNG
>>1
死滅するわけ無いじゃん。昔からあるやつに名前つけただけなんだから。
0104デフォルトの名無しさんNGNG
>>103
>>26はそれを、レベルが低いと行ってますが。
0105デフォルトの名無しさんNGNG
>>102
「デザインパターンの骸骨」とか行ってみれば?
0106デフォルトの名無しさんNGNG
>>104
無知はほうっておきましょう。
デザパタ本に書いてあるとおりの人なので笑ってしまいます。
まるでお釈迦様の手から出られない孫悟空のよう。出たと思っているのは自分だけ。
0107デフォルトの名無しさんNGNG
Rational XDEを試してみたが、かなりよさそう。
お勧めは、デザインパターンを利用したクラスを生成するウィザード
0108デフォルトの名無しさんNGNG
Rationalのツールはどれも値段高すぎ。
使用してみる分にはよさそうに思えて常用するには動作が重い。
いざ買ってみると高確率で不良資産化する罠。
■ このスレッドは過去ログ倉庫に格納されています