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
広告配信管理システムを支えるPHP - レガシーシステムからの段階的移行戦略 / phpcon...
Search
Kenta Suzuki
October 08, 2017
Technology
10
20k
広告配信管理システムを支えるPHP - レガシーシステムからの段階的移行戦略 / phpcon2017
。PHPカンファレンス2017での発表資料です。
Kenta Suzuki
October 08, 2017
Tweet
Share
More Decks by Kenta Suzuki
See All by Kenta Suzuki
Go at fluct
suzuken
0
3.9k
小さな機能、大きな仕事 PHPカンファレンス沖縄2019 / phpcon-okinawa-2019
suzuken
2
2.2k
ADエンジニアがみたre:Invent 2018
suzuken
0
5.3k
ディスプレイ広告の基礎とセキュリティ
suzuken
18
3.9k
How to use AWS Lambda in Document Processing Pipeline
suzuken
0
3.8k
Other Decks in Technology
See All in Technology
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
210
iPadOS18でフローティングタブバーを解除してみた
sansantech
PRO
1
140
0→1事業こそPMは営業すべし / pmconf #落選お披露目 / PM should do sales in zero to one
roki_n_
PRO
1
1.5k
技術に触れたり、顔を出そう
maruto
1
150
テストを書かないためのテスト/ Tests for not writing tests
sinsoku
1
170
DMMブックスへのTipKit導入
ttyi2
1
110
FODにおけるホーム画面編成のレコメンド
watarukudo
PRO
2
280
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
250
【Oracle Cloud ウェビナー】2025年のセキュリティ脅威を読み解く:リスクに備えるためのレジリエンスとデータ保護
oracle4engineer
PRO
1
100
Unsafe.BitCast のすゝめ。
nenonaninu
0
200
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
12
2.1k
三菱電機で社内コミュニティを立ち上げた話
kurebayashi
1
360
Featured
See All Featured
A Tale of Four Properties
chriscoyier
157
23k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Statistics for Hackers
jakevdp
797
220k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
500
The Invisible Side of Design
smashingmag
299
50k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
The World Runs on Bad Software
bkeepers
PRO
66
11k
Being A Developer After 40
akosma
89
590k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
How to Ace a Technical Interview
jacobian
276
23k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Embracing the Ebb and Flow
colly
84
4.5k
Transcript
ࠂ৴ཧγεςϜ Λࢧ͑Δ1)1 ϨΨγʔγεςϜ͔Βͷஈ֊తҠߦઓུ !TV[V@W70:"(&(3061 QIQDPO
ࢲʹ͍ͭͯ ͚ͣ͢ΜHJUIVCTV[VLFO!TV[V@W qVDU441IUUQTqVDUKQΛ࡞͍ͬͯ·͢ BKJUPGNͱ͍͏ϙουΩϟετΛ͍ͬͯ·͢
͜Μͳέʔεɺ͋Γ·ͤΜ͔ʁ ݪҼΛ͑ͳ͍ϩάʮॲཧ͕ਖ਼ৗʹྃ͠·ͤΜͰͨ͠ʯ ʹΑͬͯॻ͔ΕํͷҟͳΔίʔυͨͪ ͳͥಈ͍͍ͯΔͷ͔Θ͔Βͳ͍͕ଟಈ͍͍ͯΔ શମΛѲͰ͖ͳ͍͘Β͍ҭͬͯ͠·ͬͨ ͦͯ͠ɺ͜ΕΒͷίʔυՁ͕͋ΔʢʹՔ͍Ͱ͍Δʣ
IUUQTVQMPBEXJLJNFEJBPSHXJLJQFEJBDPNNPOTC+FOHB@EJTUPSUFEKQH
Ձ͋ΔίʔυΛ ΑΓྑ͍ͨ͘͠
ΞδΣϯμ എܠɺݱঢ়ɺن ݻΊྫ֎ج൫ͱϞχλϦϯά վળίʔυΛফ͢ɺίʔσΟϯάΨΠυϥΠϯ ·ͱΊ
ݱঢ়ͷྑ͍ѱ͍ w ྑ͍Ձग़ͯ͠Δɾςετ͋Δ w ѱ͍ػೳՃʹ͕͔͔࣌ؒΔɾϝϯςφϯε ͮ͠Β͍ɾಡΈͮΒ͍
ن w Ϟσϧ w ίϯτϩʔϥ w ςʔϒϧ w ։ൃظؒ͝Ζ͔Β w
ςετΫϥεɻओʹϞσϧͱࣗࣾϥΠϒϥ Ϧ͚ɺͦͷଞʹओཁػೳͷ౷߹ςετ͕͋Δɻ
ͦΕͰෳࡶʹͳΔʜ ୯ମςετɺ౷߹ςετͯ͢$*Ͱࣗಈ࣮ߦ͞ΕΔ ίʔυϨϏϡʔ͞Εͳ͚ΕNBTUFSʹϚʔδ͠ͳ ͍ɻςετͷແ͍ίʔυ΄΅Ϛʔδ͞Εͳ͍ɻ ϦϞʔτϒϥϯν͝ͱʹ֬ೝ༻ཧը໘্ཱ͕͕ͪ Δɻ֬ೝ͍͢͠ɻ
Լ४උ w ੩తղੳͰେ·͔ʹෳࡶͦ͏ͳͱ͜ΖΛݟ͚ͭΔ QIQNE QIQDQE QIQEDE 1)1@$PEF4OJ⒏FS QIBOFUD w
ͦͯ͠HSFQͰॏෳίʔυΛચ͍ग़͢
ಥવͰ͕͢͜Μͳίʔυ͕ Օॴ͋Γ·ͨ͠
ಥવͰ͕͢͜Μͳίʔυ͕ Օॴ͋Γ·ͨ͠ ϩάΤϥʔը໘ಉ͡ϝοηʔδ ͱΓ͋͑ͣϧʔτྫ֎ΛUISPX ͦͯ͠ϧʔτྫ֎ͰDBUDI
ಥવͰ͕͢͜Μͳίʔυ͕ Օॴ͋Γ·ͨ͠ ϩάΤϥʔը໘ಉ͡ϝοηʔδ /05*$&5 &YDFQUJPOXJUINFTTBHFૢ࡞͕ෆਖ਼Ͱ͢ JOQBUIUPGPPQIQ ը໘ग़ྗ ϩά
ಥવͰ͕͢͜Μͳίʔυ͕ Օॴ͋Γ·ͨ͠ ϩάΤϥʔը໘ಉ͡ϝοηʔδ /05*$&5 &YDFQUJPOXJUINFTTBHFૢ࡞͕ෆਖ਼Ͱ͢ JOQBUIUPGPPQIQ ը໘ग़ྗ ϩά Կ͕͏·͍͔͘ͳ͔ͬͨͷ͔
Θ͔Βͳ͍ා͍
ݪҼΛ͑ͳ͍ϩάʮॲཧ͕ਖ਼ৗʹྃ͠·ͤΜͰͨ͠ʯ ʹΑͬͯॻ͔ΕํͷҟͳΔίʔυͨͪ ͳͥಈ͍͍ͯΔͷ͔Θ͔Βͳ͍͕ଟಈ͍͍ͯΔ શମΛѲͰ͖ͳ͍͘Β͍ҭͬͯ͠·ͬͨ ͦͯ͠ɺ͜ΕΒͷίʔυՁ͕͋ΔʢʹՔ͍Ͱ͍Δʣ ࠶ܝ͜Μͳέʔεɺ͋Γ·ͤΜ͔ʁ
ΞδΣϯμ എܠɺݱঢ়ɺن ݻΊྫ֎ج൫ͱϞχλϦϯά վળίʔυΛফ͢ɺίʔσΟϯάΨΠυϥΠϯ ·ͱΊ
ྫ֎ͱϋϯυϦϯά ΞϓϦέʔγϣϯϕʔεྫ֎Λఆٛ͢Δ ΞϓϦέʔγϣϯάϩʔόϧͳྫ֎ϋϯυϥΛ ࣮IUUQQIQOFUTFU@FYDFQUJPO@IBOEMFS ϩΪϯάͱΤϥʔදࣔΛ͍͍ײ͡ʹ͢Δ
TFU@FYDFQUJPO@IBOEMFS ྫ֎ා͘ͳ͍
1)1ͷඪ४ྫ֎ΞϓϦέʔγϣϯϕʔεྫ֎ʹ͍Εͳ͍ 'MVDU5ISPXBCMFΠϯλϑΣʔεʹͯ͠ඪ४ྫ֎Ωϟο νͰ͖ΔΑ͏ʹ͠Α͏͔ʁͱߟ͕͑ͨΊͨ ݁Ռ'MVDU&YDFQUJPOͰDBUDI͢ΕΑ͠ɻγϯϓϧɻ a&YDFQUJPO JNQMFNFOUT5ISPXBCMF 'MVDU&YDFQUJPO ΞϓϦέʔγϣϯϕʔεྫ֎ 1)1ͷϧʔτྫ֎ #BE3FRVFTU
&YDFQUJPO 6O"VUIPSJ[FE &YDFQUJPO 'MVDU3VOUJNF &YDFQUJPO ʜ FYUFOET FYUFOET ΞϓϦέʔγϣϯϕʔεྫ֎֊
ΞϓϦέʔγϣϯϕʔεྫ֎ Ϣʔβ͚ʹ දࣔ͢Δϝοηʔδ ϧʔτྫ֎
None
ྫ֎ಋೖલͦͷ͠ͷ͗ͷϩΪϯάͱΤϥʔϖʔδදࣔ ྫ֎ಋೖޙྫ֎ΛUISPX͢Ε0,
ྫ֎ίʔυʹΑͬͯ )551ϨεϙϯείʔυΛม͑Δ Τϥʔද͍͍ࣔײ͡ʹΔ ʢςϯϓϨʔτίϯςφ͔Βࠩ͠ࠐΉʣ ྫ֎ϋϯυϥ ελοΫτϨʔε ϩάʹՃ
Τϥʔϖʔδग़ྗͱϩΪϯά͕ڞ௨Խ͞ΕͨͷͰ USZDBUDIͷॏෳίʔυΛ҆શʹআՄೳʹ
ϞχλϦϯά /FX3FMJD"1.
/FX3FMJD&SSPST
ϞχλϦϯά/FX3FMJD࠾༻ ྫ֎ج൫Λͭͬͨ͘͜ͱͰɺͲͷը໘Ͱ͍ͭͲΜ ͳྫ֎͕ͲΕ͘Β͍ൃੜ͔ͨ͠Θ͔Γ͘͢ͳͬͨ /FX3FMJDΞϥʔτʹؚ·ΕΔใ͕ྫ֎Λϕʔ εʹ͓ͯ͠ΓɺͷΓ͚͕͘͢͠ͳͬͨ ͍ΫΤϦɺ͍ը໘Θ͔ΔΑ͏ʹͳΓʮ͜͜ ΛΈΕඞཁͳใू·͍ͬͯΔʯঢ়ଶʹͳͬͨ
ΞδΣϯμ എܠɺݱঢ়ɺن ݻΊྫ֎ج൫ͱϞχλϦϯά վળίʔυΛফ͢ɺίʔσΟϯάΨΠυϥΠϯ ·ͱΊ
࠶ܝ͜Μͳέʔεɺ͋Γ·ͤΜ͔ʁ ݪҼΛ͑ͳ͍ϩάʮॲཧ͕ਖ਼ৗʹྃ͠·ͤΜͰͨ͠ʯ ʹΑͬͯॻ͔ΕํͷҟͳΔίʔυͨͪ ͳͥಈ͍͍ͯΔͷ͔Θ͔Βͳ͍͕ଟಈ͍͍ͯΔ શମΛѲͰ͖ͳ͍͘Β͍ҭͬͯ͠·ͬͨ ͦͯ͠ɺ͜ΕΒͷίʔυՁ͕͋ΔʢʹՔ͍Ͱ͍Δʣ
1IQ4UPSN w 1)1͚ͩͲɺ1)1͡Όͳ͘ͳΓ·͢ w ͷ͍͢͝ڧ͍*OTQFDUJPOػೳɻ!QSPQFSUZ !WBSͰڍಈΛյͣ͞ܕΛ͚ͭΒΕ·͢ɻ w EFBEDPEFআSFGBDUPSJOHʹେ׆༂ɻνʔϜ Ͱͬͯ·͢ɻ
એIUUQTBKJUPGN
1)1ʜ w QIQDT QIQDDͰચ͍ग़ͭͭ͠جຊ1)1Ϛ χϡΞϧΛಡΜͰॗʑͱ͢ w ͳʹ͔͋Ε/FX3FMJDͰΘ͔Δ w ϑϨʔϜϫʔΫͷίΞ1)1͚ʹमਖ਼ QIQDTTUBOEBSE1)1$PNQBUJCJMJUZMJC
ࢀߟIUUQFO[PMVUJPOTDPNBSUJDMFTIPXUPDIFDLQIQDPNQBUJCJMJUZ
ͲΜͲΜফ͢ w (PPHMF"OBMZUJDTͰͬͯͳ͍ը໘Λ୳Δ ୲ ऀʹௌ͍͔ͯ֬ΊΔɻͬͯͳ͍ͳΒ·Δͬ ͱফ͢ w VOVTFEDPEFΛͻͨ͢Βಓʹফ͢ ʢ1IQ4UPSNͷJOTQFDUJPOʣ w
ཁΒͳ͍ςετέʔεΛফ͢ʢ͍ςετੜ࢈ ੑΛམͱ͢ʣ
3FEBTIʹཔΓɺফ͢ w ࣾͰ42-͔͚Δਓ͕૿͖͑ͯͨ w ʮͦΕ3FEBTIͰΑ͘ͳ͍ʁ͜ͷΫΤϦͰͬ͘͞ ͱσʔλग़ͤ·͢Αʯ w ར༻සͷগͳ͍ը໘3FEBTIʹΫΤϦ͚ͩҠ ߦͯ͠୲ऀʹҊ ·Δͬͱআ
࠷ྑͷίʔυɺίʔυͳ͠ w /FX3FMJD (PPHMF"OBMZUJDT 3FEBTIFUD w ֎෦πʔϧʹ͏·͘པΖ͏ɻ͍Βͳ͍ίʔυ ͲΜͲΜফͦ͏ɻ IUUQTCMPHDPEJOHIPSSPSDPNUIFCFTUDPEFJTOPDPEFBUBMM “It's
painful for most software developers to acknowledge this, because they love code so much, but the best code is no code at all.”
࣮ΨΠυϥΠϯΛ࡞Δ w 143 ४ڌ QIQDTpYFSͷ$*ΈࠐΈ w Ϋϥε໊໊ؔͳͲͷ໋໊ϧʔϧΛܾΊΔ w 1)1%PD!QBSBN!SFUVSOΛਪɻಈతͳΫ ϥεϩʔμʔ!QSPQFSUZ!WBSͰิॿɻ
w !EFQSFDBUFEΛ͔͓ͭ͏ ͳͲͳͲ
ಓʹফ͢ qVDUίʔσΟϯάΨΠυϥΠϯΑΓൈਮ
ͦͯ͠ϖΞϓϩάϥϛϯά w ΨΠυϥΠϯΛ͑ͨΒɺϖΞϓϩάϥϛϯά w ϖΞϓϩάϥϛϯάͰॻ͖ํΛ͑ΔʢϨϏϡʔ ͩͱͿ͔ͭΓ͍͢ͱ͖ʹಛʹ༗༻ʣ w Ͱɺڧ੍͍͚ͯ͠ͳ͍
ΞδΣϯμ എܠɺݱঢ়ɺن ݻΊྫ֎ج൫ͱϞχλϦϯά վળίʔυΛফ͢ɺίʔσΟϯάΨΠυϥΠϯ ·ͱΊ
Ձ͋ΔίʔυΛ ΑΓྑ͍ͨ͘͠
୭ͩͬͯෆ҆͋Δ ͔ͩΒɺकΓΛ·ͣݻΊΔɻ ͦ͏͢Εվળ͘͢͠ͳΔɻ ʮ͜ͷมߋͰڍಈΛյͨ͠ΒͲ͏͠Α͏ʯ
ίʔυΛ ࣗͨͪͷखʹऔΓ͢