Submit Search
Are Design Patterns Dead?
0 likes
805 views
Yoshitaka Kawashima
吉祥寺.pm32で話したスライドです。 邦題: デザインパターンは死んだ(のか)?
Software
Related topics:
Software Design Patterns
Read more
1 of 15
Download now
Download to read offline
1
2
3
4
5
6
7
Most read
8
9
10
11
12
13
14
Most read
15
Most read
More Related Content
PDF
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima
PDF
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
PDF
イミュータブルデータモデルの極意
Yoshitaka Kawashima
PDF
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
PDF
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
PPT
Raft
Preferred Networks
PPTX
トランザクションの設計と進化
Kumazaki Hiroki
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
イミュータブルデータモデルの極意
Yoshitaka Kawashima
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
Raft
Preferred Networks
トランザクションの設計と進化
Kumazaki Hiroki
What's hot
(20)
PDF
トランザクションの並行実行制御 rev.2
Takashi Hoshino
PDF
PHPで大規模ブラウザゲームを開発してわかったこと
Kentaro Matsui
PPTX
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
PDF
できる!並列・並行プログラミング
Preferred Networks
PDF
ソフトウェア設計における 意思決定とそのレビューの秘訣
Yoshitaka Kawashima
PDF
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
PDF
ChatGPTは思ったほど賢くない
Carnot Inc.
PDF
PostgreSQLアンチパターン
Soudai Sone
PDF
Ormとの付き合い方
豊明 尾古
PDF
Tackling Complexity
Yoshitaka Kawashima
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
PDF
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
PDF
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
PPTX
Dbts 分散olt pv2
Takashi Kambayashi
PDF
トランザクションの並行処理制御
Takashi Hoshino
PDF
CRDT in 15 minutes
Shingo Omura
PDF
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
PPTX
地理分散DBについて
Kumazaki Hiroki
PDF
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
トランザクションの並行実行制御 rev.2
Takashi Hoshino
PHPで大規模ブラウザゲームを開発してわかったこと
Kentaro Matsui
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
できる!並列・並行プログラミング
Preferred Networks
ソフトウェア設計における 意思決定とそのレビューの秘訣
Yoshitaka Kawashima
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
ChatGPTは思ったほど賢くない
Carnot Inc.
PostgreSQLアンチパターン
Soudai Sone
Ormとの付き合い方
豊明 尾古
Tackling Complexity
Yoshitaka Kawashima
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
いまさら聞けない!CUDA高速化入門
Fixstars Corporation
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
Dbts 分散olt pv2
Takashi Kambayashi
トランザクションの並行処理制御
Takashi Hoshino
CRDT in 15 minutes
Shingo Omura
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
地理分散DBについて
Kumazaki Hiroki
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
Ad
Similar to Are Design Patterns Dead?
(7)
PDF
Introduction to Design Patterns_and_Object_Orientation.pdf
yoshitaro yoyo
PDF
Abstract
test
PPT
デザインパターン勉強会
Tetsuya Yoshida
PPTX
デザインパターン入門
KenjiroUehara
PDF
Clarity 2019 で デザインシステムの課題は人なんだと痛感した話
Yusuke Goto
PDF
「創造的な学びを促すパターン・ランゲージ」(井庭崇, PCカンファレンス2017基調講演)
Takashi Iba
PDF
企業向け「パターン・ランゲージ3.0研究会」第1回スライド
Takashi Iba
Introduction to Design Patterns_and_Object_Orientation.pdf
yoshitaro yoyo
Abstract
test
デザインパターン勉強会
Tetsuya Yoshida
デザインパターン入門
KenjiroUehara
Clarity 2019 で デザインシステムの課題は人なんだと痛感した話
Yusuke Goto
「創造的な学びを促すパターン・ランゲージ」(井庭崇, PCカンファレンス2017基調講演)
Takashi Iba
企業向け「パターン・ランゲージ3.0研究会」第1回スライド
Takashi Iba
Ad
More from Yoshitaka Kawashima
(20)
PDF
Grokking Simplicity探訪
Yoshitaka Kawashima
PDF
ブルックスのいう銀の弾丸とは何か?
Yoshitaka Kawashima
PDF
ソフトウェア開発における『知の高速道路』
Yoshitaka Kawashima
PDF
本番障害に至る病
Yoshitaka Kawashima
PDF
システムダウンのひみつ
Yoshitaka Kawashima
PDF
Mavenの真実とウソ
Yoshitaka Kawashima
PDF
アンチフラジャイルの世界
Yoshitaka Kawashima
PDF
Atomic Architecture
Yoshitaka Kawashima
PDF
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
Yoshitaka Kawashima
PDF
ウォーターフォールとアジャイルのフェアな比較
Yoshitaka Kawashima
PDF
How to find tech books
Yoshitaka Kawashima
PDF
Antifragile Java - Java Day Tokyo 2017 D1-E1
Yoshitaka Kawashima
PDF
たとえ日本人同士でも必要な異文化理解力
Yoshitaka Kawashima
PDF
SIerにとっての越境 @ DevLOVE 199
Yoshitaka Kawashima
PDF
なぜデータモデリングが重要なのか?
Yoshitaka Kawashima
PDF
Antifragile Clojure
Yoshitaka Kawashima
PDF
Boilerplate vs Magic
Yoshitaka Kawashima
PDF
既婚プログラマの時間捻出術
Yoshitaka Kawashima
PDF
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Yoshitaka Kawashima
PDF
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
Yoshitaka Kawashima
Grokking Simplicity探訪
Yoshitaka Kawashima
ブルックスのいう銀の弾丸とは何か?
Yoshitaka Kawashima
ソフトウェア開発における『知の高速道路』
Yoshitaka Kawashima
本番障害に至る病
Yoshitaka Kawashima
システムダウンのひみつ
Yoshitaka Kawashima
Mavenの真実とウソ
Yoshitaka Kawashima
アンチフラジャイルの世界
Yoshitaka Kawashima
Atomic Architecture
Yoshitaka Kawashima
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
Yoshitaka Kawashima
ウォーターフォールとアジャイルのフェアな比較
Yoshitaka Kawashima
How to find tech books
Yoshitaka Kawashima
Antifragile Java - Java Day Tokyo 2017 D1-E1
Yoshitaka Kawashima
たとえ日本人同士でも必要な異文化理解力
Yoshitaka Kawashima
SIerにとっての越境 @ DevLOVE 199
Yoshitaka Kawashima
なぜデータモデリングが重要なのか?
Yoshitaka Kawashima
Antifragile Clojure
Yoshitaka Kawashima
Boilerplate vs Magic
Yoshitaka Kawashima
既婚プログラマの時間捻出術
Yoshitaka Kawashima
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
Yoshitaka Kawashima
マイクロフレームワークEnkan(とKotowari)ではじめるREPL駆動開発
Yoshitaka Kawashima
Are Design Patterns Dead?
1.
Are Design Patterns
Dead? kawasima
2.
Are Design patterns
dead?
3.
What are Design
patterns 例:横断歩道 歩行路が道路を横断する地点では、たとえ歩行者に法的優先権があろうとも、車には歩行者を脅迫 し、服従させる力がある。これは歩行路と道路が同一平面上にあるとつねに生じる問題である。(中 略)横断者が道路を快適で安全と感じるのは、横断歩道が障害物になり、車がスピードを落とし、歩 行者に道を譲ることを物理的に保証される場合のみである。(中略)横断歩行路を道路より15-30cm 高くし、道路がそこに向かって盛り上がるようにすればよい。勾配が1/6以下であれば車には安全だ し、しかも確実に車はスピードダウンする。遠方から横断を見やすくし、またそこでの歩行者の権利 に重み付けをする意味でも、道路際に縁を設けて歩行路を明示することもできよう。(中略)問題の 道路に、1日数回、異なった時間に出かけてみること。その度に、何秒待てば横断できるか測るこ と。待ち時間の平均が2秒以上であれば、このパターンを適用する方がよい。(後略) http://www.s-lagoon.co.jp/pattern_use_nf.html
4.
Pattern Structure ・問題:横断歩道を造るとき、歩行者に安心感を与え、安全を守らねばならない ・フォース:2秒以上待たないと横断できないような道路 ・解決策:横断歩行路を道路より15-30cm高くし、勾配を付けて車の走行に配慮 する フォースとは… 解決しなければならない問題に対して、選択すべき解決策を 限定させるような、特定の状況の制約
5.
Pattern Structure 問題 解決策 解決策 フォース フォース 解決策 フォース 繰り返し見られる (問題, フォース,
解決策)の ペア
6.
フォースが変わると解決策も変わる
7.
Singleton 問題: あるデータが1つだけであることを保証したい フォース: 生成のタイミングは利用するアプリケーション側でコント ロールしたいが、そこで生成されるデータ自体を書き換えることはでき ない。 解決策:
Javaだとダブルチェックロッキング
8.
※Notion AIに書いてもらいました
9.
DIコンテナになると、自前で実装する必要が無くなった 依然として解きたい問題はそこにありフォースも変わらないので 多くの人はSingletonパターンとして認識する
10.
問題: あるデータが1つだけであることを保証したい フォース: 生成のタイミングは別にアプリケーションがコントロールする必 要はない 大元のフォースが変わると異なるパターンになる 解決策:
グローバル変数として作っておけば良い ○ Node.jsならexport const singleton = new Singleton() ○ JavaならClass初期化時にINSTANCE生成 この場合、ただの「グローバル変数パターン」?
11.
クラス継承前提のパターンはOOじゃなければ変容する
12.
Template Method 問題: アルゴリズムの構造を変更することなく、アルゴリズムの特定のス テップを再定義したい フォース:
サブクラス毎に再定義したいステップを実装する
13.
※Notion AIに書いてもらいました
14.
※Notion AIに書いてもらいました (関数合成はしてないですね) Template
Methodの「問題」は以前と して存在していて、フォースが「サ ブクラス」から「部分適用と関数合 成」に変わる フォースが大きく変わるとパターン 名くらいは変えていいかも…
15.
言語の発展とともに不要になった ➡ 不正確 Web開発では元々「問題」として現れにくいものもあった ➡ Flyweight,
Interpretor 言語(フレームワーク)の発展とともに自分で解決策を実装しなくても良くなっただけ ➡「生成」のパターン全般 GoFはオブジェクト指向前提なので、解決策が変わるだけ 継承によるポリモーフィズム → パターンマッチによるポリモーフィズム ➡ Object Scopeのパターン (are still alive!!) フォースまで変わると、別パターン(元のパターンは死んだと言っていいかも) ➡ Template Method まとめ
Download