Slide 1

Slide 1 text

ϦϑΝΫλϦϯάνϟϯεΛ୳ͤʂ ,BPSV)PUBUF!QVSVOLBPSV $SBTTJ3BJMT/JHIU DMBTTJ@SBJMT@OJHIU 1

Slide 2

Slide 2 text

อཱ֜ ,BPSV)PUBUF  5XJUUFS!QVSVOLBPSV ϝυϐΞͱ͍͏ձࣾͷ ΤϯδχΞͰ͢ 3VCZྺ೥͘Β͍ ΤϯδχΞྺ೥໨ ࣗݾ঺հ 2

Slide 3

Slide 3 text

ࠓ೔͸ϦϑΝΫλϦϯάͷ࿩Λ͠·͢ʂ 3

Slide 4

Slide 4 text

ϦϑΝΫλϦϯάͷ࿩ͷલʹɾɾɾ ࠷ۙͷ೰Έࣄʢ૟আʣΛ࿩͠·͢ 4

Slide 5

Slide 5 text

5

Slide 6

Slide 6 text

‣ झຯɾޘָͷਓ΋͍Δ ੒௕ͷͨΊʹ΍Δਓ΋͍Δ ΍Β͞Εͯ΍Δਓ΋͍Δ ݟͯݟ͵ৼΓΛ͢Δਓ΋͍Δ ‣ ϦϑΝΫλϦϯά΋ ΍Γ͍ͨਓɾզຫͰ͖ͳ͍ਓ͕΍Δʁ ‣ ༷ʑͳਓ͕͍ΔதͰɺϦϑΝΫλϦϯάΛ ૊৫ϨϕϧͰߦ͏ͷ͸͔ͳΓ೉ͦ͠͏ ϦϑΝΫλϦϯά΋Ұॹʁ 6

Slide 7

Slide 7 text

‣ ࠓ೔͸ɺϦϑΝΫλϦϯάΛ૊৫Ͱߦ͏ࡍͷ ಈػ෇͚ͱࢦ਑ʹয఺Λ౰ͯͯ࿩͠·͢ ‣ ʮͳͥʯ΍ʮͲ͏΍ͬͯʯͰ͸ͳ͘ɺ ʮԿΛʯϦϑΝΫλϦϯά͢Δ͔ʹ͍ͭͯ࿩͠·͢ ‣ ࣮ફ͍ͯ͠Δํ͸࠶֬ೝͰ͖Δ৔ʹͳΕ͹ͱࢥ͍·͢ ࠓ೔ͷ͓͸ͳ͠ 7

Slide 8

Slide 8 text

1BSU ΤϯδχΞνʔϜ಺Ͱͷ ϦϑΝΫλϦϯάͷϞνϕʔγϣϯΛ্͛Δ 8

Slide 9

Slide 9 text

ϦϑΝΫλϦϯάΛ΍Δཧ༝ͷେ෦෼͸ɺҎԼͷͭͰ͢ ‣ ʮ໘നͦ͏ʂʯ ྑ͍ઃܭΛҙࣝ͢ΔͷͰɺ੒௕ʹͭͳ͕Δ ‣ ʮզຫͰ͖ͳ͍ʂʯ ྑ͘ͳ͍ίʔυΛ๾໓ͯ͠ɺਫ਼ਆతॆ଍ײΛಘΔ ଞͷਓʹݟΒΕͨ͘ͳ͍ίʔυΛͬͦ͜Γྑ͓ͯ͘͘͠  ϦϑΝΫλϦϯά͕໨తʹͳΓ͕ͪɾɾɾ ϦϑΝΫλϦϯάΛ๻͕΍Δཧ༝ 9

Slide 10

Slide 10 text

