Slide 1

Slide 1 text

ʲੈք࠷େڃʳΫοΫύουͷ .JDSPTFSWJDFTԽʲ8*1ʳ :PTIJPSJ4IPKJ IUUQTXXXqJDLSDPNQIPUPTHVZTJF

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

レベル: じんしゅ: ヨシオリ 40 エンジニア

Slide 4

Slide 4 text

レベル: じんしゅ: ヨシオリ 40 エンジニア ▶ アカウント

Slide 5

Slide 5 text

レベル: じんしゅ: ヨシオリ 40 エンジニア ▶ アカウント ギットハブ: ツイッター: yoshiori @yoshiori

Slide 6

Slide 6 text

レベル: じんしゅ: ヨシオリ 40 エンジニア ▶ アカウント ギットハブ: ツイッター: yoshiori @yoshiori ▶ コミュニティ

Slide 7

Slide 7 text

レベル: じんしゅ: ヨシオリ 40 エンジニア ▶ アカウント ギットハブ: ツイッター: yoshiori @yoshiori ▶ コミュニティ java-ja: Asakusa.rb: しゅさいしゃ ゆうれいぶいん

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text



Slide 10

Slide 10 text

.JDSPTFSWJDFT IUUQNBSUJOGPXMFSDPNBSUJDMFTNJDSPTFSWJDFTIUNM ҰຕؠʢϞϊϦγοΫʣʹ࡞ΔͷͰ͸ͳ͘ ෳ਺ͷܰྔͳαʔϏεΛ૊Έ߹Θͤͯ࡞Δ ͱ͍͏Ξϓϩʔν

Slide 11

Slide 11 text

.JDSPTFSWJDFT IUUQNBSUJOGPXMFSDPNBSUJDMFTNJDSPTFSWJDFTIUNM ҰຕؠʢϞϊϦγοΫʣʹ࡞ΔͷͰ͸ͳ͘ ෳ਺ͷܰྔͳαʔϏεΛ૊Έ߹Θͤͯ࡞Δ ͱ͍͏Ξϓϩʔν 細かく説明してると 時間無くなるので ググって

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text



Slide 14

Slide 14 text

.JDSPTFSWJDF1SFNJVN IUUQNBSUJOGPXMFSDPNCMJLJ.JDSPTFSWJDF1SFNJVNIUNM ຆͲͷγεςϜ͸ɺ ୯ҰͷϞϊϦγοΫΞϓϦέʔγϣϯͱͯ͠ ߏங͞ΕΔ΂͖Ͱ͢ɻ

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

ͭ·Γ΄ͱΜͲ ͷγεςϜ͸ϚΠ ΫϩαʔϏεԽ ͢΂͖Ͱ͸ͳ͍

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

ͪΐͬͱ͚ͩ ໭ͬͯ 

Slide 19

Slide 19 text

ੈք࠷େڃͷ ϞϊϦγοΫ3BJMT αʔϏε IUUQTTQFBLFSEFDLDPNB@NBUTVEBUIFSFDJQFGPSUIF XPSMETMBSHFTUSBJMTNPOPMJUI

Slide 20

Slide 20 text

ϑΝ΢ϥʔʹઌۦ͚ͯ ʮ͜Μ͚ͩσΧΠαΠτͰ΋Ϟ ϊϦγοΫʹ͍͚Δͷʹຊ౰ʹ ͓લΒNJDSPTFSWJTFTඞཁ ͳͷʁʯͱ໰͍͔͚Δ

Slide 21

Slide 21 text

࣮ࡍ ͲΜͳ΋Μͳͷ͔

Slide 22

Slide 22 text



Slide 23

Slide 23 text

SBLF TUBUT  +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 51762 | 41676 | 554 | 4170 | 7 | 7 | | Helpers | 15863 | 12986 | 18 | 1478 | 82 | 6 | | Models | 104034 | 81971 | 1851 | 9241 | 4 | 6 | | Mailers | 2150 | 1729 | 42 | 203 | 4 | 6 | | Workers | 639 | 540 | 20 | 31 | 1 | 15 | | Chanko units | 10341 | 8587 | 8 | 229 | 28 | 35 | | Libraries | 50661 | 41872 | 626 | 3790 | 6 | 9 | | Feature specs | 49901 | 40916 | 0 | 205 | 0 | 197 | | Request specs | 43437 | 37448 | 0 | 19 | 0 | 1968 | | Routing specs | 627 | 505 | 0 | 0 | 0 | 0 | | Controller specs | 63678 | 52586 | 6 | 128 | 21 | 408 | | Helper specs | 81289 | 67277 | 3 | 69 | 23 | 973 | | Model specs | 156941 | 129837 | 5 | 124 | 24 | 1045 | | Worker specs | 901 | 747 | 0 | 1 | 0 | 745 | | Chanko unit specs | 11476 | 9210 | 0 | 12 | 0 | 765 | | Library specs | 24911 | 20824 | 26 | 116 | 4 | 177 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 668611 | 548711 | 3159 | 19816 | 6 | 25 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 189361 Test LOC: 359350 Code to Test Ratio: 1:1.9

