Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2020年度 ミクシィ新卒研修 -設計・テスト- / 2020 design test mixi training

rockname
April 15, 2020

2020年度 ミクシィ新卒研修 -設計・テスト- / 2020 design test mixi training

2020年度の株式会社ミクシィ における新卒研修の資料です

repository: https://github.com/mixi-inc/2020TDDTraining

rockname

April 15, 2020
Tweet

More Decks by rockname

Other Decks in Programming

Transcript

  1. ೥౓ϛΫγΟ৽ଔݚम
    ઃܭɾςετ
    גࣜձࣾϛΫγΟΈͯͶࣄۀ෦
    ϩΫωϜ[email protected]

    View Slide

  2. NJYJ *OD
    ࠓճͷݚमͷΰʔϧ
    w ྑ͍ઃܭ ѱ͍ઃܭΛཧղ͢Δ
    w ςετͷجຊతͳॻ͖ํΛཧղ͢Δ

    View Slide

  3. NJYJ *OD
    ͳͥྑ͍ઃܭ͕ٻΊΒΕΔͷ͔
    w ઃܭͷ඼࣭͕ྑ͚Ε͹ɺ৽͍͠ϦϦʔεͷͨͼʹඞཁͳ࿑ྗ͸গͳ͘཈͑ΒΕ·͢
    w ඼࣭͕ѱ͚Ε͹ɺࠣࡉͳมߋͰ͑͞େྔͷϑΝΠϧ܈ʹ·͕ͨͬͯෳ਺ՕॴΛमਖ਼͠ɺͦ
    ͷӨڹൣғ͚ͩಈ࡞֬ೝ౳Λ͢Δඞཁ͕͋ͬͨΓ͠·͢
    w ܦӦऀࢹ఺ͰͷཁٻεϐʔυΛຬͨͤͳ͘ͳΓɺڝ߹ଞࣾͱͷ૪͍ʹഊ๺͢ΔҰҼʹ͢
    ΒͳΓ͔Ͷ·ͤΜ

    View Slide

  4. NJYJ *OD
    ྑ͍ઃܭΛྺ࢙ʹֶͿ
    w ϓϩάϥϛϯάݴޠͷύϥμΠϜ͸ҎԼͷΑ͏ͳਐԽΛ਱͖͛ͯ·ͨ͠
    ߏ଄Խϓϩάϥϛϯά
    ΦϒδΣΫτࢦ޲ϓϩάϥϛϯά
    ؔ਺ܕϓϩάϥϛϯά

    View Slide

  5. NJYJ *OD
    ߏ଄Խϓϩάϥϛϯά
    w ॱ࣍ɾ൓෮ɾબ୒ͷ੍ޚߏ଄ʹΑͬͯϓϩάϥϜΛهड़Ͱ͖ΔΑ͏ʹ͠·ͨ͠
    w ॱ্͔࣍ΒԼʹॲཧ͕࣮ߦ͞Ε͍ͯ͘
    w ൓෮EPXIJMFͷΑ͏ʹ৚݅Λຬͨ͢ݶΓॲཧΛ܁Γฦ͢
    w બ୒JGUIFOFMTFͷΑ͏ʹ৚݅ʹԠͯ͡ॲཧΛ෼͔ͭ
    w ࢦఆͨ͠೚ҙͷҐஔʹҠಈ͢ΔHPUPจΛഇࢭͯ͠ɺ্هͷ੍ޚߏ଄Λ༻͍Δ͜ͱͰɺ൓
    ূՄೳͳϓϩάϥϛϯάͷ୯ҐΛ࡞੒Ͱ͖ΔΑ͏ʹ͠·ͨ͠
    ʮ$MFBO"SDIJUFDUVSFୡਓʹֶͿιϑτ΢ΣΞͷߏ଄ͱઃܭʯୈষΑΓ

    View Slide

  6. NJYJ *OD
    ΦϒδΣΫτࢦ޲ϓϩάϥϛϯά
    w ΦϒδΣΫτࢦ޲ݴޠ͕ొ৔͢ΔҎલ͸ɺϙϦϞʔϑΟζϜΛؔ਺ͷϙΠϯλʹΑͬͯද
    ݱ͍ͯ͠·ͨ͠
    w ͔͠͠ɺʮϙΠϯλܦ༝Ͱؔ਺Λݺͼग़͢ʯͱ͍͏͜ͱΛҙࣝͯ͠ίʔυΛѻΘͳ͚Ε
    ͹ͳΒͣɺඇৗʹյΕ΍͍͢ঢ়ଶͰͨ͠
    w ΦϒδΣΫτࢦ޲ݴޠ͸ܧঝʹΑΔ҆શͳϙϦϞʔϑΟζϜख๏ͷఏڙʹΑΓɺ͜ͷΑ͏
    ͳؒ઀తͳ੍ޚͷҠߦΛ཈੍͠·ͨ͠
    ʮ$MFBO"SDIJUFDUVSFୡਓʹֶͿιϑτ΢ΣΞͷߏ଄ͱઃܭʯୈষΑΓ

    View Slide

  7. NJYJ *OD
    ؔ਺ܕϓϩάϥϛϯά
    w ม਺͕࠶୅ೖՄೳͰ͋Δ͜ͱʹΑͬͯɺڝ߹ঢ়ଶ΍σουϩοΫ ฒߦߋ৽ͳͲɺҙࣝ͢
    ΂͖໰୊͕ଟ͍Ͱ͢
    w ؔ਺ܕݴޠ͸ɺม਺ʹҰ౓୅ೖ͞Εͨ஋Λෆมʹ͢Δ͜ͱͰ͜ͷΑ͏ͳ໰୊Λؾʹ͢Δ
    ඞཁΛഉআ͠·ͨ͠
    ʮ$MFBO"SDIJUFDUVSFୡਓʹֶͿιϑτ΢ΣΞͷߏ଄ͱઃܭʯୈষΑΓ

    View Slide

  8. NJYJ *OD
    ྑ͍ઃܭΛྺ࢙ʹֶͿ
    w ʮԿΛ͢΂͖Ͱ͸ͳ͍͔ʯͱ͍͏ن཯Λ՝͢͜ͱͰɺϓϩάϥϛϯάͷύϥμΠϜ͸ਐԽΛ
    ਱͖͛ͯ·ͨ͠
    ߏ଄ԽϓϩάϥϛϯάˠHPUPจͷഇࢭ ௚઀తͳ੍ޚͷҠߦʹର͢Δن཯

    ΦϒδΣΫτࢦ޲ϓϩάϥϛϯάˠ
    ϙΠϯλܦ༝ʹΑΔؔ਺ݺͼग़͠ͷഇࢭ ؒ઀తͳ੍ޚͷҠߦʹର͢Δن཯

    ؔ਺ܕϓϩάϥϛϯάˠม਺΁ͷ࠶୅ೖͷഇࢭ ୅ೖʹର͢Δن཯

    w ن཯Λ੍࣋ͬͯݶ͢ΔൣғΛ޿͛Δ͜ͱͰɺίʔυͷՄಡੑͱอकੑΛ୲อ͖ͯͨ͠ͷͰ͢

    View Slide

  9. ྑ͍ઃܭ໌ྎͳن཯

    View Slide

  10. NJYJ *OD
    ΞʔΩςΫνϟʹΑΔن཯
    w ΞʔΩςΫνϟ͸ɺγεςϜʹ͓͚Δίϯϙʔωϯτಉ࢜ͷؔ܎Λߏ଄Խͯ͠ఆٛͨ͠΋
    ͷͰ͢
    w ֤ίϯϙʔωϯτͷؔ܎ʹରͯ͠ن཯Λ՝͢͜ͱͰɺγεςϜͷத௕ظతͳอकੑΛ୲อ
    ͠·͢
    w ྑ͍ΞʔΩςΫνϟΛߟ͑Δ্ͰɺҎԼͷͭͷํ਑͕ॏཁͰ͢
    w ίϯϙʔωϯτؒͷґଘ͸॥؀ͤ͞ͳ͍
    w ίϯϙʔωϯτ͸ΑΓ҆ఆ౓ͷߴ͍ํ޲΁ґଘͤ͞Δ

    View Slide

  11. NJYJ *OD
    ίϯϙʔωϯτؒͷґଘ͸॥؀ͤ͞ͳ͍
    w ίϯϙʔωϯτͷؔ܎ʹ॥؀ґଘ͕ଘࡏ͍ͯͨ͠৔
    ߹ɺมߋͷӨڹൣғ͕ෆ໌ྎ͔ͭɺෳ਺ਓʹΑΔ։
    ൃن໛ͷεέʔϧ͕࣮ݱͰ͖·ͤΜ
    w ίϯϙʔωϯτಉ࢜ͷڥքΛ໌֬ʹܾΊͯɺґଘͷ
    ํ޲Λ୯ํ޲ʹ͢Δ͜ͱ͕େ੾Ͱ͢

    View Slide

  12. NJYJ *OD
    ίϯϙʔωϯτ͸ΑΓ҆ఆ౓ͷߴ͍ํ޲΁ґଘͤ͞Δ
    w ίϯϙʔωϯτؒͷґଘͷํ޲Λߟ͑Δࡍʹ͸ɺ҆ఆ౓ͷߴ͍ํ޲΁ґ
    ଘΛ৳͹͠·͢
    w ҆ఆͱ͸ʮมΘΒͳ͍͜ͱʯɺݴ͍׵͑Ε͹ʮมߋ͠ʹ͍͘͜ͱʯΛࢦ
    ͠·͢
    w 8FCΞϓϦέʔγϣϯͰߟ͑Δͱɺ7JFX΍"1*͸มߋͷස౓͸ߴ͘
    ෆ҆ఆͰ͋Δͱݴ͑·͢
    w ٯʹ%#εΩʔϚͳͲ͸Ұ౓ఆٛ͢Δͱมߋ͠ʹ͍͘ͷͰ҆ఆ౓͕ߴ
    ͍ͱݴ͑ΔͰ͠ΐ͏
    w มߋස౓͕ߴ͍ίϯϙʔωϯτʹґଘ͢ΔίϯϙʔωϯτΛগͳ͘͢Δ
    ͜ͱͰɺ౎౓ͷमਖ਼ൣғΛڱΊΔ͜ͱ͕Ͱ͖·͢

    View Slide

  13. NJYJ *OD
    ϨΠϠʔυΞʔΩςΫνϟ
    w Ҏ্ͷ఺Λߟྀͨ͠༗໊ͳΞʔΩςΫνϟͱͯ͠ɺϨΠϠʔυΞʔ
    ΩςΫνϟ͕ଘࡏ͠·͢
    w ૚ͷϨΠϠʔʹίϯϙʔωϯτΛ۠੾Γɺґଘؔ܎Λํ޲ʹἧ͑Δ
    ΋ͷͰ͢
    w 6*૚6*ͷϨΠΞ΢τΛߦ͏
    w ΞϓϦέʔγϣϯ૚6*ͷঢ়ଶ؅ཧ΍υϝΠϯ૚ͱͷڮ౉͠Λߦ͏
    w υϝΠϯ૚υϝΠϯʹ͓͚ΔϏδωεϩδοΫΛ࣮૷͢Δ
    w Πϯϑϥ૚%#΍֎෦γεςϜ΁ͷΞΫηεΛߦ͏

    View Slide

  14. NJYJ *OD
    ࠓճͷݚमʹ͍ͭͯ
    w ͯ͞ɺຊ୊ͷࠓճͷݚमʹ͍ͭͯͰ͢
    w Έͳ͞Μʹ͸ࠓ͔Βɺ3VCZPO3BJMTʹΑͬͯ࡞ΒΕͨαϯϓϧΞϓϦέʔγϣϯʹɺ
    ΞʔΩςΫνϟΛద༻͠ͳ͕ΒϦϑΝΫλϦϯάͯ͠΋Β͍·͢
    w ৄࡉ͸IUUQTHJUIVCDPNNJYJJOD5%%5SBJOJOHͷ3&"%.&Λࢀরͯͩ͘͠
    ͍͞

    View Slide

  15. NJYJ *OD
    ࠷ऴతͳΞʔΩςΫνϟ

    View Slide

  16. NJYJ *OD
    ςετΛॻ͍ͯΈͯ
    w ΋͔ͨ͠͠Βςετʹରͯ͠ɺҎԼͷΑ͏ͳ൥Θ͠͞Λײͨ͡ਓ΋͍Δ͔΋͠Ε·ͤΜ
    w ॻ͘ίʔυྔ͕୯७ʹഒ
    w ςετίʔυΛॻ͘؀ڥͷߏங อकʹίετ͕͔͔Δ
    w ςετΛॻ͘͏͑Ͱඞཁͱ͞ΕΔ஌ࣝͷֶशίετ͕͔͔Δ

    View Slide

  17. NJYJ *OD
    ͳͥςετΛॻ͘ͷ͔
    w ςετΛॻ͘͜ͱʹΑͬͯಘΒΕΔԸܙΛཧղ্ͨ͠Ͱॻ͘͜ͱ͕େ੾Ͱ͢
    w જࡏతʹଘࡏ͢Δෆ۩߹ʹରͯ͠ૣ͍ஈ֊Ͱؾ෇͚Δ
    w ςετΛʮॻ͚ΔΑ͏ʹ࣮૷͢Δʯ͜ͱͰίʔυ͕៉ྷʹͳΔ
    w ෭࡞༻Λ࣋ͨͤͳ͍
    w ґଘੑΛ಺෦ͰॳظԽͤͣ֎͔Β౉͢
    w ػೳ௥Ճ मਖ਼ʹΑΓҙਤ͠ͳ͍ͱ͜ΖͰطଘ࢓༷͕յΕͯ΋ɺςετ͕མͪΔ͜ͱʹ
    Αͬͯؾ෇͚Δ
    w ςετίʔυʹΑ࣮ͬͯ૷ͷ࢓༷ΛυΩϡϝϯτԽͰ͖Δ

    View Slide

  18. NJYJ *OD
    ͨͩ͠
    w ݴޠ΍ϓϥοτϑΥʔϜʹΑͬͯςετͷॻ͘ྔ͸౰વมΘΓ·͢
    w ಈతܕ෇͚Ͱ͋Ε͹໭Γ஋ͷܕ·Ͱςετ͍ͨ͠
    w ੩తܕ෇͚ͰίϯύΠϥʹΑͬͯࣗ໌ͳৼΔ෣͍͸ςετ͢Δඞཁ͸ͳ͍
    w ϓϩδΣΫτͷϑΣʔζ΍ํ਑ʹΑͬͯςετͷॻ͖ํ͸มΘΓ·͢
    w ϓϩτλΠϓʹରͯ͠ॏްʹςετΛॻ͘ඞཁ͸ͳ͍

    View Slide

  19. NJYJ *OD
    ࠷ޙʹ
    w ࠓճ͸3BJMTʹΑͬͯ࡞ΒΕͨ8FCΞϓϦέʔγϣϯΛɺΞʔΩςΫνϟΛద༻ͭͭ͠5%%ͰϦϑΝ
    ΫλϦϯάͯ͠΋Β͍·ͨ͠
    w ͔͠͠ɺߏ଄Խ͞ΕͨΞʔΩςΫνϟͷಋೖ͕ඞͣ͠΋ਖ਼ղͰ͋Δͱ͸ݶΓ·ͤΜ
    w ϏδωεతͳཁٻͰڝ߹ΑΓઌʹͱʹ͔͘ϦϦʔε͢Δ͜ͱ͕༏ઌ͞ΕΔͷͰ͋Ε͹ɺ3BJMTͷϨʔ
    ϧʹ৐ͬͯߴ଎Ͱ੒Ռ෺Λग़͢ͷ͕ྑ͍৔߹΋͋Γ·͢
    w ͨͩ͠ɺͦͷ৔߹ʮෛ࠴ΛआΓೖΕ͍ͯΔʯͱ͍͏ҙࣝΛ࣋ͭ͜ͱ͕େ੾Ͱ͢ɺকདྷෛ࠴Λฦ͢ඞཁ
    ͕͋Δ͜ͱΛཹҙ͠ɺͦΕΛεςʔΫϗϧμʔʹཧղͯ͠΋Β͍ͳ͕Β։ൃΛਐΊΔ͜ͱ͕ཧ૝Ͱ͢
    w ·ͨɺࠓճͷΑ͏ͳΞʔΩςΫνϟΛ͍͟ಋೖ͢Δ৔߹͸ɺඞͣಠΓΑ͕ΓʹͳΒͣɺνʔϜͰ߹ҙ
    ΛऔΓͳ͕ΒυΩϡϝϯτʹઃܭͷҙਤΛ࢒͢ɺͱ͍͏͜ͱΛ๨Εͳ͍Α͏ʹ͠·͠ΐ͏

    View Slide

  20. NJYJ *OD
    ࢀߟॻ੶

    $MFBO"SDIJUFDUVSF
    ୡਓʹֶͿιϑτ΢ΣΞͷߏ଄ͱઃܭ
    3PCFSU̘.BSUJO ஶ
    ֯੐య ஶ

    View Slide

  21. NJYJ *OD
    ࢀߟॻ੶

    ςετۦಈ։ൃ
    ,FOU#FDI ஶ
    ࿨ా୎ਓ ຋༁

    View Slide