ϦϑΝΫλϦϯά͚ͩͷ࣌ؒΛͱΔ͜ͱͰ ʮྑ͍ઃܭʯΛҙࣝͯ͠ίʔυΛॻ͘Α͏ʹͳΔ ϦϑΝΫλϦϯά͸੒௕ʹͭͳ͕Δ 10 ϦϑΝΫλϦϯά͕ಘҙʹͳΔͱɺʢதུʣѱ͍ίʔυΛॻ͘ͷΛ΍Ίɺ ѱ͍׳शʹै͏ͷΛ΍ΊɺϓϨϑΝΫλϦϯάΛ࢝ΊΔͷͩɻʢதུʣ ίʔυͷϦϑΝΫλϦϯά͸ɺίʔυΛॻ͘ͱ͖ʹͯ͠͸͍͚ͳ͍͜ͱɺ ୅ΘΓʹ͢΂͖͜ͱΛֶͿ্Ͱ࠷଎ͷํ๏ͷͭͳͷͩɻ %BWJE4DPUU#FSOTUFJOஶʮϨΨγʔίʔυ͔Βͷ୤٫ʯΑΓ

Slide 11

Slide 11 text

ྑ͍ઃܭΛ࣮ײ͢Δ࢓૊Έ͕ඞཁ 11 ‣ ڠྗ͠߹͏ ‣ ϖΞϓϩɾϞϒϓϩ ‣ ٕज़ސ໰ ‣ ϧʔϧʹଇΔ ‣ 40-*%ݪଇ ‣ ˓˓ύλʔϯ

Slide 12

Slide 12 text

‣ 'BU.PEFMͷղফύλʔϯΛ ͭͷࣄྫʹ෼͚ͯ঺հ͍ͯ͠·͢ IUUQTTQFBLFSEFDLDPNIPUBUFLBPSVGBUNPEFMOJEVJDIVTVSVUVGBMTFSJIVBLVUBSJOHVQBUBO 'BU.PEFMͷղফύλʔϯ 12

Slide 13

Slide 13 text

‣ ϦϑΝΫλϦϯά͸୹ظతʹ͓ۚΛੜΈग़ͮ͠Β͍΋ͷ ‣ ΍Γͨͯ͘΋ඇΤϯδχΞ͔Βཧղ͕ಘΒΕͳ͍ ݁Ռ΍Ε͍ͯͳ͍ਓ͕ଟ͍ͷͰ͸ʁ ࣮ࡍ͸ɾɾɾ 13

Slide 14

Slide 14 text

1BSU ඇΤϯδχΞʹ΋ ϦϑΝΫλϦϯάΛཧղͯ͠΋Β͏ 14

Slide 15

Slide 15 text

͚ͩ͜͜ͷ࿩Ͱ͕͢ɺ ؆୯ͳํ๏Λݟ͚ͭ·ͨ͠ 15

Slide 16

Slide 16 text

ΠϯύΫτͷ͋Δʮ΍Β͔͠ʯΛ͢Ε͹0,  ˞੹೚͸औΓ·ͤΜ 16

Slide 17

Slide 17 text

‣ ϦϑΝΫλϦϯάͱ͍͏޻਺͸ɺ ୹ظతʹपΓʹධՁ͞ΕͮΒ͍ ཧղΛಘͮΒ͍ ‣ ධՁɾཧղΛಘΔͨΊʹ͸ɺ਺ࣈ͕ඞཁ ‣ ඇΤϯδχΞͷཧղΛಘΔͨΊʹ͸ ఆྔతʹ੒ՌΛग़ͤΔՕॴ͔Β ϦϑΝΫλϦϯά͠·͠ΐ͏ ϦϑΝΫλϦϯάͷ੒ՌΛ໌֬ʹ͠Α͏ 17

Slide 18

Slide 18 text

‣ ϨεϙϯελΠϜ ‣ ςετͷ࣮ߦ଎౓ ‣ ίʔυͷ඼࣭ ‣ $PEF$MJNJBUF ‣ SVCZDSJUJD ‣ ίʔυͷՄಡੑ ‣ $POUSPMMFSͷߦ਺ ‣ 3VCPDPQͷEJTBCMF਺ ϦϑΝΫλϦϯάͷఆྔతͳ੒Ռ 18

Slide 19

Slide 19 text

