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時代の開発生産性を加速させるアーキテクチャ設計
plaidtech
PRO
3
150
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
2
7k
開発生産性を測る前にやるべきこと - 組織改善の実践 / Before Measuring Dev Productivity
kaonavi
9
4.2k
Should Our Project Join the CNCF? (Japanese Recap)
whywaita
PRO
0
340
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
110
ネットワーク保護はどう変わるのか?re:Inforce 2025最新アップデート解説
tokushun
0
200
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
Sansanのデータプロダクトマネジメントのアプローチ
sansantech
PRO
0
150
american airlines®️ USA Contact Numbers: Complete 2025 Support Guide
supportflight
1
110
Geminiとv0による高速プロトタイピング
shinya337
1
270
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
470
ビギナーであり続ける/beginning
ikuodanaka
3
750
Featured
See All Featured
How to Ace a Technical Interview
jacobian
278
23k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
950
The Language of Interfaces
destraynor
158
25k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Navigating Team Friction
lara
187
15k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Docker and Python
trallard
44
3.5k
Become a Pro
speakerdeck
PRO
29
5.4k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Thoughts on Productivity
jonyablonski
69
4.7k
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 Ͱɺڧ੍͍͚ͯ͠ͳ͍
ΞδΣϯμ എܠɺݱঢ়ɺن ݻΊྫ֎ج൫ͱϞχλϦϯά վળίʔυΛফ͢ɺίʔσΟϯάΨΠυϥΠϯ ·ͱΊ
Ձ͋ΔίʔυΛ ΑΓྑ͍ͨ͘͠
୭ͩͬͯෆ҆͋Δ ͔ͩΒɺकΓΛ·ͣݻΊΔɻ ͦ͏͢Εվળ͘͢͠ͳΔɻ ʮ͜ͷมߋͰڍಈΛյͨ͠ΒͲ͏͠Α͏ʯ
ίʔυΛ ࣗͨͪͷखʹऔΓ͢