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
4.2k
小さな機能、大きな仕事 PHPカンファレンス沖縄2019 / phpcon-okinawa-2019
suzuken
2
2.3k
ADエンジニアがみたre:Invent 2018
suzuken
0
5.6k
ディスプレイ広告の基礎とセキュリティ
suzuken
18
4k
How to use AWS Lambda in Document Processing Pipeline
suzuken
0
3.9k
Other Decks in Technology
See All in Technology
AI専用のリンターを作る #yumemi_patch
bengo4com
5
4.3k
Operating Operator
shhnjk
1
590
How Do I Contact HP Printer Support? [Full 2025 Guide for U.S. Businesses]
harrry1211
0
120
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
960
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
400
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
2
260
CRE Camp #1 エンジニアリングを民主化するCREチームでありたい話
mntsq
1
130
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
170
MobileActOsaka_250704.pdf
akaitadaaki
0
130
ビズリーチが挑む メトリクスを活用した技術的負債の解消 / dev-productivity-con2025
visional_engineering_and_design
3
7.7k
DatabricksにOLTPデータベース『Lakebase』がやってきた!
inoutk
0
110
PO初心者が考えた ”POらしさ”
nb_rady
0
210
Featured
See All Featured
The Language of Interfaces
destraynor
158
25k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Building an army of robots
kneath
306
45k
Raft: Consensus for Rubyists
vanstee
140
7k
We Have a Design System, Now What?
morganepeng
53
7.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Statistics for Hackers
jakevdp
799
220k
The Invisible Side of Design
smashingmag
301
51k
Balancing Empowerment & Direction
lara
1
430
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 Ͱɺڧ੍͍͚ͯ͠ͳ͍
ΞδΣϯμ എܠɺݱঢ়ɺن ݻΊྫ֎ج൫ͱϞχλϦϯά վળίʔυΛফ͢ɺίʔσΟϯάΨΠυϥΠϯ ·ͱΊ
Ձ͋ΔίʔυΛ ΑΓྑ͍ͨ͘͠
୭ͩͬͯෆ҆͋Δ ͔ͩΒɺकΓΛ·ͣݻΊΔɻ ͦ͏͢Εվળ͘͢͠ͳΔɻ ʮ͜ͷมߋͰڍಈΛյͨ͠ΒͲ͏͠Α͏ʯ
ίʔυΛ ࣗͨͪͷखʹऔΓ͢