Slide 24

Slide 24 text

े෼Ͱ͔͍

Slide 25

Slide 25 text

͜Ε͚ͩσΧΠ΋ ͷΛ੾Γ෼͚Δͷ ͸ͳ͔ͳ͔ ܦݧͰ͖ͳ͍

Slide 26

Slide 26 text

ྫDPPLQBEྉཧಈը

Slide 27

Slide 27 text

Ͳ͏੾Γ෼͚Δ͔ IUUQTXXXqJDLSDPNQIPUPTKF⒎SFZXX

Slide 28

Slide 28 text

ॎʹ੾Δ PS ԣʹ੾Δ

Slide 29

Slide 29 text

DPPLQBEDPN ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϞϊϦγοΫͳߏ੒ SFDJQFT VTFS@LPOEBUFT LJUDIFOT DBUFHPSZ IPOPS@SFDJQF WJEFPT

Slide 30

Slide 30 text

DPPLQBEDPN ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ॎʹ੾Δ SFDJQFT VTFS@LPOEBUFT LJUDIFOT DBUFHPSZ IPOPS@SFDJQF WJEFPT ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ

Slide 31

Slide 31 text

DPPLQBEDPN ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ϛυϧ΢ΣΞ ͜͜ SFDJQFT VTFS@LPOEBUFT LJUDIFOT DBUFHPSZ IPOPS@SFDJQF WJEFPT ԣʹ੾Δ

Slide 32

Slide 32 text

Θ͔Γʹ͍͘ͷͰ ۩ମతʹݴ͏ͱ ಈըΤϯίʔυ  ഑৴γεςϜ

Slide 33

Slide 33 text

IUUQTTQFBLFSEFDLDPNZPTIJPSJIBQQZWJEFPUSBOTDPEJOHXJUIFMBTUJDUSBOTDPEFS Τϯίʔυ഑৴γεςϜͷ ৄ͍͠࿩͸ίνϥ

Slide 34

Slide 34 text

੾Γ෼͚Δ w ॎʹ੾Δ w ϏδωεྖҬʹΑͬͯ੾Γ෼͚Δ w جຊ͸͜ͷܗ w ԣʹ੾Δ w ػೳͰ੾Γ෼͚Δ w ಛఆͷྖҬʹಛԽͨ͠&WFSZUIJOHBTB4FSWJDFతͳ΋ͷ

Slide 35

Slide 35 text

ڞ௨ݴޠ IUUQTXXXqJDLSDPNQIPUPT!/

Slide 36

Slide 36 text

(BSBHF w 3BJMTHFNJpFEQMVHJOT w 3&45GVM)ZQFSNFEJB"1* w 3&45GVMͰ͋Γɺ)ZQFSNFEJBʹݱ࣮తͳϨϕϧͰରԠ w $PPLQBEͷαʔϏεؒ࿈ܞ͸͜ΕΛϕʔεʹ΍ΓऔΓͯ͠Δ w αʔόಉ࢜΋ɺJ04ɺ"OESPJEͳͲͷΞϓϦͱͷ࿈ܞ΋ w 044ͱͯ͠ެ։ͯ͋͠Δʢ3VCZͷΫϥΠΞϯτ΋ʣ w IUUQTHJUIVCDPNDPPLQBEHBSBHF w IUUQTHJUIVCDPNDPPLQBEHBSBHF@DMJFOU

Slide 37

Slide 37 text

IUUQTXXXqJDLSDPNQIPUPTDISJTUJBOIBVHFO ԣʹ੾Δ

Slide 38

Slide 38 text

&WFSZUIJOHBTB4FSWJDF w ଞͷαʔϏεͰ΋࢖͑ΔΑ͏ʹ࠷ॳ͔Βߟ͓͑ͯ͘ w ͨͱ͑͹ಈը഑৴γεςϜ͸DPPLQBE΋͘Β͠ͷ͖΄Μ΋ ಉ͡ΤϯυϙΠϯτΛୟ͍͍ͯΔ w αʔϏε͝ͱʹཱͯΔΑ͏ʹ͸͠ͳ͍ w εέʔϧͤ͞΍͍͢ w σϓϩΠ΍։ൃ؀ڥ΋γϯϓϧʹอͯΔ

Slide 39

Slide 39 text

IUUQTXXXqJDLSDPNQIPUPTSPCCO ॎʹ੾Δ

Slide 40

Slide 40 text

IUUQTDPPLQBEWJEFPKQ

Slide 41

Slide 41 text

࣮ࡍ΍ͬͯΈΔͱ݁ߏେมͩͬͨ wυϝΠϯͱΫοΩʔͷ໰୊ wΩϟογϡઓུͷ໰୊

Slide 42

Slide 42 text

υϝΠϯͱΫοΩʔͷ໰୊ w ׬શಉҰυϝΠϯ w DPPLQBEDPNWJEFPT w αϒυϝΠϯ w WJEFPTDPPLQBEDPN w ׬શผυϝΠϯ w DPPLQBEWJEFPKQ

Slide 43

Slide 43 text

׬શಉҰυϝΠϯ w ΫοΩʔ׬શʹڞ௨ w ͳͷͰͦΕͧΕผͷΞϓϦέʔγϣϯͰ
 ಉ͡ηογϣϯΫοΩʔΛ࢖͏Α͏ͳ͜ͱʹͳΓ͔Ͷͳ͍ ͷͰ஫ҙ͕ඞཁ w DTT΍JNBHFͷ1BUI΋஫ҙ w DPPLQBEຊମͷΞϓϦ͕࢖͏JNBHFTMPHPQOH ͱWJEFP͕࢖͏JNBHFTMPHPQOH͕ಉ͡΋ͷʹͳ Δ

Slide 44

Slide 44 text

αϒυϝΠϯ w ΫοΩʔҰ෦ڞ༗ w DPPLQBEDPNͳͲʹ͠ͳ͚Ε͹جຊDPPLJF͕ಉ ҰʹͳΔ͜ͱ͸ͳ͍ w ্هΛར༻͢Ε͹ϩάΠϯঢ়ଶͷҾ͖ܧ͗ͳͲ΋ൺֱతʹ ؆୯ DPPLQBEDPNʹ࣋ͨͤΕ͹ྑ͍ʣ w DTT΍JNBHFͷ1BUI΋ผʹͳΔ

Slide 45

Slide 45 text

׬શผυϝΠϯ w ΫοΩʔ׬શผ w ڞ༗Խ͢Δ͢΂͕ͳ͍ w ϩάΠϯͷҾ͖ܧ͗ͱ͔ग़དྷͳ͍ w DTT΍JNBHFͷ1BUI΋׬શʹผʹͳΔ

Slide 46

Slide 46 text

υϝΠϯͱΫοΩʔͷ໰୊ ͜ΕΒٕज़తͳ΍ΕΔ͜ͱɺ ΍Εͳ͍͜ͱΛ౿·͑ͯɺ 4&0ͳͲ΋ߟ͑ ͲͷܗࣜͰߦ͔͘ΛܾΊΔ

Slide 47

Slide 47 text

Ωϟογϡઓུͷ໰୊ େલఏͱͯ͠ "1*ͷΤϯυϙΠϯτ͸ ͳΔ΂͘γϯϓϧʹ ͓͖͍ͯͨ͠

Slide 48

Slide 48 text

Ωϟογϡઓུͷ໰୊ w ୯ҰϦιʔε"1*ʹ͓ͯ͘͠ͱ w NTͰฦ͢ͱͯ͠΋ݸͰNT w )551ͷίωΫγϣϯίετߴ͍ w ͦͷ··NFNDBDIFEʹΩϟογϡͯ͠΋ճ໰͍ ߹Θͤ͸มΘΒͳ͍ ྫ͑͹ಈըτοϓϖʔδͰݸͷϨγϐΛ঺հ͍ͯͨ͠৔߹

Slide 49

Slide 49 text

Ωϟογϡઓུͷ໰୊ w ෳ਺ಉ࣌໰͍߹Θͤ 42-ͷJO۟ͷΑ͏ʹJEෳ਺౉ͤΔ Ͱ͖ΔΑ͏ʹ͢Δͱ w ݸ໰͍߹Θͤͯݸ͔͠Ұக͠ͳ͔ͬͨ৔߹ɺΤϥʔ Λฦ͢΂͖͔औಘͰ͖ͨ෼͚ͩฦ͢΂͖͔ w ໰͍߹Θͤଆ΋ݸʹͳΔ·Ͱ܁Γฦ͠໰͍߹ΘͤΔ΂ ͖͔ w ͦͷෳ਺ΛҰؾʹΩϟογϡ͢΂͖͔ w ॲཧ͕ෳࡶʹͳΔ

