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 - レガシーシステムからの段階的移行戦略 / phpcon2017
Search
Kenta Suzuki
October 08, 2017
Technology
9
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.6k
小さな機能、大きな仕事 PHPカンファレンス沖縄2019 / phpcon-okinawa-2019
suzuken
2
2k
ADエンジニアがみたre:Invent 2018
suzuken
0
4.7k
ディスプレイ広告の基礎とセキュリティ
suzuken
18
3.7k
How to use AWS Lambda in Document Processing Pipeline
suzuken
0
3.7k
Other Decks in Technology
See All in Technology
あなたの知らないバグバウンティの世界
eurekaberry
1
1.4k
人工衛星管制システムにおけるCICD / CICD in satellite control systems
iselegant
5
890
Beginner's Guide to Partitioning vs. Sharding in Postgres | Claire Giordano | Nordic PGDay 2024
clairegiordano
0
210
サーバーとは何かを理解して、コンテナ1つで実行しよう | PHPerKaigi2024
sadnessojisan
31
11k
Uniting Rust Servers and Clients through OpenAPI
ahl
0
430
The Disturbing Truth: Why Do Most Software Projects Suck?
lemiorhan
0
110
出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 「【速報】AWSの生成AIサービスであるAmazon Bedrock がリリースされたので朝イチで触ってみた」について語る
oshanqq
0
290
庁舎DX推進事例集
senryakuka
0
1.5k
実録_マルチテナント環境でのGmailガイドライン対応
ryuichi1208
7
1.5k
Skaffoldを用いたGKEアプリケーションの CD(Continuous Development)
kojake_300
1
100
『QAという人』が必要ではなく、『QAという技術』が必要
sadonosake
2
250
layerx-0-to-1-product-development-in-compound-startups
shnjtk
1
520
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
343
19k
Adopting Sorbet at Scale
ufuk
66
8.5k
Typedesign – Prime Four
hannesfritz
36
2k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.8k
The Language of Interfaces
destraynor
150
22k
Debugging Ruby Performance
tmm1
68
11k
Build The Right Thing And Hit Your Dates
maggiecrowley
23
1.9k
Building Adaptive Systems
keathley
29
1.8k
Optimizing for Happiness
mojombo
369
69k
GraphQLとの向き合い方2022年版
quramy
28
12k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.8k
Web Components: a chance to create the future
zenorocha
304
41k
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 Ͱɺڧ੍͍͚ͯ͠ͳ͍
ΞδΣϯμ എܠɺݱঢ়ɺن ݻΊྫ֎ج൫ͱϞχλϦϯά վળίʔυΛফ͢ɺίʔσΟϯάΨΠυϥΠϯ ·ͱΊ
Ձ͋ΔίʔυΛ ΑΓྑ͍ͨ͘͠
୭ͩͬͯෆ҆͋Δ ͔ͩΒɺकΓΛ·ͣݻΊΔɻ ͦ͏͢Εվળ͘͢͠ͳΔɻ ʮ͜ͷมߋͰڍಈΛյͨ͠ΒͲ͏͠Α͏ʯ
ίʔυΛ ࣗͨͪͷखʹऔΓ͢