Slide 1

Slide 1 text

PHP Conference FUKUOKA 2023 Hideki Kinjyo GitHub: o0h / Twitter: @o0h_ 
 
 [഑෍൛]

Slide 2

Slide 2 text

Ӿཡ࣌ͷ஫ҙ <> 


Slide 3

Slide 3 text

ࣗݾ঺հ / GitHub: @o0h / Twitter: @o0h_ FW CakePHP from to #phpconfuk.2017

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

໨ࢦͤʂ͜Ε͕࠷ڧͷϓϩδΣΫτͩʂ

Slide 6

Slide 6 text

࠷ڧͷϓϩδΣΫτͳͷͰɺ೼ಓΛߦ͖·͢ 3 10 1 30 OK

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

ා͍ʂ͜Ε͕࠷ऑͷϓϩδΣΫτͩʂ

Slide 9

Slide 9 text

࠷ऑͷϓϩδΣΫτͳͷͰɺࣃΛ৯͍͠͹Γ·͢ OK

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

ຊ೔ͷςʔϚ

Slide 12

Slide 12 text

͓͠ͳ͕͖ $1 - $2 - $3 - $4 - $5 -

Slide 13

Slide 13 text

§1 


Slide 14

Slide 14 text

͔ͩΒϓϩδΣΫτͬͯ೉͍͠Μͩ

Slide 15

Slide 15 text

https://ja.wiktionary.org/wiki/ਆ࿩

Slide 16

Slide 16 text

ϓϩδΣΫτͷਆ࿩ͱ(ෆ౎߹ͳ)ਅ࣮ < > : < >

Slide 17

Slide 17 text

ਓ݄ͷਆ࿩ 装 [ग़య] ※ڧௐ͸εϥΠυஶऀ 
 ᴷ Jr FrederickP.Brooks, ୌ୔ ప, ຀໺ ༞ࢠ, ෋ᖒ ঢ. 
 ਓ݄ͷਆ࿩ ৽૷൛ P14, P17 ʰਓ݄ͷਆ࿩ʱ

Slide 18

Slide 18 text

ιϑτ΢ΣΞΤϯδχΞϦϯάͷຊ࣭తͳࠔ೉ 1 [ग़య] ※ڧௐ͸εϥΠυஶऀ 
 ᴷ Jr FrederickP.Brooks, ୌ୔ ప, ຀໺ ༞ࢠ, ෋ᖒ ঢ. 
 ਓ݄ͷਆ࿩ ৽૷൛ P170, P188ʰۜͷ஄ͳͲͳ͍ᴷιϑτ΢ΣΞΤϯδχΞϦϯάͷຊ࣭ͱۮ༗తࣄ߲ʱ

Slide 19

Slide 19 text


 ( | ) 


Slide 20

Slide 20 text

§2

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

ϚΠϯυηοτ: ʮશͯ͸มΘΔɺͦΕ͚͕ͩෆมʯ etc

Slide 23

Slide 23 text

ϚΠϯυηοτ: ʮશͯ͸มΘΔɺͦΕ͚͕ͩෆมʯ etc 
 ʮԿ͔Λ্ख͘࡞ΔʯͨΊͷࠜຊతͳཁૉͷ֬ূ͕଍Γͳ͍

Slide 24

Slide 24 text

ϚΠϯυηοτ: ʮશͯ͸มΘΔɺͦΕ͚͕ͩෆมʯ ( )

Slide 25

Slide 25 text

ϚΠϯυηοτ: ʮશͯ͸มΘΔɺͦΕ͚͕ͩෆมʯ :

Slide 26

Slide 26 text

ҙࢥܾఆΛͰ͖Δ͚ͩ஗ΒͤΔ [ग़య] ※ڧௐ͸εϥΠυஶऀ 
 ᴷ Mary Poppendieck, Tom Poppendieck, ఱ໺ উ, ฏು ݈ࣇ, ߴౢ ༏ࢠ 
 Ϧʔϯ։ൃͷຊ࣭ : ιϑτ΢ΤΞ։ൃʹ׆͔͢7ͭͷݪଇ P39

Slide 27

Slide 27 text

બ୒ࢶΛ(࠷ޙ·Ͱ)࢒͓ͯ͘͠ [ग़య] ※ڧௐ͸εϥΠυஶऀ 
 ᴷ Mary Poppendieck, Tom Poppendieck, ఱ໺ উ, ฏು ݈ࣇ, ߴౢ ༏ࢠ 
 Ϧʔϯ։ൃͷຊ࣭ : ιϑτ΢ΤΞ։ൃʹ׆͔͢7ͭͷݪଇ P39

Slide 28

Slide 28 text

ֶशɺ઴ਐతͳઃܭ [ग़య] ※ڧௐ͸εϥΠυஶऀ 
 ᴷ Mary Poppendieck, Tom Poppendieck,ࠤ໺ ݐथ, ฏು ݈ࣇ, ߴౢ ༏ࢠ 
 Ϧʔϯιϑτ΢ΤΞ։ൃ : ΞδϟΠϧ։ൃΛ࣮ફ͢Δ22ͷํ๏ P211, P212, P217

Slide 29

Slide 29 text

઴ਐతͳઃܭͷ࣮ફ: ந৅Խ΋just in timeʹ! Pet 
 [ग़య] ※จࣈ৭ɺจࣈαΠζʹΑΔڧௐ͸εϥΠυஶऀ 
 ᴷ ాத ͻͯ͞Δ 
 ͪΐ͏ͥͭιϑτ΢ΣΞઃܭೖ໳ʕʕPHPͰཧղ͢ΔΦϒδΣΫτࢦ޲ͷ׆༻ P 57

Slide 30

Slide 30 text

ઃܭͷѱष ─ ػಈੑɾదԠྗΛଛͳΘͤΔ 1. 1 美 2. 1 5. 7. [ग़య] ※ڧௐ͸εϥΠυஶऀ 
 ᴷ Robert Cecil Martin, ੉୩ ܒհ 
 ΞδϟΠϧιϑτ΢ΣΞ։ൃͷԞٛ : ΦϒδΣΫτࢦ޲։ൃͷਆ਷ͱঊͷٕ P108 (Ұ෦ൈਮ)

Slide 31

Slide 31 text

΍Δ΂͖͜ͱ 1. YAGNI KISS XP 2. 3. (= )

Slide 32

Slide 32 text

§3

Slide 33

Slide 33 text

ྫ୊: ͜ΜͳϓϩδΣΫτ΍Γ·͢ er

Slide 34

Slide 34 text

Ͱ͖Β͊ʂ

Slide 35

Slide 35 text

ੲ͸ྑ͔ͬͨ [ ] [ ] [ 縮 ] DB(blob) [ ] [ 縮 ] 


Slide 36

Slide 36 text

ࣸਅΛෳ਺౤ߘͰ͖ΔΑ͏ʹͯ͠ཉ͍͠

Slide 37

Slide 37 text

ࣸਅ͸Ϋϥ΢υετϨʔδʹೖΕ͍ͨ

Slide 38

Slide 38 text

τοϓϖʔδͷද͕ࣔ஗͍͔ΒΩϟογϡ͠Α͏

Slide 39

Slide 39 text

มߋίετ͕େ͖͍ = ͕࣌ؒ଍Γͳ͘ͳΔ 縮

Slide 40

Slide 40 text

ʮมΘͬͯ΋OKʯΛ࡞ΓࠐΉ [ग़య] ※ڧௐ͸εϥΠυஶऀ 
 ᴷ Juval Löwy, גࣜձࣾϩϯάςʔϧ ௕ඌ ߴ߂ 
 ϥΠςΟϯάιϑτ΢ΣΞ P29

Slide 41

Slide 41 text

มಈੑΛᄿ͚͗ͭͯɺઃܭ͢Δ ( ) Driver S3 Dropbox MySQL ( ) 
 ( ) (IMO) : 
 Interface

Slide 42

Slide 42 text

ͬ͘͟Γந৅తʹ෼ղͯ͠ΈΔ [ ver.] 
 form POST DB DB 204 [ ver.] 
 HTTP

Slide 43

Slide 43 text

ͬ͘͟Γந৅తʹ෼ղͯ͠ΈΔ ۩৅ͷهड़ ந৅తͳهड़ ڞ௨ ಈࢺ Ϣʔβʔ Ϣʔβʔ ͕͍ͯ ͓ͰΜΞΫςΟϏςΟ౤ߘϑΥʔϜ ΫϥΠΞϯτ ʹೖྗ͠ ʮࣸਅɾ͓ళɾίϝϯτʯ )551 ϦΫΤετ Λड৴͠ %#ΧϥϜʹ߹Θͤͯ ΞϓϦέʔγϣϯ಺Ͱѻ͍΍͘͢ σʔλߏ଄Λม׵͠ όϦσʔγϣϯ อଘલॲཧ Λֻ͚ %#ͱΫϥ΢υετϨʔδ વΔ΂͖৔ॴ อଘ͠ Ωϟογϡͷߋ৽ อଘޙॲཧ Λ͠ Ϩεϙϯε વΔ΂͖Ϩεϙϯε Λฦ͢

Slide 44

Slide 44 text

ந৅ԽʹΑΔɺ஌ࣝͷΧϓηϧԽ/੹຿ͷ෼཭ UI form DB 
 ( ) ۩৅ͷهड़ Ϣʔβʔ ͓ͰΜΞΫςΟϏςΟ౤ߘϑΥʔϜ ʮࣸਅɾ͓ళɾίϝϯτʯ %#ΧϥϜʹ߹Θͤͯ όϦσʔγϣϯ %#ͱΫϥ΢υετϨʔδ Ωϟογϡͷߋ৽ Ϩεϙϯε

Slide 45

Slide 45 text

ந৅ԽʹΑΔɺ஌ࣝͷΧϓηϧԽ/੹຿ͷ෼཭ DTO Controller $_POST DB ۩৅ͷهड़ ந৅తͳهड़ ڞ௨ ಈࢺ %#ΧϥϜʹ߹Θͤͯ ΞϓϦέʔγϣϯ಺Ͱѻ͍΍͘͢ σʔλߏ଄Λม׵͠

Slide 46

Slide 46 text

۩৅ͷهड़ ந৅తͳهड़ ڞ௨ ಈࢺ όϦσʔγϣϯ อଘલॲཧ Λֻ͚ ந৅ԽʹΑΔɺ஌ࣝͷΧϓηϧԽ/੹຿ͷ෼཭ Validator Controller

Slide 47

Slide 47 text

۩ମతͳهड़ ந৅తͳهड़ ڞ௨ ಈࢺ Ωϟογϡͷߋ৽ อଘޙॲཧ Λ͠ ந৅ԽʹΑΔɺ஌ࣝͷΧϓηϧԽ/੹຿ͷ෼཭ Pub/Sub Controller beforeSave afterSave

Slide 48

Slide 48 text

ʮந৅Խʯʮৄࡉͷ෼཭ʯʹΑͬͯಘΒΕΔ΋ͷ 1. 2.

Slide 49

Slide 49 text

ιϑτ΢ΣΞʹʮॊΒ͔͞ʯΛ Contorller ( ) 1

Slide 50

Slide 50 text

มߋʹΑΔμϝʔδΛ๷ޚ͢Δ [ग़య] 
 ᴷ Grady Booch, ੴ઒ ࠀݾ 
 ΦϒδΣΫτιϦϡʔγϣϯʕΦϒδΣΫτࢦ޲ϓϩδΣΫτͷ؅ཧ P29

Slide 51

Slide 51 text

ϓϩδΣΫτʹʮॊΒ͔͞ʯΛ Contorller 
 = ex) ( How ) =

Slide 52

Slide 52 text

ιϑτ΢ΣΞɺԼ͔Β࡞Δ͔ʁ্͔Β࡞Δ͔ʁ : DB form

Slide 53

Slide 53 text

Slide 54

Slide 54 text

$input $input fi le_name shop null RDB etc …

Slide 55

Slide 55 text

ιϑτ΢ΣΞɺԼ͔Β࡞Δ͔ʁ্͔Β࡞Δ͔ʁ : request response ( ) 
 = JIT

Slide 56

Slide 56 text

Slide 57

Slide 57 text


 縮 縮 ( )

Slide 58

Slide 58 text

੹຿Λ(૬ରతʹ)ଊ͑ɺՌͨ͢ [ग़య] ※ڧௐ͸εϥΠυஶऀ 
 ᴷ Steve Freeman, Nat Pryce, ࿨ஐ ӈܡ, ߴ໦ ਖ਼߂ 
 ࣮ફςετۦಈ։ൃ : ςετʹಋ͔ΕͯΦϒδΣΫτࢦ޲ιϑτ΢ΣΞΛҭͯΔ P15

Slide 59

Slide 59 text

ιϑτ΢ΣΞɺ্͔Β࡞Βͳ͍ʁ ( ) 縮 (& ) ( ) UX ( )

Slide 60

Slide 60 text

ιϑτ΢ΣΞɺ্͔Β࡞Βͳ͍ʁ

Slide 61

Slide 61 text

ʮ੹຿ͷ෼཭ʯʹΑͬͯಘΒΕΔ΋ͷ 1. 2.

