- ベストアンサー
デザインパターンは必要か
ソフトウェア開発(共同開発)で開発側の仕事を されている方に聞きたいのですが 開発者としてデザインパターンは 必須の知識といえるのでしょうか? 知らない人はいない。 全て知っている人はほとんどいない。 知ってた方がよい。 知っててもたいして役に立たない。 どうなんでしょうか? たとえば自分がデザインパターンを習得して 共通の語彙としてのメリットを発揮できるのかということが ちょっと疑問に思いましたです。 開発の場にいったとしても周りがデザインパターンってなに? っていうような状況にはなっていないのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
個人的には必須だと思います。 理由としては、回答1の方がおっしゃっているように、デザインパターンとは ・デザインパターンは先人の知恵の集合(ベターなものの集まり) ・自分でより良い設計を考えたらデザインパターンに近いものになっていることが多い だからです。 しかし、デザインパターンをちゃんと知って開発している人は、非常に少ないです。 特に、Springとかいろんなフレームワークが出てきた昨今は。 だからこそ知っておくべきなのです。 性能が出ない場合なのでチューニングするとき、デザインパターンを知っていればより性能のよいチューニングが出来るかもしれません。 そして、デザインパターンを知っていてそれがチューニングに役立ったら、 「デザインパターンを無視した設計だったから性能が出なかった。バグの原因になった。デザインパターンどおりにやればこんなに良くなります」と上司に説明してあげましょう。 その一言が信頼につながって、ただの1開発者からリーダーへの出世につながるでしょう。 また、Springなどのフレームワークの内部を解析すると、デザインパターンを駆使して設計されていることが分かります。 つまり、そうゆうコアな人材になるには知っている方が良いと思います。
その他の回答 (2)
- isle
- ベストアンサー率51% (77/150)
実装をひと言で説明できるメリットは絶大です。 周りが知らなくても自ら浸透させるつもりで使いましょう。
私自身も、別にデザインパターンを意識して開発をすることはありません。が、ある程度の規模のものを作成していて、あれこれ試行錯誤して「こうするのがベターだな」とたどり着いたところを振り返ってみると、だいたいデザインパターンに近い設計になっているものだと思うことが多々あります。 デザインパターンというのは、別に特殊なものではなくて、多くの人が「これがベターだろう」とたどり着いたものをパターン化したものです。ですから、「それを使うべき」とかいうことではないでしょう。ただ、実際にあこれこ試してみると、だいたいデザインパターンに近い設計になっているはずです。 デザインパターンの用語を知らなくとも、「こういう働きのクラスとして定義すれば便利じゃない?」といえば、(まともなプログラマなら)「あぁ、そうだな」と思うはずです。知らなくてもいいけれど、知っていれば、途中の試行錯誤をしないで簡単に「ベターだと思われるやり方」にたどり着ける、というようなものだと思っています。 ですから、語彙としてデザインパターンの用語を使えるようになるかどうか、ということはあまり考えなくてもいいんじゃないでしょうか。自分なりにデザインパターンの考え方を理解し、それを武器にして「こういう設計でいこう」と提言する、ということでいいのではないかと思います。そうすることで、「あいつはなかなかいい設計をするな」と自分の評価も高まるでしょうし。そんな便利なものを、わざわざ同僚に教えてやる必要ないですよ(笑)。