‣ /FX3FMJD΍4LZMJHIUͰ ϨεϙϯελΠϜ͕஗͍ॲཧΛௐࠪ ‣ मਖ਼ྫ ‣ / Λແ͘͢ ‣ ൃߦ͞ΕΔΫΤϦΛνϡʔχϯά͢Δ ‣ ඇಉظʹͰ͖Δॲཧ͸ඇಉظʹ͢Δ ‣ ஗͍ॲཧΛݺͼग़͢ճ਺ΛݮΒ͢ ‣ SFEJTNFNDBDIFE ϦϑΝΫλϦϯάͷ,1*ྫʢϨεϙϯελΠϜʣ 19

Slide 20

Slide 20 text

‣ ѹ౗తʹ஗͍ͷ͸ɺKTUSVFͳ&&ͷςετ ‣ KTଆͷϩδοΫΛKFTUͳͲͷKTςετʹدͤΔ ‣ $POUSPMMFSͷϩδοΫΛ.PEFMଆʹدͤΔ ‣ ͨ·ʹམͪΔςετͷ࡟আ ϦϑΝΫλϦϯάͷ,1*ྫʢςετͷ࣮ߦ଎౓ʣ 20

Slide 21

Slide 21 text

‣ ෳ਺Օॴͷڞ௨ϩδοΫʢίϐϖʣΛݮΒ͢ ‣ ෳࡶͳ࣮૷ΛݮΒ͢ मਖ਼ྫ ‣ $PEF$MJNBUFͷධՁΛ্͛Δ ‣ SVCZDSJUJDͷධՁΛ্͛Δ ϦϑΝΫλϦϯάͷ,1*ྫʢίʔυͷ඼࣭ΛߴΊΔʣ 21

Slide 22

Slide 22 text

https://codeclimate.com/ ‣ Φʔϓϯιʔε͸ແྉ ‣ ೔ؒͷτϥΠΞϧظؒ͋Γ ͦͷ͋ͱ͸༗ྉ ‣ ࣌ؒʹ༨༟͕͋Ε͹ը໘ݟͤΔ $PEF$MJNBUF 22

Slide 23

Slide 23 text

https://github.com/whitesmith/rubycritic ‣ ࣌ؒʹ༨༟͕͋Ε͹ը໘ݟͤΔ SVCZDSJUJD 23

Slide 24

Slide 24 text

‣ ʮඞཁʹഭΒΕΔલʹʯՄಡੑΛߴΊΔमਖ਼Λߦ͏ ‣ ඇΤϯδχΞ΁ͷཧղ͸ඞཁ मਖ਼ྫ ‣ $POUSPMMFSͷߦ਺ΛݮΒ͢ ‣ 3VCPDPQͷEJTBCMF਺ΛݮΒ͢ ‣ .PEFMͷॲཧΛผΫϥεʹҕৡ͢Δ ϦϑΝΫλϦϯάͷ,1*ྫʢՄಡੑΛߴΊΔʣ 24

Slide 25

Slide 25 text

‣ ϦϑΝΫλϦϯά͸ΤϯδχΞͱͯ͠ͷ੒௕ʹͭͳ͕Δ ‣ ΤϯδχΞ͕ࣗൃతʹϦϑΝΫλϦϯά͢ΔͨΊʹ͸ɺ ੒௕Λ࣮ײͰ͖Δ࢓૊Έ͕ඞཁ ‣ ඇΤϯδχΞʹϦϑΝΫλϦϯά޻਺Λ ཧղͯ͠΋Β͏ͨΊʹ͸ɺ ਺஋Ͱ੒ՌΛใࠂͰ͖ΔϦϑΝΫλϦϯά͕ඞཁ ·ͱΊ 25

Slide 26

Slide 26 text

ࢀߟจݙ 26 ‣ ϨΨγʔίʔυ͔Βͷ୤٫ ʕιϑτ΢ΣΞͷण໋ΛԆ͹͠ Ձ஋ΛߴΊΔͭͷϓϥΫςΟε %BWJE4DPUU#FSOTUFJOஶ

Slide 27

Slide 27 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 27