「デザイン・パターン」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''デザイン・パターン'''(design pattern)とは、効率の良い[[プログラミング]]の完成への道筋と、長期的な良い方向への保守改善を実現するために、[[設計]]時や[[開発]]時におこる典型的な失敗例と解決方法を、幾多の地獄を経験してきた[[プログラマー]]たちが後世に残した遺言である。
+
'''デザイン・パターン'''とは、効率の良い[[プログラミング]]の完成への道筋と、長期的な良い方向への保守改善を実現するために、[[設計]]時や[[開発]]時におこる典型的な失敗例と解決方法を書き残した、幾多の地獄を経験してきた[[プログラマー]]たちが後世に残した遺言である。
  
[[デザイン]]、すなわち「[[設計]]」の段階で決めておくべきものであり、[[インプリメンテーション]]([[実装]])の段階で用いられる[[コーディングパターン]]や[[コーディング規約]]ではない点に注意すること。
+
デザインパターンに従うと、簡単なことをするにも例外なく[[設計]]に時間がかかり[[ソースコード]]も長ったらしくなる。たとえば「[[hello, world]]」にデザインパターンを適用すべきかというと言えばそうではない。ただ弊害があるにも関わらず「なぜ先人たちは遺言を残したのか」ということを考えず[[プログラミング]]すれば、プロジェクトが肥大化したときにその理由を知ることになる。<ref>http://search.yahoo.co.jp/search?p=%E3%81%93%E3%81%93%E3%82%88%E3%82%8A%E4%B8%8B%E3%81%AB%E5%AE%B6%E3%82%92%E5%BB%BA%E3%81%A6%E3%82%8B%E3%81%AA%20%E7%9F%B3%E7%A2%91</ref>
 
 
== メリットとデメリット ==
 
デザインパターンに従うと、簡単なことをするにも例外なく[[設計]]に時間がかかり[[ソースコード]]も長ったらしくなる。たとえば「[[hello, world]]」にデザインパターンを適用すべきかというと言えばそうではない。
 
 
 
ただ弊害があるにも関わらず「なぜ先人たちは遺言を残したのか」ということを考えず[[プログラミング]]すれば、プロジェクトが肥大化したときにその理由を知ることになる。
 
 
 
== 事例 ==
 
=== ファイナルファンタジー14 ===
 
ファイナルファンタジー14のテクニカルディレクターとして有名なスクウェア・エニックスの橋本善久氏は、自身の体験に基づいた[[アジャイル]]論として、1人でも作れる「犬小屋」と、建築に多くの人数が必要となる「超高層ビル」という対照的な建物を挙げ、「これらに同じ方法論は通用しない」という。
 
 
 
超高層ビルを無計画で建てようとする天文学級の馬鹿はいないが、[[ソフトウェア]]の[[開発]]の現場ではそうしたことが往々にして起こるといい、その理由はソフトウェア開発では規模や問題が見えにくいため、問題が表面化してどうしようもなくなるまで “とりあえず作る” ことができてしまうことによるものだという。
 
<ref>http://www.4gamer.net/games/000/G000000/20120320001/</ref>
 
 
 
=== 大津浪記念碑 ===
 
高き住居は児孫の和楽、想へ惨禍の大津浪、此処より下に家を建てるな
 
 
明治二十九年にも、昭和八年にも津波は此処まで来て部落は全滅し、
 
生存者、僅かに前に二人後ろに四人のみ、幾歳経るとも要心あれ
 
<ref>http://search.yahoo.co.jp/search?p=%E3%81%93%E3%81%93%E3%82%88%E3%82%8A%E4%B8%8B%E3%81%AB%E5%AE%B6%E3%82%92%E5%BB%BA%E3%81%A6%E3%82%8B%E3%81%AA%20%E7%9F%B3%E7%A2%91</ref>
 
  
 
== 関連項目 ==
 
== 関連項目 ==
* [[オブジェクト指向]]
 
* [[契約による設計]]
 
* [[Active Record]]
 
 
* [[Model View ViewModel]]
 
* [[Model View ViewModel]]
 
* [[Model View Controller]]
 
* [[Model View Controller]]
 
 
== 参考文献 ==
 
== 参考文献 ==
 
<references/>
 
<references/>
 
== 外部リンク ==
 
== 外部リンク ==
http://toro.2ch.net/test/read.cgi/tech/1327414519/165
 
  
 
{{stub}}
 
{{stub}}

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: