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
Why abstract class is evil? 〜Abstract classはなぜ邪...
Search
Hiromi Hishida
May 22, 2019
Programming
0
1.4k
Why abstract class is evil? 〜Abstract classはなぜ邪悪か?〜
Symfony meetup kansai 第1回
https://symfony-kansai.connpass.com/event/128538/
発表スライド
Hiromi Hishida
May 22, 2019
Tweet
Share
More Decks by Hiromi Hishida
See All by Hiromi Hishida
Beyond ORM
77web
11
1.7k
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
8
8.3k
DoctrineとPostgreSQLの便利な機能、どっちも諦めたくない!
77web
0
200
すばやく実装するための戦略とテクニック2024 / speed is power! 2024 #techramen24conf #shoyu
77web
9
4.7k
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
900
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
300
100%出しきれないのを許すスクラムチーム運営
77web
1
330
マイクロサービスがほしいと思ったときに本当に必要だったもの〜なぜ人は共通基盤の夢を見るのか〜 / why microservice
77web
5
1.7k
モデルとはなにか / what is model?
77web
7
3.2k
Other Decks in Programming
See All in Programming
たのしいSocketのしくみ / Socket Under a Microscope
coe401_
8
1.4k
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
120
楽しく向き合う例外対応
okutsu
0
710
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
7
4.2k
はじめての Go * WASM *OCR
sgash708
1
110
Domain-Driven Design (Tutorial)
hschwentner
13
22k
SwiftUI Viewの責務分離
elmetal
PRO
2
280
コードを読んで理解するko build
bells17
1
110
Jakarta EE meets AI
ivargrimstad
0
570
Jasprが凄い話
hyshu
0
180
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
5
1.1k
Swift Testingのモチベを上げたい
stoticdev
2
150
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
650
Scaling GitHub
holman
459
140k
Code Reviewing Like a Champion
maltzj
521
39k
Optimizing for Happiness
mojombo
377
70k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Done Done
chrislema
182
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
134
33k
Designing for humans not robots
tammielis
250
25k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Transcript
8IZBCTUSBDUDMBTTJTFWJM நΫϥεͳͥअѱ͔ʁ 4ZNGPOZNFFUVQLBOTBJ
ɾ!XFC ɾϑϦʔϥϯεʢ͙Β͍ʣˠΧϧςοτίϛϡχέʔγϣϯζʢʣ ɾ໊ݹ ɾࣇͷ ɾຊ4ZNGPOZϢʔβʔձ ɾ$PEFS%PKP໊ݹॳνϟϯϐΦϯʢॾࣄ͋ͬͯҾୀʜʣ ɾ*—1)1
ɾӡ༻ܕࠂۀքΛϗϫΠτʹ͢ΔΈΛ࡞ͬͯ·͢ ɾؒืूதʂʢϑϧϦϞʔτɺύʔτλΠϜɺͪΖΜϑϧ λΠϜਖ਼ࣾһܴʣ ɾ4ZNGPOZͬͯ·͢ʂ
BCTUSBDUDMBTTͱ
BCTUSBDUDMBTTͱ w நΫϥε w SFGTநͬͯԿʁCZ!IJEFOPSJHPUP w ܧঝ͞ΕΔલఏͷϕʔεΫϥε
͜ͷτʔΫͷత w BCTUSBDUDMBTTͷअѱ͞ΛΔ w BCTUSBDUDMBTTͷ͍ํΛΔ
ࣄྫ
ཁ݅ᶃ ϢʔβʔཧػೳΛ࡞ͬͯ Ͷɻ৽نొͱใߋ৽͕ཁ ΔΑɻ ߲Ϣʔβʔ໊ɾύεϫʔ υɾϝʔϧΞυϨεͶɻ
࣮ᶃ 4ZNGPOZΛͬͯ࡞ͬͨ Αʂ&OUJUZ࡞ͬͯ'PSN࡞ͬ ͯίϯτϩʔϥʔͰFN QFSTJTU ͢Δͭɻ͔Μͨ ΜͩͶʂ
ཁ݅ᶄ ύεϫʔυฏจอଘ͢͞ ͕ʹϠόΠΑɻ҉߸Խͯ͠ Ͷɻ҉߸ԽํࣜTIBͰ͍ ͍Αɻ
࣮ᶄ ΞΠΞΠαʔɻ ొͱߋ৽྆ํͷΞΫγϣϯ ʹύεϫʔυ҉߸ԽΛॻ͍ͯ ʂ
None
͋ΕΕίϐϖͩͳʜ
ϦϑΝΫλᶃ Α͠ɺొͱߋ৽ʹڞ௨ͷ ॲཧ͕͋Δ͔Β6TFS.BOBHFS ͱ͍͏ʮαʔϏεʯʹ·ͱΊͨ ͥʂ %%%ͩͥʂྲྀߦΓͷϨΠϠʔυ ΞʔΩςΫνϟͱݴ͏͔ͳʂ
None
None
ཁ݅ᶅ ෆਖ਼ϢʔβʔͷΞΧϯτౚ݁ Λ࡞Δ͜ͱʹͳͬͨΑɻ ౚ݁ػೳଞͷϝϯόʔ͕࣮ ͢Δ͔ΒɺΩϛ6TFSΤϯςΟ ςΟʹFOBCMFEϑϥάΛ͠ ͯɺ৽نొ࣌ʹ0/ʹ͠ͱ͍ ͯʂ
࣮ᶅ ΦʔέʔΦʔέʔɻ ॲཧΛ6TFS.BOBHFSʹ·ͱΊ͓͍͔ͯͨΒɺίϯτ ϩʔϥʔ͍͡Βͣʹ6TFS.BOBHFS͚ͩม͑Ε͍ ͍͍͡ΌΜʂ%%%ͩͥʂ
None
ཁ݅ᶆ ِϝʔϧΞυϨεͰͷ͍ͨͣ Βొ͕ଟ͍͔Βɺϝʔϧೝূ ػೳΛՃͯ͠Ͷɻ ొ͚࣌ͩ͡Όͳͯ͘ߋ৽ը໘ ͔ΒϝʔϧΞυϨε͕มߋ͞Ε ͨͱ͖ʹೝূΑΖ͘͠ɻ
࣮ᶆ Α͠Α͠ɺ·ͨ·ͨ6TFS.BOBHFS͚ͩมߋ ͢Ε͍͍Μͩͳʂ ϝʔϧೝূϝʔϧΞυϨεʹมߋ͕͋ͬͨ ߹͚͔ͩͩΒʜ6TFS.BOBHFSIBOEMF ͷ ҾʹʮҎલͷϝʔϧΞυϨεʯͦ͏ɻ ৽نొͷ߹OVMMΛͤ0,ɻ
None
ϦϑΝΫλᶄ ͏ʔΜɻ6TFS.BOBHFSIBOEMF ͕ෳࡶʹ ͳ͖ͬͯͪΌͬͨͳʜɻ Ͱڞ௨ॲཧ͕͋Δ͔Βίϐϖίʔυʹ͢ ΔͷϠμͳɻ ͦ͏ͩʂ͜͏͍͏ͱ͖BCTUSBDUDMBTTʂ ΦϒδΣΫτࢦͬͯศརͩͳʙɻ
None
ཁ݅ᶇ ϝʔϧΞυϨεೝূͳΜ͚ͩͲɺ৽نొ ͷͱ͖ͱϝʔϧΞυϨεมߋͷͱ͖Ͱจ ໘Ϗϛϣʔʹม͑ͯ΄͍͠ΜͩΑͶɻ ৽نొʹʮ͍ͭ͝ར༻͋Γ͕ͱ͏ ͍͟͝·͢ʯͬͯͳΜ͔͓͔͍͠͡Ό Μɻมߋͷͱ͖͚ͩʹͯ͠Αɻ
࣮ᶇ ͏ʔΜɺมߋͷ߹͚͔ͩɻ "CTUSBDU6TFS.BOBHFSIBOEMF ͷϝʔϧೝ ূΈཱͯ෦ʹ JG VTFSHFU*E \ NBJM1BSBN<bTIPX@HSFFUJOH`>USVF ^
͘ɺ͍ۤ͠ʜɻ
ϦϑΝΫλᶅ ࢥ͍ͬͯ"CTUSBDU6TFS.BOBHFSΛΊ ͨʂ ڞ௨෦1BTTXPSE&ODPEFSͱ $POpSNBUJPO.BJM4FOEFSͱͯ͠நग़͠Α ͏ʂ
None
None
ϦϑΝΫλᶅ
͠ʜ w ཁ݅ᶈ"ʜϢʔβʔ͝ͱͷϝʔϧΞυϨεมߋͷճ͑ ͓͍ͯͯɻ w ཁ݅ᶈ#ʜ৽نొ࣌ʹ*1ΞυϨεอଘͰ͖Δʁ w ཁ݅ᶈ$ʜύεϫʔυมߋ࣌มߋ࣌อଘ͍ͨ͠ͳɻ
࠷ॳ͔ΒϦϑΝΫλᶅͷ࣮Λ࡞Δʹɺ Ͳͷ͕࣌λʔχϯάϙΠϯτ͔ͩͬͨʁ
࠷ॳ͔ΒϦϑΝΫλᶅͷ࣮Λ࡞Δʹɺ Ͳͷ͕࣌λʔχϯάϙΠϯτ͔ͩͬͨʁ w ͦͦ6TFS.BOBHFSʮϢʔβʔཧʯͷओޠ͕େ͖͗ͨ͢ ʢϦϑΝΫλᶃʣ w ࠷ॳʹόϦΤʔγϣϯ͕ൃੜͨ͠ͱ͖ʢཁ݅ᶅʣ w ʮૣ͗͢Δ࠷దԽʯͱݴΘΕΔ͔͠Ε·ͤΜ͕ݸਓతʹ ίίո͍͠
w ڞ௨෦Λ"CTUSBDU6TFS.BOBHFSʹ·ͱΊͪΌͬͨͱ͖ʢϦ ϑΝΫλᶄʣ w Α͏͘ຊ ??
ڞ௨ॲཧ͕͋Δˠ"CTUSBDUDMBTTͰڞ௨Խ
ڞ௨ॲཧ͕͋Δˠ"CTUSBDUDMBTTͰڞ௨Խ ˞ͦ͏ࢥ͍ͬͯͨࠒ͕ࢲʹ͋Γ·ͨ͠ʜɻʙલ͔ͳʜɻ
ڞ௨ॲཧ͕͋ΔˠผΫϥεʹग़͢
ڞ௨ॲཧ͕͋ΔˠผΫϥεʹग़͢
ͰɺBCTUSBDUDMBTTͬͯԿ ͷͨΊʹଘࡏ͢Δͷʁ
None
w BCTUSBDUDMBTT༻๏༻ྔΛकͬͯਖ਼͍͘͠·͠ΐ͏ɻཚ ༻μϝθολΠɻ w தͰ݅ذ͢ΔBCTUSBDUDMBTTΛ࡞ͬͯ͠·͍͕ͪͳਓ ɺʮڞ௨ॲཧ͕͋Δ͔ΒBCTUSBDUDMBTTΛ࡞Ζ͏ʂʯͱ ࢥͬͨͱ͖ɺཱͪࢭ·ͬͯϗϯτʹͦΕͰ͍͍͔ߟ͑Α͏ w ୯ʹʮڞ௨ॲཧ͕͋Δʯ͚ͩͳΒผΫϥεΛ࡞ͬͨΓ USBJUͷར༻Ͱेͳ߹͕େ
w ਖ਼ɺ൚༻తͳϥΠϒϥϦͰͳ͘ΞϓϦΛ࡞͍ͬͯΔ։ൃऀ ʹBCTUSBDUDMBTT͕ඞཁͳέʔε͋·Γͳ͍ؾ͕͍ͯ͠Δ
5IBOLZPV