Slide 50

Slide 50 text

Ωϟογϡઓུͷ໰୊ ͔͠΋͜Ε͕ଟஈʹͳΔ͜ͱ΋͋Δ DPPLQBEDPN DPPLQBEWJEFPKQ ಈը഑৴αʔό τοϓʹදࣔ͢ΔҰཡ௖ଷ Ұཡͷಈըϝλσʔλ௖ଷ

Slide 51

Slide 51 text

Ωϟογϡઓུͷ໰୊ ࠓͷͱ͜Ζ7BSOJTIͰ ͦ΋ͦ΋ΞϓϦέʔγϣϯαʔόʹདྷΔલʹฦ͢ ͔ ୯ҰϦιʔε"1*ΛNFNDBDIFEʹೖΕΔ ͷΛ࢖͍෼͚͍ͯΔ͕ ·ͩ·ͩߟ͑Δ༨஍͸͋Δ

Slide 52

Slide 52 text

IUUQTXXXqJDLSDPNQIPUPTKBLFSVTU (BSBHFͷଞʹࣾ಺Ͱ ϥΠϒϥϦԽ͞ΕͨΓ ͯ͠ڞ༗͞ΕͯΔ΋ͷ

Slide 53

Slide 53 text

w 17΍BVEJUܥ ͷϩάऩू w ΧελϜͳ਺஋ औಘγεςϜ w ϩάΠϯपΓ w ϔομϑομ w ޿ࠂ w σϓϩΠपΓ w $*पΓ w Τϥʔूܭ ڞ༗

Slide 54

Slide 54 text

࣮ࡍ੾Γ෼͚ͯΈͯ

Slide 55

Slide 55 text

΍ͬͯΈͯΑ͔ͬͨ w ߏ଄ͳͲ͕γϯϓϧʹͳͬͨ w ୯७ʹؾ͍͍࣋ͪ w WJFXͷϨϯμϦϯά͕ૣ͘ͳͬͨ w ࢥ͍੾ͬͨࢪࡦΛೖΕ΍͍͢ w ࣮ࡍʹ਺ࣈʹ΋ݱΕ͍ͯΔ

Slide 56

Slide 56 text

ͨͱ͑͹QKBY

Slide 57

Slide 57 text

ͨͱ͑͹QKBY

Slide 58

Slide 58 text

IUUQTEFWFMPQFSBQQMFDPNMJCSBSZTBGBSJEPDVNFOUBUJPO"VEJP7JEFP$PODFQUVBM 6TJOH@)5.-@"VEJP@7JEFP%FWJDF4QFDJpD$POTJEFSBUJPOT%FWJDF4QFDJpD$POTJEFSBUJPOTIUNM εϚϑΥͷϒϥ΢β͸ϢʔβʔΠϕϯτ ʢUPVDI΍DMJDLʣҎ֎Ͱ ϝσΟΞΛ࠶ੜ͢Δ͜ͱ͸ग़དྷͳ͍ POMPBEͱ͔ͷΠϕϯτͰࣗಈ࠶ੜΛ͢Δ͜ͱ͸ ग़དྷͳ͍

Slide 59

Slide 59 text

࣮͸ී௨ͷϦϯΫͰ͸ͳ͍ λοϓ͢Δͱ QKBYͰը໘Λॻ͖׵͑ͳ ͕ΒಈըΛ࠶ੜͯ͠Δ ը໘ભҠ͸͍ͯ͠ͳ͍

Slide 60

Slide 60 text

੾Γ෼͚ͯWJFX ͷ؅ཧΛࣗ෼ͨͪ ͚ͩͰͰ͖ΔΑ͏ ʹͳͬͨͷͰ࣮ݱ Ͱ͖ͨ

Slide 61

Slide 61 text

੾Γ෼͚ͯWJFX ͷ؅ཧΛࣗ෼ͨͪ ͚ͩͰͰ͖ΔΑ͏ ʹͳͬͨͷͰ࣮ݱ Ͱ͖ͨ

Slide 62

Slide 62 text

Τϥʔ͕ൃੜͨ͠ΒࣗಈతʹJTTVFT੾ͬͯ ͘Εͯϝϯόʔͷ୭͔ʹΞαΠϯͯ͘͠ΕΔ

Slide 63

Slide 63 text

Τϥʔूܭ͸4FOUSZͰ΍͍ͬͯ ΔͷͰQMVHJOॻ͍ͯެ։ͯ͋͠Δ IUUQTHJUIVCDPNZPTIJPSJTFOUSZOPUJGZHJUIVCJTTVFT

Slide 64

Slide 64 text

ΫοΫύουͷ044ͱͷؔ܎ ࡞ͬͨ΋ͷ͸جຊ044Ͱυϯυϯެ։ͯ͠Δ w DPPLQBEDIBOLP w ϓϩτλΠϓ։ൃ༻ͷϓϥάΠϯ w DPPLQBESSSTQFD w ෼ࢄςετ w DPPLQBELBHF w TIBEPXQSPYZTFSWF

Slide 65

Slide 65 text

w FBHMFUNUTXJUDI@QPJOU w 3%#38TQMJUUJOH w XJOFCBSSFMSJEHFQPM w εΩʔϚ؅ཧπʔϧ w TPSBINBNJZB w ߴ଎σϓϩΠ w FBHMFUNUGBNM w IBNߴ଎൛ w ࡉ͔͍΋ͷ͸਺͑ΒΕͣʜʜ

Slide 66

Slide 66 text

΋ͪΖΜ3VCZ΍3BJMTʹ΋ ίϯτϦϏϡʔτͯ͠Δ ๻΋ͪΐͬ͜ͱͯͨ͠Γ͢Δ

Slide 67

Slide 67 text

Ͱ

Slide 68

Slide 68 text

+----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 51762 | 41676 | 554 | 4170 | 7 | 7 | | Helpers | 15863 | 12986 | 18 | 1478 | 82 | 6 | | Models | 104034 | 81971 | 1851 | 9241 | 4 | 6 | | Mailers | 2150 | 1729 | 42 | 203 | 4 | 6 | | Workers | 639 | 540 | 20 | 31 | 1 | 15 | | Chanko units | 10341 | 8587 | 8 | 229 | 28 | 35 | | Libraries | 50661 | 41872 | 626 | 3790 | 6 | 9 | | Feature specs | 49901 | 40916 | 0 | 205 | 0 | 197 | | Request specs | 43437 | 37448 | 0 | 19 | 0 | 1968 | | Routing specs | 627 | 505 | 0 | 0 | 0 | 0 | | Controller specs | 63678 | 52586 | 6 | 128 | 21 | 408 | | Helper specs | 81289 | 67277 | 3 | 69 | 23 | 973 | | Model specs | 156941 | 129837 | 5 | 124 | 24 | 1045 | | Worker specs | 901 | 747 | 0 | 1 | 0 | 745 | | Chanko unit specs | 11476 | 9210 | 0 | 12 | 0 | 765 | | Library specs | 24911 | 20824 | 26 | 116 | 4 | 177 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 668611 | 548711 | 3159 | 19816 | 6 | 25 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 189361 Test LOC: 359350 Code to Test Ratio: 1:1.9 .PEFMTDMBTT਺ 

Slide 69

Slide 69 text

+----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 51762 | 41676 | 554 | 4170 | 7 | 7 | | Helpers | 15863 | 12986 | 18 | 1478 | 82 | 6 | | Models | 104034 | 81971 | 1851 | 9241 | 4 | 6 | | Mailers | 2150 | 1729 | 42 | 203 | 4 | 6 | | Workers | 639 | 540 | 20 | 31 | 1 | 15 | | Chanko units | 10341 | 8587 | 8 | 229 | 28 | 35 | | Libraries | 50661 | 41872 | 626 | 3790 | 6 | 9 | | Feature specs | 49901 | 40916 | 0 | 205 | 0 | 197 | | Request specs | 43437 | 37448 | 0 | 19 | 0 | 1968 | | Routing specs | 627 | 505 | 0 | 0 | 0 | 0 | | Controller specs | 63678 | 52586 | 6 | 128 | 21 | 408 | | Helper specs | 81289 | 67277 | 3 | 69 | 23 | 973 | | Model specs | 156941 | 129837 | 5 | 124 | 24 | 1045 | | Worker specs | 901 | 747 | 0 | 1 | 0 | 745 | | Chanko unit specs | 11476 | 9210 | 0 | 12 | 0 | 765 | | Library specs | 24911 | 20824 | 26 | 116 | 4 | 177 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 668611 | 548711 | 3159 | 19816 | 6 | 25 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 189361 Test LOC: 359350 Code to Test Ratio: 1:1.9 .PEFMTDMBTT਺   ݮΒͤͨ

Slide 70

Slide 70 text

No content

Slide 71

Slide 71 text

IUUQTSFDSVJUDPPLQBEDPN ͍ͬ͠ΐʹΨγΨγ044ʹίϯτϦϏϡʔτ͠ͳ͕Β ։ൃͯ͘͠ΕΔਓืूͯ͠·͢ʂ