Slide 62

Slide 62 text

ιϑτ΢ΣΞʹʮ஄ྗੑʯΛ Contorller = ( )

Slide 63

Slide 63 text

ϓϩδΣΫτʹʮ஄ྗੑʯΛ

Slide 64

Slide 64 text

ΫϦςΟΧϧύεΛ΄͙͢ CriticalPath 
 [ग़య] 
 ᴷGoldratt, Eliyahu M, ࡾຊ໦ ྄, ௡ۂ ެೋ(ղઆ) 
 ΫϦςΟΧϧνΣʔϯ : ͳͥɺϓϩδΣΫτ͸༧ఆͲ͓Γʹਐ·ͳ͍ͷ͔? (Kindle ൛) 
 No.4862-4864, No.4253-4255

Slide 65

Slide 65 text

·ͱΊ Q. ? A. ( )

Slide 66

Slide 66 text

·ͱΊ ( )

Slide 67

Slide 67 text

·ͱΊ CI ( ) TDD

Slide 68

Slide 68 text

§4

Slide 69

Slide 69 text

ϓϩδΣΫτ͸ԿΛͨ͠Βૣ͘ͳΔ͔ʁ ( ) ( ) ( )

Slide 70

Slide 70 text

ਓΛ૿΍ͯ͠΋ϓϩδΣΫτ͕ૣ͘ͳΒͳ͍ʁ 3 3 3 縮

Slide 71

Slide 71 text

ਓΛ૿΍ͯ͠΋ϓϩδΣΫτ͕ૣ͘ͳΒͳ͍ʁ 3 3 1.5 : http://scrumbook.org/product- organization-pattern-language/development-team/ swarming--one-piece-continuous- fl ow.html

Slide 72

Slide 72 text

ਓΛ૿΍ͯ͠΋ϓϩδΣΫτ͕ૣ͘ͳΒͳ͍ʁ 1 1 ( ) ( )

Slide 73

Slide 73 text

૊৫ϨϕϧͰͷΞϓϩʔν 縮 Team Topologies Platform team: Complicated sub-system team:

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

େ·ͱΊ - lity XP SOLID

Slide 76

Slide 76 text

No content

Slide 77

Slide 77 text

͓͠·͍ʂ ͓෇͖߹͍͍͖ͨͩ 
 ͋Γ͕ͱ͏͍͟͝·ͨ͠

Slide 78

Slide 78 text

§X Appendix

Slide 79

Slide 79 text

ࢀߟจݙ

Slide 80

Slide 80 text

ਓ݄ͷਆ࿩ ৽૷൛

Slide 81

Slide 81 text

ϒϧοΫεͷ͍͏ۜͷ஄ؙͱ͸Կ͔? 6/15 kawasima TSD 
 IUUQTXXXTMJEFTIBSFOFULBXBTJNBTT

Slide 82

Slide 82 text

ϥΠςΟϯάιϑτ΢ΣΞ

Slide 83

Slide 83 text

ΞδϟΠϧιϑτ΢ΣΞ։ൃͷԞٛ SOLID Clean Architecture ( ) (XP) TDD

Slide 84

Slide 84 text

ͪΐ͏ͥͭιϑτ΢ΣΞઃܭೖ໳ /

Slide 85

Slide 85 text

࣮ફςετۦಈ։ൃ ( )TDD

Slide 86

Slide 86 text

ΦϒδΣΫτࢦ޲ઃܭ࣮ફΨΠυ ( ) PHP Interface /

Slide 87

Slide 87 text

ϓϩδΣΫτϚωδϝϯτ஌ࣝମܥΨΠυ ୈ7൛ 駄

Slide 88

Slide 88 text

ʮք۾ がざ Θͭ͘΄ ど ௒ਐԽͨ͠PMBOKୈ7൛ʯʹࢲͨͪ ͸ ど ͏औΓ૊Ή͔ Developers summit 2022 PMBOK 7th TSD 
 IUUQTTQFBLFSEFDLDPNNJ[@LVTIJEBKJFXFJLBTBXBUVLVIPUPDIBPKJOIVB TJUBQNCPLEJCBOOJTJUBUJIBUPVRVSJ[VNVLB

Slide 89

Slide 89 text

ΫϦςΟΧϧνΣʔϯ 1 1 /

Slide 90

Slide 90 text

Ϧʔϯιϑτ΢ΤΞ։ൃ 1 This is Lean

Slide 91

Slide 91 text

Ϧʔϯ։ൃͷຊ࣭