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
設計力を上げる!バリエーションの見極め術
Search
Hiromi Hishida
March 30, 2019
Programming
3
6.4k
設計力を上げる!バリエーションの見極め術
Hiromi Hishida
March 30, 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
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
160
もう僕は OpenAPI を書きたくない
sgash708
6
1.9k
ABEMA iOS 大規模プロジェクトにおける段階的な技術刷新 / ABEMA iOS Technology Upgrade
akkyie
1
230
Drawing Heighway’s Dragon- Recursive Function Rewrite- From Imperative Style in Pascal 64 To Functional Style in Scala 3
philipschwarz
PRO
0
130
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
260
sappoRo.R #12 初心者セッション
kosugitti
0
280
Rubyと自由とAIと
yotii23
6
1.8k
良いコードレビューとは
danimal141
7
4.3k
たのしいSocketのしくみ / Socket Under a Microscope
coe401_
8
1.4k
iOSでQRコード生成奮闘記
ktcryomm
2
110
Swift Testingのモチベを上げたい
stoticdev
2
150
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
14
4.8k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Become a Pro
speakerdeck
PRO
26
5.2k
4 Signs Your Business is Dying
shpigford
183
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
13
1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Transcript
ઃܭྗΛ্͛Δʂ όϦΤʔγϣϯͷݟۃΊज़ !XFC 1)1FS,BJHJEBZ
ɾ!XFC ɾϑϦʔϥϯεʢ͙Β͍ʣˠΧϧςοτίϛϡχέʔγϣϯζʢʣ ɾ໊ݹ ɾࣇͷ ɾຊ4ZNGPOZϢʔβʔձ ɾ$PEFS%PKP໊ݹॳνϟϯϐΦϯʢॾࣄ͋ͬͯҾୀʜʣ ɾ*—1)1
ɾӡ༻ܕࠂۀքΛϗϫΠτʹ͢ΔΈΛ࡞ͬͯ·͢ ɾؒืूதʂʢϑϧϦϞʔτɺύʔτλΠϜɺͪΖΜϑϧλΠϜਖ਼ࣾһܴʣ
͜ͷτʔΫͷత w όϦΤʔγϣϯͷൃੜݯͱൃੜύλʔϯ͕Θ͔Δ w όϦΤʔγϣϯ͔Βอޢ͍͢͠ίʔυΛॻͨ͘Ίʹඞཁͳͷ͕Θ͔Δ w όϦΤʔγϣϯ͔Βอޢ͍͢͠ίʔυΛॻͨ͘Ίʹඞཁͳͷͷ͍ํΛମݧ͢Δ
͜Μͳܦݧ͋Γ·ͤΜ͔ʁ ݱࡏͷফඅ੫ͩͧɻ ݹ͍จจ࣌ʹΑͬͯ ੫ࠐΈֹۚΛਖ਼͘͠ग़͢Α͏ʹɻ ΞΠΞΠαʔ JG PSEFS%BUFGPSNBU b:NE` \
SFUVSOQSJDF ^FMTFJG ʜ \ ʜ ^FMTF\ SFUVSOQSJDF ^ ͬͱɻ࣮ྃʂ
͑ͬʂ৯͚ͩ੫ҧ͏ͷʁ ࣮ΊΜͲ͍͘͞ͳʔɻ ͦ͏͍͏͜ͱ࠷ॳ͔Βݴͬͯ͘ΕΑʔʢྦʣ શ෦࡞Γͩ͠Αʔʢౖʣ ࠓˋʹ্͕Δ͔ΒରԠΑΖ͘͠ɻ Ͱ৯ͷ··Ͷɻ ͪͳΈʹ֎৯͔ͩΒͪΌΜͱ۠ผ͠ΖΑɻ
r!IJEFOPSJHPUP lόϦΤʔγϣϯ͔ΒίʔυΛอޢͤΑz
όϦΤʔγϣϯͱʁ
όϦΤʔγϣϯͱʁ w มԽɺมಈɺసͯ͡छྨ w ྫ͑ɿεϐʔΧʔ5γϟπͷαΠζ4 . - -- w ϓϩάϥϛϯάʹ͓͍ͯɺॲཧ͕ذ͢Δ͖͔͚ͬʹͳΔ
w ྫ͑ɿจ࣌ʹΑͬͯফඅ੫͕ҟͳΔ
ͳͥόϦΤʔγϣϯ͕ൃੜ͢ Δͷ͔ʁ
ͳͥόϦΤʔγϣϯ͕ൃੜ͢ Δͷ͔ʁ Ϗδωε͕มԽ͢Δ͔Β
ͭ·Γ όϦΤʔγϣϯͷൃੜݯʹϏδωεͷมԽ όϦΤʔγϣϯͷൃੜύλʔϯʹϏδωεͷมԽͷύλʔϯ
ϏδωεͷมԽͷύλʔϯΛݟۃΊΕɺόϦΤʔγϣϯ͕ݟۃΊΒΕΔ
ϏδωεͷมԽͷύλʔϯ
w ԣͷมԽ w ॎͷมԽ ϏδωεͷมԽͷύλʔϯ
ԣͷมԽ w ຊͱτΠϨοτϖʔύʔ w IUUQTKBXJLJQFEJBPSHXJLJ"NB[PODPN w ϙʔγϣϯͱϋΠϙʔγϣϯ w (PPHMF"ETͱ:BIPP4QPOTPSFE4FBSDI
ԣͷมԽͷ༧ଌ w ಉछͷผͷͷΛѻ͏͜ͱͳ͍͔ʁ૾͢Δ w ಉۀଞࣾͱऔҾ͢Δ͜ͱͳ͍͔ʁ૾͢Δ
ॎͷมԽ w ໌࣏ˠେਖ਼ˠতˠฏˠʁ w ফඅ੫ˠˠˠˠʁ
ॎͷมԽͷ༧ଌ w աڈͷྺ࢙͔Β૾͢Δ w ೋ͋Δ͜ͱࡾ͋Δ w ଞࠃͷઌߦࣄྫ͔Β૾͢Δ w ࠃͷ੍๏Λѻ͏߹
ͭ·Γɺ૾ྗ͕ඞཁ
͜͜·Ͱͷ·ͱΊ w όϦΤʔγϣϯͷൃੜݯͱൃੜύλʔϯ͕Θ͔Δ✔ w ൃੜݯϏδωεͷมԽ w ൃੜύλʔϯϏδωεͷมԽͷύλʔϯʢॎ·ͨԣʣ w όϦΤʔγϣϯ͔Βอޢ͍͢͠ίʔυΛॻͨ͘Ίʹඞཁͳͷ͕Θ͔Δ✔ w
มԽͷύλʔϯΛ༧ଌ͢ΔͨΊͷɺ૾ྗ w όϦΤʔγϣϯ͔Βอޢ͍͢͠ίʔυΛॻͨ͘Ίʹඞཁͳͷͷ͍ํΛମݧ͢Δ
݅ذېࢭΪϓε
݅ذېࢭΪϓε
݅ذېࢭΪϓε όϦΤʔγϣϯͬΆ͍ͷ͕ݱΕͨͱ͖ʹ ҆қʹ݅ذΛͤͣʹ Ұาཱͪࢭ·ͬͯ ࠓޙͷมԽͷύλʔϯΛ૾͢Δ
օ͞ΜΪϓε͚ͭ·͔ͨ͠ʁ ҰॹʹͬͯΈ·͠ΐ͏
ྫྐྵ ʮ݄͔Βݩ߸͕มΘΔ͡ΌΜɺ݄Ҏ߱ͷٻॻʹ৽͍͠ݩ߸Ͱग़ͯ͠Α Ͷʯ
ྫྐྵ ѱ͍ྫ JG EBUFGPSNBU b:NE` \ SFUVSObত` ^FMTFJG EBUFGPSNBU
b:NE` \ SFUVSObฏ` ^FMTF\ SFUVSObʢԾʣ৽ݩ߸` ^ ࠓޙมԽͦ͠͏ͳͱ͜Ζͳ͍ ͔ʁ
ྫྐྵ ྑ͍ྫ SFUVSOXBSFLJ1SPWJEFS3FTPMWFSSFTPMWF EBUB QSPWJEF তPSฏPSʜ
ྫۀऀͷૹྉ ʮࠓ·ͰϠϚτ͚ͩͩͬͨΜ͚ͩͲɺࠓࠤͱܖ͢Δ͜ͱʹͨ͠ΜͩΑͶʔɻ αΠζͷͦΕͧΕͷૹྉࣗಈͰग़ͯ͠ʯ
ྫۀऀͷૹྉ ѱ͍ྫ JG EFMJWFSZ.FUIPEbTBHBXB` \ SFUVSOTBHBXB'FF5BCMF<`TJ[F`> ^FMTF\ SFUVSOZBNBUP'FF5BCMF<bTJ[F`> ^ ࠓޙมԽͦ͠͏ͳͱ͜Ζͳ͍
͔ʁ
ྑ͍ྫ SFUVSOEFMJWFSZ'FF5BCMF3FTPMWFSSFTPMWF EFMJWFSZ.FUIPE HFU'FF'PS4J[F bTJ[F` ྫۀऀͷૹྉ
ྫ࠙ձͷҿΈ ʮ࠙ձҿΈ์ͩΑɻେਓΞϧίʔϧͱιϑτυϦϯΫɺະιϑτυϦϯ ΫͷΈɻ֤ࢀՃऀʹͲͬͪͷυϦϯΫνέοτΛ͍͍͔ͤɺ͍͍ײ͡ʹ࣮ΑΖ͠ ͘ʯ
ྫ࠙ձͷҿΈ JG QBSUJDJQBOUJT"EVMU \ SFUVSOb#FFS5JDLFU` ^FMTF\ SFUVSOb+VJDF5JDLFU` ^ ࠓޙมԽͦ͠͏ͳͱ͜Ζͳ͍ ͔ʁ
ྫ࠙ձͷҿΈ JG QBSUJDJQBOUJT"EVMU \ SFUVSOb#FFS5JDLFU` ^FMTF\ SFUVSOb+VJDF5JDLFU` ^ ࠓޙมԽͦ͠͏ͳͱ͜Ζͳ͍ ͔ʁ
ͨͩ͠ɺۀࣝΛΘͳ͍૾ྗɺໝྗͱԽ͢͜ͱ͕͋ΔͷͰཁҙ
·ͱΊ w όϦΤʔγϣϯͷൃੜݯͱൃੜύλʔϯ͕Θ͔Δ✔ w ൃੜݯϏδωεͷมԽ w ൃੜύλʔϯϏδωεͷมԽͷύλʔϯʢॎ·ͨԣʣ w όϦΤʔγϣϯ͔Βอޢ͍͢͠ίʔυΛॻͨ͘Ίʹඞཁͳͷ͕Θ͔Δ✔ w
มԽͷύλʔϯΛ༧ଌ͢Δʢ૾ྗʣ w όϦΤʔγϣϯ͔Βอޢ͍͢͠ίʔυΛॻͨ͘Ίʹඞཁͳͷͷ͍ํΛମݧ͢Δ✔ w ݅ذېࢭΪϓε
5IBOLZPV