Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Symfonyと抽象クラス
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
matsu_hide
August 07, 2019
Programming
320
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Symfonyと抽象クラス
matsu_hide
August 07, 2019
Other Decks in Programming
See All in Programming
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
Android CLI
fornewid
0
220
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
700
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
930
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
500
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
320
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
290
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
330
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
380
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
510
テーブルをDELETEした
yuzneri
0
140
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
470
Color Theory Basics | Prateek | Gurzu
gurzu
0
420
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
200
Measuring & Analyzing Core Web Vitals
bluesmoon
9
960
GraphQLとの向き合い方2022年版
quramy
50
15k
Unsuck your backbone
ammeep
672
58k
Transcript
Symfonyと 抽象クラス Symfony Meetup Kansai #2 松藤 秀治 (2019-08-07)
自己紹介 • 松藤 秀治(まつふじ ひではる) • matsu_hide • フリーエンジニア • Symfonyをよく使う
抽象クラスとは?
特定の視点から対象を見たときに 導き出される型と振る舞い (自説)
抽象クラス 実装寄り → インスタンスとかテンプレートメソッドとか 設計寄り → 抽象とか 今日は設計寄りの話です。
抽象クラスは悪者? ・確かに共通処理をくくりだすという理由だけで使うと失敗しや すい。 ・でもうまくいっている例もあるはず。 ・一体何が違うんだろう?
[Symfonyでの使用例1] フォームタイプ
[Symfonyでの使用例2] バリデーター(制約)
[Symfonyでの使用例3] ダンプ
どうしてSymfony(フレームワーク)では 使われているのか?
AbstractType → フォームの要素をどう扱うか? Constraint → Nullや文字数の制約をどう扱うか? AbstractDumper → オブジェクトなどをどう出力するか? 解決したい問題に着目(特定の視点)
そうは言ってもフレームワーク は特別でしょう?
・ソフトウェアで問題を解決するという点でフレームワークも自分 が作るものも同じ。 ・それならフレームワークで使われている技術は自分が作るとき も有用なはず。 ・自分が作るものをフレームワークにするとしたら?という視点。
まとめ • 解決したい問題に焦点をあて、必要であれば抽象クラスを 使う。(再利用される頻度と複雑さのバランスは大事。) • 自分が作るものをフレームワークにするとしたら?という 視点は大事。 • 抽象クラスだけでなくさまざまな技術は問題を解決する(捉 える)ためにある。