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
ログの設計してますか?PSR3とログ設計の話
Search
Ryo Tomidokoro
June 16, 2018
Programming
6
4.6k
ログの設計してますか?PSR3とログ設計の話
PHPカンファレンス福岡2018 #phpconfuk #hall_fu
Ryo Tomidokoro
June 16, 2018
Tweet
Share
More Decks by Ryo Tomidokoro
See All by Ryo Tomidokoro
開発者が知っておきたい複雑さの正体/where-the-complexity-comes-from
hanhan1978
8
3.2k
Spec Driven Development入門/spec_driven_development_for_learners
hanhan1978
2
1.4k
フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない/php-is-not-bad
hanhan1978
8
13k
どうすると生き残れないのか/how-not-to-survive
hanhan1978
17
14k
100分で本番デプロイ!Laravelで作るWebアプリケーション作成/100min_web_app_cicd
hanhan1978
1
230
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
8
3.4k
集中して作業する技術/how_to_work_deeply
hanhan1978
65
54k
PHPでデータベースを作ってみた/create-data-with-php
hanhan1978
11
11k
ADRを一年運用してみた/adr_after_a_year
hanhan1978
8
4.6k
Other Decks in Programming
See All in Programming
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
150
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
550
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
210
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
260
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
180
Implementation Patterns
denyspoltorak
0
150
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
38k
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
4.7k
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
230
ThorVG Viewer In VS Code
nors
0
640
チームをチームにするEM
hitode909
0
440
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
710
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Test your architecture with Archunit
thirion
1
2.1k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
37
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Claude Code のすすめ
schroneko
67
210k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Un-Boring Meetings
codingconduct
0
170
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
270
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
690
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
35
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
0
51
Transcript
*OOPWBUPS+BQBO*OD ॴ྄ &OHJOFFS ϩάͷઃܭͯ͠·͔͢ʁPSR3ͱϩάઃܭͷ PHPΧϯϑΝϨϯεԬ2018
͓Βͤ εϥΠυSpeakerDeckʹΞοϓ͠·͕͢… ࡱӨࣗ༝ʹ͍ͯͯ͋͠Γ·ͤΜ !IBOIBO
͜ͷτʔΫͷඪ एखΤϯδχΞ தݎΤϯδχΞ ˠϩάग़ྗʹ͍ͭͯͷ͡ΊͷҰา ˠυΩυΩͯ͠Β͏
ࠓճ͓͢Δϩάग़ྗ ΞϓϦέʔγϣϯϩά ߦಈϩάΣϒαʔόͷϩάର֎ ओॲཧʹӨڹΛ༩͑ͣɺόονΣϒΞϓϦ ͷॲཧ్தͰԿΒ͔ͷใΛ֎෦ʹग़ྗ͢Δ
ࠓճͷείʔϓ֎ͷ 'MVFOUE -PHTUBTI ϩάऩू ϩάՄࢹԽ ,JCBOB &MBTUJD4FBSDI
ಋೖ
ಋೖ ͋Δ
ಋೖ εϐʔσΟʔʹ WBS@EVNQ Λॻ͍ͨΓফͨ͠Γ͢ΔएखΛܸɻ
ಋೖ
ಋೖ
ಋೖ
ಋೖ ఆৗతͳͱ͔ͷνΣοΫ ϩάग़ྗͷ͕ศརΑͱ͑Δɻ
ಋೖ ·ͬͨ͘ϐϯͱདྷͯͳ͍ͷΛ؍ଌ
ಋೖ ϩάग़ྗʹ͍ͭͯतͤͶʂ
ಋೖ ࢥ͍ฦͯ͠ΈΔͱɻ ࣗϩάग़ྗͷํ๏ͱ͔शͬͨ͜ͱͳ͍ɻ งғؾͰग़ྗ͍ͯ͠Δʜ
ಋೖ ϩάग़ྗͷΞϨίϨΛ·ͱΊͯ νʔϜͷڞ௨ೝࣝΛ࡞Γ͍ͨ σόοάγεςϜӡ༻ʹ͓͚Δڧ͍ثʹͳΔ
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
ϩάग़ྗͱʁ -PHHJOHJTUIFBDUPGLFFQJOHBMPH -PHpMF8JLJQFEJB ใMPH ΛͲ͔͜ʹग़ྗ͢Δ͜ͱ ఆٛ؇͍ʜ
ϩάग़ྗʹؔΘΔ༷ 3'$ TZTMPHͷ༷͔͜͜Β৭ʑͱੜ 143 -PHHFS*OUFSGBDF
ϩάग़ྗʹؔΘΔ༷ 3'$ TZTMPHͷ༷͔͜͜Β৭ʑͱੜ 143 -PHHFS*OUFSGBDF 1)1FS.VTU3FBE
143ͷ֓ཁ ͭͷ༷ ͍ͷͰͥͻ࣮ࡍʹಡΜͰ΄͍͠ IUUQTXXXQIQpHPSHQTSQTS
143ͷ֓ཁ #BTJDT 3'$४ڌͭͷϩάϨϕϧ ͭͷग़ྗϝιου
ϩάϨϕϧͱʁ EFCVH JOGP OPUJDF XBSOJOH FSSPS DSJUJDBM BMFSU FNFSHFODZ ॏେ
ϩάϨϕϧͱʁ EFCVH JOGP OPUJDF XBSOJOH FSSPS DSJUJDBM BMFSU FNFSHFODZ -0(@-&7&-XBSOJOH
ग़ྗ͞Εͳ͍
143ͷ֓ཁ .FTTBHF ϝοηʔδTUSJOH͔@@UP4USJOH Λ࣮ͨ͠PCKFDU ͦ͏Ͱͳ͚ΕɺதΛTUSJOHʹΩϟετ ϝοηʔδิ
143ͷ֓ཁ $POUFYU DPOUFYUʹԿΛ͞Ε͍͔ͯͳΔྫ֎UISPX͠ ͳ͍ɻ·ͨFSSPSXBSOJOHOPUJDFग़͞ͳ͍ &YDFQUJPOΦϒδΣΫτAFYDFQUJPOAͱ͍͏LFZ ໊Ͱηοτ͢Δ
143ͷ֓ཁ )FMQFSDMBTTFTBOEJOUFSGBDF 1TS४ڌͷ-PHΫϥεɺΠϯλϑΣʔεɺτϨΠτ ͷઆ໌
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
Կނϩάग़ྗΛߦ͏ͷ͔ʁ QSJOUσόοά͡Όବͳͷ͔ʁ
QSJOUσόοά ൃݟతख๏ ώϡʔϦεςΟοΫ ݟ͕͍͍ͭͯΔݪҼͷߜࠐ 5SZ&SSPSͷͯͬͱΓૣ͍ํ๏
QSJOUσόοάͷ ࠶ݱੑʹ͍͠ QSJOUফ͠Ε ͖ͬ͞ॻ͍ͨWBS@EVNQ͏ແ͍ ͳΜ͔ը໘ͷࠨ্ʹग़ͯΔʜ
QSJOUσόοάͷ ಉ͜͡ͱͷ܁ฦ ຊ൪ڥͰແཧ -B[JOFTTҧͷ෮QSJOU WBS@EVNQग़ͤ·ͤΜʜ
QSJOUσόοάͷ ΞϓϦέʔγϣϯͷӨڹ QSJOUͱFYJUͷ߹ͤ 'SBNF8PSLͷऴॲཧΛ ։ൃڥʹ͓͍ͯɺ࠶ݱͮ͠Β͍ඍົͳόάΛੜΈग़͢
ϩάग़ྗͷಛ ࠶ݱੑ͕͋Δ ղੳతͳσόοά ઃஔՕॴৗʹಉ༷ʹϩάग़ྗ มߋʹΑΔࠩҟΛޙ͔ΒղੳՄೳ
͜Μͳ࣌ϩάग़ྗ ৗʹ֬ೝ͍ͨ͠ใ όονͷ࣮ߦใ ຊ൪ڥͰݟ͍ͨใ
ৗʹ֬ೝ͍ͨ͠ใ WJFXςϯϓϨʔτʹͨ͠ "1*ݺͼग़͠ͷ։࢝ɾऴྃ ࣮ߦͨ͠42-ͱύϥϝʔλ
ຊ൪ڥͰݟ͍ͨใ ։ൃڥͰ࠶ݱ͠ͳ͍ෆ۩߹ͷݕূϩά ߈ܸݕϩά -PHJO߈ܸ ܦྼԽ͕༧ଌ͞ΕΔՕॴͷܭଌϩά
όονͷ࣮ߦใ ։࢝࣌ؒɾऴྃ࣌ؒ "#&/%࣌ͷఀࢭՕॴ ॲཧ݅ ࠶࣮ߦίϚϯυ ͜ΕຊʹΦεεϝɻ
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
Ͳ͏ͬͯϩάग़ྗΛߦ͏ͷ͔ʁ 143४ڌՄೳͳϥΠϒϥϦʔ .POPMPH ;FOE-PHHFS ϑϨʔϜϫʔΫ͕ఏڙ͢ΔϩΨʔ ϩάΛૉʹग़ͤΔͳΒɺ143ඇ४ڌͰྑ͍
Ͳ͏ͬͯϩάग़ྗΛߦ͏ͷ͔ʁ ΦϨΦϨϩΨʔବ͔ʁ ษڧͷͨΊͷंྠͷ࠶ൃ໌0, Ͱຊ൪ར༻Ί·͠ΐ͏
Ͳ͏ͬͯϩάग़ྗΛߦ͏ͷ͔ʁ ੜͰFSSPS@MPHؔͱ͔/( ͨͩ͠ɺօʹ߹ͬͯͷ͕͋Δ͜ ͱࢲཧղ͍ͯ͠Δ ͍Θ͕ͣͳ ͔ΓΈ͕͋Δ
Ͳ͏ͬͯϩάग़ྗΛߦ͏ͷ͔ʁ ͓ߦّͷѱ͍ϩάग़ྗఫڈ͕جຊ ඃ͕গͳ͍͏ͪʹखΛଧ͍ͬͯ͜͏ ͱ͍͑ ͷϑΥʔϚοτͱ͔ͰϞχϣΓͨ͘ͳ͍
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
ϩάग़ྗͷϦεΫ ϩάग़ྗʹཱͭ ͨͩ͠ɺϦεΫΛ಄ʹೖΕ͓ͯ͘ ඞཁ͕͋Δ
ϦεΫ ใ࿙͍͑ ΞϓϦέʔγϣϯ࣮ߦͷ ϩάग़ྗͷઃఆϛε ҙਤ͠ͳ͍ݸਓใऩू
ใ࿙͍͑ εϥυ IUUQTTFDVSJUZTSBEKQTUPSZ
ྫ͑͜Μͳίʔυ %#Ͱύεϫʔυ҉߸Խͯͯ͠ແ͠
ΞϓϦέʔγϣϯ࣮ߦͷ Τϥʔൃੜ࣌ͷϩάΛϝʔϧૹ৴ όάϦϦʔεͰେྔͷΤϥʔϝʔϧ ϝʔϧૹ৴Ͱ٧·ͬͯʜ Τϥʔൃੜ࣌ͷϩάΛ4MBDLͰૹ৴ όάϦϦʔεͰSZ ·͞ʹΧΦε
ઃఆϛε EFCVHϩά͕ຊ൪Ͱग़ͬͺͳ͠ େͳྔͷϩάग़ྗ ΫΤϦύϥϝʔλʔʜ ૠೖɾߋ৽σʔλ͕શ෦࿙Ӯ͍ͯ͠ΔͷͱҰॹ
ઃఆϛε ϩάΛ༗ޮ׆༻͢Δ ϩάϨϕϧͷઃఆϛε͕க໋ই
ઃఆϛε ݟ͍ͨ࣌ʹϩά͕ͳ͍ ϦϦʔεͰϩάϑΝΠϧ͕ॻ όάमਖ਼ޙʹݕূෆՄೳ ϩάͷग़ྗઌΞϓϦσΟϨΫτϦ֎ʹ
ઃఆϛε Πϯϑϥͷ͓͡͞Μ ΞϓϦέʔγϣϯϩάकඋൣғ֎ ࣗͷࣗͰकΕ
ݸਓใ ݸਓใ͕ϩάʹग़ྗ͞Ε͍ͯΔ߹ (%13ͷേଇॏ͍ͨ ϓϥΠόγʔϙϦγʔͷهࡌʁ Ϣʔβ͕ಉҙͯ͠ͳ͍ར༻/(
ݸਓใ ҙਤͤͣʹߦಈϩάΛऩूͯ͠͠·͍ͬͯ ͳ͍͔ʁόϨͳ͚Εྑ͍ͱ͍͏Ͱ ͳ͍ɻ
ҙ͖ࣝ͢ॏཁࣄ߲ ϩάग़ྗͰ͍͔ͳΔσʔλ࿙ӮՄೳ ϩάϑΝΠϧͷةݥੑΛཧղ͍ͯ͠ͳ͍ͱॏେ ͳଛࣦΛҾ͖ى͜͢Մೳੑ ͍ͯ͠ΔΞϓϦಛʹҙ
͜͏͍͏ίʔυʹԠ͢ΔΑ͏ʹʂ ͍ใΛEFCVHҎ֎Ͱग़ྗ
͜͏͍͏ίʔυʹԠ͢ΔΑ͏ʹʂ ઃఆϛεͰҰൃπϞͦ͠͏ͳϩά
ͰͲ͏͠Ζͱʁ ͏ϩάͳΜͯग़ྗ͠ͳ͍΄͏͕ʜ ͦΕҰͭͷਖ਼ղͱͯ͠ΞϦ
0VUMJOF 8IBUJTMPHHJOH 8IZZPVMPH )PXZPVMPH 3JTLPGMPHHJOH 8IBUZPVTIPVMEQSFQBSF
ԿΛܾΊ͓͚͍͍ͯͷ͔ʁ ΞϓϦέʔγϣϯ։ൃ࣌ ΞϓϦέʔγϣϯӡ༻࣌ ͦΕͧΕͷܾΊ͝ͱϩάઃܭ
ΞϓϦέʔγϣϯ։ൃ࣌ͷܾΊ͝ͱ -PHHFSͷબఆ .FTTBHFͷϧʔϧ جຊػೳʹେࠩແ͍ͷͰɺঢ়گʹ߹Θͤͯॊೈʹɻ -PHHFS͍ͬͯΕେ·͔ͳϑΥʔϚοτ߹͍ͬͯΔ ·ͣ։ൃऀͤͰྑ͍͔
ΞϓϦέʔγϣϯ։ൃ࣌ͷܾΊ͝ͱ ڞ௨ग़ྗ༰ όονϩάͷग़ྗϑΥʔϚοτ 3FBENFʹॻ͍͓͍ͯͯ͋͛·͠ΐ͏ɻ ΫΤϦϩάɺWJFXύϥϝʔλ మ൘ͰཱͭͷͰ࡞Γ·͠ΐ͏ɻ
ΞϓϦέʔγϣϯӡ༻࣌ͷܾΊ͝ͱ ڥຖͷϩάϨϕϧ ϩάϑΝΠϧͷϩʔςʔγϣϯɺӬଓԽํ๏ ։ൃڥEFCVH ຊ൪ڥXBSOJOH ΞϓϦέʔγϣϯΤϯδχΞͷʂ ޙͰղੳͰ͖ΔΑ͏ʹ͓ͯ͘͜͠ͱ
ΞϓϦέʔγϣϯӡ༻࣌ͷܾΊ͝ͱ ϩάϨϕϧઃఆͷϑΣʔϧηʔϑ Ϗϧυ࣌ʹEFCVHϨϕϧͷϩάΛআ %*Ͱۭϩάग़ྗ࣮ʹସ ϩάग़ྗઌͱग़ྗํ๏ ϝʔϧ4MBDLϒϩοΩϯά͠ͳ͍ํ๏ ಉ͡༰ͷΤϥʔϩάͷग़ྗ੍
·ͣ࠷ݶ͔Β ग़དྷͨͯͷΞϓϦͰᘳΛࢦ͢ͷແཧ ΞϓϦͷϑΣʔζʹ߹ΘͤͯɺϦεΫͱ্ खʹௐ͍ͯ͘͜͠ͱ͕ॏཁ
·ͱΊ एखΤϯδχΞͷํ ϩάग़ྗΤϥʔͷݕͱղੳΛߦ͏ڧྗͳखஈ ࡞๏ʹͷͬͱΓͭͭੵۃతʹ׆༻͠·͠ΐ͏
·ͱΊ தݎΤϯδχΞͷํ ͋ͳͨͷΞϓϦέʔγϣϯͷϩάେৎͰ͔͢ʁ υΩυΩͯͨ͠Βਅͳӡ༻Λߟ͑·͠ΐ͏ɻ
ૉఢͳϩάग़ྗੜ׆Λʂ