Movatterモバイル変換


[0]ホーム

URL:


PDF, PPTX838 views

Are Design Patterns Dead?

吉祥寺.pm32で話したスライドです。邦題: デザインパターンは死んだ(のか)?

Embed presentation

Download as PDF, PPTX
Are Design Patterns Dead?kawasima
Are Design patterns dead?
What are Design patterns例:横断歩道歩行路が道路を横断する地点では、たとえ歩行者に法的優先権があろうとも、車には歩行者を脅迫し、服従させる力がある。これは歩行路と道路が同一平面上にあるとつねに生じる問題である。(中略)横断者が道路を快適で安全と感じるのは、横断歩道が障害物になり、車がスピードを落とし、歩行者に道を譲ることを物理的に保証される場合のみである。(中略)横断歩行路を道路より15-30cm高くし、道路がそこに向かって盛り上がるようにすればよい。勾配が1/6以下であれば車には安全だし、しかも確実に車はスピードダウンする。遠方から横断を見やすくし、またそこでの歩行者の権利に重み付けをする意味でも、道路際に縁を設けて歩行路を明示することもできよう。(中略)問題の道路に、1日数回、異なった時間に出かけてみること。その度に、何秒待てば横断できるか測ること。待ち時間の平均が2秒以上であれば、このパターンを適用する方がよい。(後略)http://www.s-lagoon.co.jp/pattern_use_nf.html
Pattern Structure・問題:横断歩道を造るとき、歩行者に安心感を与え、安全を守らねばならない・フォース:2秒以上待たないと横断できないような道路・解決策:横断歩行路を道路より15-30cm高くし、勾配を付けて車の走行に配慮するフォースとは…解決しなければならない問題に対して、選択すべき解決策を限定させるような、特定の状況の制約
Pattern Structure問題解決策解決策フォースフォース解決策フォース繰り返し見られる(問題, フォース, 解決策)のペア
フォースが変わると解決策も変わる
Singleton問題: あるデータが1つだけであることを保証したいフォース: 生成のタイミングは利用するアプリケーション側でコントロールしたいが、そこで生成されるデータ自体を書き換えることはできない。解決策: Javaだとダブルチェックロッキング
※Notion AIに書いてもらいました
DIコンテナになると、自前で実装する必要が無くなった依然として解きたい問題はそこにありフォースも変わらないので多くの人はSingletonパターンとして認識する
問題: あるデータが1つだけであることを保証したいフォース: 生成のタイミングは別にアプリケーションがコントロールする必要はない大元のフォースが変わると異なるパターンになる解決策: グローバル変数として作っておけば良い○ Node.jsならexport const singleton = new Singleton()○ JavaならClass初期化時にINSTANCE生成この場合、ただの「グローバル変数パターン」?
クラス継承前提のパターンはOOじゃなければ変容する
Template Method問題: アルゴリズムの構造を変更することなく、アルゴリズムの特定のステップを再定義したいフォース: サブクラス毎に再定義したいステップを実装する
※Notion AIに書いてもらいました
※Notion AIに書いてもらいました (関数合成はしてないですね)Template Methodの「問題」は以前として存在していて、フォースが「サブクラス」から「部分適用と関数合成」に変わるフォースが大きく変わるとパターン名くらいは変えていいかも…
言語の発展とともに不要になった➡ 不正確Web開発では元々「問題」として現れにくいものもあった➡ Flyweight, Interpretor言語(フレームワーク)の発展とともに自分で解決策を実装しなくても良くなっただけ➡「生成」のパターン全般GoFはオブジェクト指向前提なので、解決策が変わるだけ継承によるポリモーフィズム → パターンマッチによるポリモーフィズム➡ Object Scopeのパターン (are still alive!!)フォースまで変わると、別パターン(元のパターンは死んだと言っていいかも)➡ Template Methodまとめ

Recommended

PDF
Tackling Complexity
PDF
ソフトウェアにおける 複雑さとは何なのか?
PDF
強いて言えば「集約どう実装するのかな、を考える」な話
PDF
ソフトウェア設計における 意思決定とそのレビューの秘訣
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
PDF
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
PDF
世界でいちばんわかりやすいドメイン駆動設計
PPTX
オーバーエンジニアリングって何? #devsumi #devsumiA
PDF
なぜデータモデリングが重要なのか?
PDF
ドメイン駆動設計 の 実践 Part3 DDD
PDF
イミュータブルデータモデルの極意
PDF
Domain Modeling Made Functional (DevTernity 2022)
PDF
レコメンドアルゴリズムの基本と周辺知識と実装方法
PDF
それはYAGNIか? それとも思考停止か?
PDF
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
PDF
PostgreSQLアンチパターン
PDF
会社でClojure使ってみて分かったこと
PDF
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
PDF
イミュータブルデータモデル(世代編)
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
PDF
フロー効率性とリソース効率性、再入門 #devlove #devkan
PDF
ソーシャルゲームのためのデータベース設計
PPTX
Uncoupling
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
PPTX
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
 
PDF
TLS, HTTP/2演習
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
PDF
マイクロにしすぎた結果がこれだよ!
PDF
「創造的な学びを促すパターン・ランゲージ」(井庭崇, PCカンファレンス2017基調講演)
PDF
企業向け「パターン・ランゲージ3.0研究会」第1回スライド

More Related Content

PDF
Tackling Complexity
PDF
ソフトウェアにおける 複雑さとは何なのか?
PDF
強いて言えば「集約どう実装するのかな、を考える」な話
PDF
ソフトウェア設計における 意思決定とそのレビューの秘訣
PDF
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
PDF
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
PDF
世界でいちばんわかりやすいドメイン駆動設計
PPTX
オーバーエンジニアリングって何? #devsumi #devsumiA
Tackling Complexity
ソフトウェアにおける 複雑さとは何なのか?
強いて言えば「集約どう実装するのかな、を考える」な話
ソフトウェア設計における 意思決定とそのレビューの秘訣
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
世界でいちばんわかりやすいドメイン駆動設計
オーバーエンジニアリングって何? #devsumi #devsumiA

What's hot

PDF
なぜデータモデリングが重要なのか?
PDF
ドメイン駆動設計 の 実践 Part3 DDD
PDF
イミュータブルデータモデルの極意
PDF
Domain Modeling Made Functional (DevTernity 2022)
PDF
レコメンドアルゴリズムの基本と周辺知識と実装方法
PDF
それはYAGNIか? それとも思考停止か?
PDF
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
PDF
PostgreSQLアンチパターン
PDF
会社でClojure使ってみて分かったこと
PDF
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
PDF
イミュータブルデータモデル(世代編)
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
PDF
フロー効率性とリソース効率性、再入門 #devlove #devkan
PDF
ソーシャルゲームのためのデータベース設計
PPTX
Uncoupling
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
PPTX
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
 
PDF
TLS, HTTP/2演習
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
PDF
マイクロにしすぎた結果がこれだよ!
なぜデータモデリングが重要なのか?
ドメイン駆動設計 の 実践 Part3 DDD
イミュータブルデータモデルの極意
Domain Modeling Made Functional (DevTernity 2022)
レコメンドアルゴリズムの基本と周辺知識と実装方法
それはYAGNIか? それとも思考停止か?
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
PostgreSQLアンチパターン
会社でClojure使ってみて分かったこと
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
イミュータブルデータモデル(世代編)
ドメイン駆動設計 ( DDD ) をやってみよう
フロー効率性とリソース効率性、再入門 #devlove #devkan
ソーシャルゲームのためのデータベース設計
Uncoupling
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
 
TLS, HTTP/2演習
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
マイクロにしすぎた結果がこれだよ!

Similar to Are Design Patterns Dead?

PDF
「創造的な学びを促すパターン・ランゲージ」(井庭崇, PCカンファレンス2017基調講演)
PDF
企業向け「パターン・ランゲージ3.0研究会」第1回スライド
PDF
Introduction to Design Patterns_and_Object_Orientation.pdf
PPTX
デザインパターン入門
PDF
Abstract
 
PDF
Clarity 2019 で デザインシステムの課題は人なんだと痛感した話
PPT
デザインパターン勉強会
「創造的な学びを促すパターン・ランゲージ」(井庭崇, PCカンファレンス2017基調講演)
企業向け「パターン・ランゲージ3.0研究会」第1回スライド
Introduction to Design Patterns_and_Object_Orientation.pdf
デザインパターン入門
Abstract
 
Clarity 2019 で デザインシステムの課題は人なんだと痛感した話
デザインパターン勉強会

More from Yoshitaka Kawashima

PDF
システムダウンのひみつ
PDF
ブルックスのいう銀の弾丸とは何か?
PDF
Grokking Simplicity探訪
PDF
ソフトウェア開発における『知の高速道路』
PDF
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
PDF
アンチフラジャイルの世界
PDF
ウォーターフォールとアジャイルのフェアな比較
PDF
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
PDF
Mavenの真実とウソ
PDF
Atomic Architecture
PDF
たとえ日本人同士でも必要な異文化理解力
PDF
Antifragile Clojure
PDF
Antifragile Java - Java Day Tokyo 2017 D1-E1
PDF
本番障害に至る病
PDF
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
PDF
既婚プログラマの時間捻出術
PDF
Boilerplate vs Magic
PDF
How to find tech books
PDF
週刊Webサイトのアーキテクチャ
PDF
SIerにとっての越境 @ DevLOVE 199
システムダウンのひみつ
ブルックスのいう銀の弾丸とは何か?
Grokking Simplicity探訪
ソフトウェア開発における『知の高速道路』
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
アンチフラジャイルの世界
ウォーターフォールとアジャイルのフェアな比較
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Mavenの真実とウソ
Atomic Architecture
たとえ日本人同士でも必要な異文化理解力
Antifragile Clojure
Antifragile Java - Java Day Tokyo 2017 D1-E1
本番障害に至る病
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
既婚プログラマの時間捻出術
Boilerplate vs Magic
How to find tech books
週刊Webサイトのアーキテクチャ
SIerにとっての越境 @ DevLOVE 199

Are Design Patterns Dead?


[8]ページ先頭

©2009-2025 Movatter.jp