$30 off During Our Annual Pro Sale. View Details »

Yappliの「改善」はどのようにして進化を歩んだか / How has the platform Yappli's "improvements" evolved?

Yappliの「改善」はどのようにして進化を歩んだか / How has the platform Yappli's "improvements" evolved?

Yappli Tech Conference 2022 の発表資料です。

▼イベントページ
https://yappli.connpass.com/event/259001/

Megumi Nakamichi

October 04, 2022
Tweet

Other Decks in Programming

Transcript

  1. Yappliの「改善」は


    どのようにして進化を歩んだか
    SESSION 09

    View Slide

  2. גࣜձࣾϠϓϦ
    ϓϩμΫτ։ൃຊ෦։ൃاը෦։ൃσΟϨΫλʔ
    ஥ಓѪඒ
    Megumi Nakamichi

    View Slide

  3. INDEX
    01
    02
    03
    04
    05
    ࣗݾ঺հɾܦྺ
    Yappliの開発について
    気になること
    対応したこと
    まとめ

    View Slide

  4. ࣗݾ঺հɾܦྺ

    View Slide

  5. ࣗݾ঺հɾܦྺ
    ৽ଔͰ*5ϕϯνϟʔاۀʹೖࣾ͠ɺ

    σβΠϯۀ຿΍ࣗࣾΞϓϦ։ൃͷσΟϨΫλʔΛ୲౰ɻ

    ʢϝΠϯ͸σβΠφʔͰ͕ͨ͠ɺ࢓༷ࡦఆɾ2"ɾ޿ࠂ੍࡞ͳͲ͍Ζ͍Ζ΍ͬͯ·ͨ͠ɻʣ
    ͦͷޙɺ೥ʹϠϓϦʹೖࣾ͠ɺ
    ΫϥΠΞϯτͷΞϓϦ੍࡞୅ߦΛ୲͏ΞϓϦσβΠφʔͱͯ͠ैࣄɻ
    ೥ʹϓϩμΫτ։ൃຊ෦΁ࣾ಺Ҡಈɻ
    Ҏ߱͸ɺ։ൃσΟϨΫλʔͱͯ͠ɺʮվળʯʹಛԽͯ͠ରԠ͢ΔνʔϜʹ഑ଐɻ

    վળҊ݅ͷ࢓༷ݕ౼΍ࣾ಺։ൃϑϩʔͷ੔උͳͲΛ୲͏ɻ
    גࣜձࣾϠϓϦ
    ϓϩμΫτ։ൃຊ෦։ൃاը෦։ൃσΟϨΫλʔ
    ஥ಓѪඒ
    Megumi Nakamichi
    ࢲͷؾ࣋ͪΛ୅หͯ͠
    ͨ·ʹग़ͯ͘Δࣗ࡞ΩϟϥͰ͢

    View Slide

  6. ࣗݾ঺հɾܦྺɹ-ɹݱࡏͷॴଐ෦ॺͷ঺հ
    1E.ۀ຿ͳͲͷ੡඼։ൃɾվળͷ΄͔ɺ
    ։ൃάϧʔϓ಺ͷϑϩʔݟ௚͠΍࢓૊Έͮ͘ΓͳͲΛ୲౰

    ʢ˞࣍ϖʔδͰৄࡉͷઆ໌͠·͢ʣ
    ։ൃʹ͓͚Δ্ྲྀ޻ఔΛ୲͏ɻ
    ։ൃσΟϨΫλʔͷଞʹɺ69σβΠφʔςΫχΧϧϥΠλʔ͕
    ॴଐ͍ͯ͠Δ෦ॺ
    ։ൃσΟϨΫλʔ
    ։ൃاը෦

    View Slide

  7. ࣗݾ঺հɾܦྺɹ-ɹ։ൃσΟϨΫλʔͷ࢓ࣄ
    ͳͲ
    ˒୲౰͢ΔϓϩδΣΫτ΍վળͷσΟϨΫγϣϯɾࣾ಺ௐ੔

    ɹˠଞ෦ॺͱ࿈ܞͯ͠ɺ՝୊ɾχʔζͷ෼ੳ΍੔ཧɺ࢓༷ͷௐ੔Λߦ͏
    ɹˠϦϦʔεޙͷϓϨεϦϦʔεɺࣾ֎޿ใ༻ͷOPUFهࣄ࡞੒ʢIUUQTOFXTZBQQMJDPKQNNGBʣ
    ˒։ൃʹ·ͭΘΔ࢓༷ॻͷ࡞੒

    ɹˠʮ:BQQMJʯ͸ϓϥοτϑΥʔϜͷͨΊɺडୗ։ൃͱ͸ҟͳΓɺ൚༻ੑ͕ߴ͍࡞Γʹͳ͍ͬͯΔɻ

    ɹɹɹͦͷͨΊɺ࢓༷΋ෳࡶԽ͠΍͘͢࢓༷ॻ·ͱΊ͕ॏཁʹͳ͍ͬͯΔ
    ɾ੡඼Ξοϓσʔτͷࣾ಺ڞ༗
    ɾܰඍͳෆ۩߹ɾվળରԠͷ࢓૊ΈԽ΍ϑϩʔվળ
    ɾ։ൃاը෦͕اը͢Δࣾ಺ΠϕϯτͷӡӦ

    View Slide

  8. ࣮͸ࢲɺͭͷ෦ॺΛ݉೚ͯ͠·͢ɻ
    ࣗݾ঺հɾܦྺ
    ɹओ຿
    ɹɾϓϩμΫτ։ൃຊ෦։ൃاը෦։ൃσΟϨΫλʔ
    ɹ݉຿
    ɹɾΧελϚʔαΫηεຊ෦ΞϓϦσβΠϯ෦ΞϓϦσβΠφʔ
    ɹɾϐʔϓϧˍΧϧνϟʔຊ෦ϦϨʔγϣϯγοϓɾϚωδϝϯτࣨ

    ɹɹʮ౔Ҫળ੖ͷ࿨৯ʯνʔϜӡ༻୲౰ʢ˞:BQQMJͰ࡞੒ɾӡ༻͍ͯ͠ΔࣗࣾΞϓϦʣ

    View Slide

  9. ओ຿ɹɹɹɹɹɹɹɹ݉຿
    ࣗݾ঺հɾܦྺ
    ೖࣾ࣌ ΞϓϦσβΠφʔɹɹͳ͠
    ΞϓϦσβΠφʔɹʮ౔Ҫળ੖ͷ࿨৯ʯνʔϜ
    ΞϓϦσβΠφʔɹɹ։ൃσΟϨΫλʔɺʮ౔Ҫળ੖ͷ࿨৯ʯνʔϜ
    ։ൃσΟϨΫλʔɹɹΞϓϦσβΠφʔɺʮ౔Ҫળ੖ͷ࿨৯ʯνʔϜ
    ೥ʙ
    ೥ʙ
    ೥ʙ

    View Slide

  10. ɾΞϓϦσβΠφʔ͸ʮ:BQQMJʯΛ࢖ͬͯΞϓϦΛ࡞੒͢Δ෦ॺɻ
    ɹσβΠϯίϯςϯπೖߘΫϥΠΞϯτ΁ͷϨΫνϟʔӡ༻୅ߦͳͲ
    ɹΞϓϦ੍࡞ʙΧελϚʔαΫηε·ͰɺଟذʹΘͨΔ
    ɾΞϓϦσβΠφʔ͸ɺࣗࣾ੡඼Λ࢖ͬͯ೔ʑΞϓϦ੍࡞Λߦͳ͍ͬͯΔͷͰɺ

    ɹཁ๬΍ෆ۩߹ʹؾ͖ͮ΍͍͢
    ɾࠓ·Ͱ͸վળͷཁ๬Λग़͢ଆ͕ͩͬͨɺ
    ʮ:BQQMJΛ࢖͏ଆͷܦݧΛ։ൃʹੜ͔͍ͨ͠ʂʯͱࢥ͍ɺ
    ɹ౰࣌ͷ্௕ʹ૬ஊͯ͠ɺ։ൃاը෦΁ࣾ಺Ҡಈͨ͠
    ɾ։ൃຊ෦ͱଞ෦ॺͱͷڮ౉͠Λ͍ͨͨ͠Ίɺࠓ΋݉຿Λଓ͚͍ͯΔ
    ࣗݾ঺հɾܦྺ - ։ൃσΟϨΫλʔʹͳͬͨഎܠ

    View Slide

  11. TODAY TOPIC


    :BQQMJͷʮվળʯ͸
    ͲͷΑ͏ʹͯ͠ਐԽΛาΜ͔ͩ

    View Slide

  12. :BQQMJͷ։ൃʹ͍ͭͯ

    View Slide

  13. Yappli ͷ։ൃʹ͍ͭͯ
    ৽ن։ൃ
    ʢઓུతͳ։ൃʣ
    อक
    ʢෆ۩߹ରԠʣ
    վળ
    ʢϓϥοτϑΥʔϜڧԽʣ

    View Slide

  14. ɾ$.4΍ΞϓϦʹدͤΒΕΔཁ๬ɾΞΠσΟΞɾٕज़ෛ࠴ͳͲΛ
    ɹ૯ධͯ͠ʮվળʯͱݺΜͰ͍Δ
    ɾʮվળʯͱ͍ͬͯ΋ɺܰඍͳจݴௐ੔ɾௐࠪɾ෦෼։ൃͳͲɺ
    ɹରԠൣғɾن໛͕༷ʑ
    ɾνέοτ؅ཧ͸ɺ+*3"Λ࢖͍ͬͯΔ
    Yappli ͷ։ൃʹ͍ͭͯ - ʮվળʯͷઆ໌

    View Slide

  15. ʮYappliʯͷ։ൃʹ͍ͭͯ - ʮվળʯͷྺ࢙
    ೥ʑɺػೳ΋ΫϥΠΞϯτ΋૿͍͑ͯ͘தͰɺࣾ಺ཁ๬΋૿͖͑ͯͨʂ
    ʮվળʯ͕ࣾ಺Ͱఆண͠ɺશࣾతʹ΋େ੾ͳจԽͷͭʹͳͬͨʂ

    ɾվળʹूதతʹऔΓ૊Ή೔ʮ:BQQEBUF%BZʢϠοϓσʔτσʔʣʯ͕Ͱ͖ͨʂ

    ɾվળʹؔ͢ΔΞΠσΟΞΛશࣾʹ޲͚ͯϓϨθϯ͢ΔΠϕϯτʮϠϓϦΫʯ͕Ͱ͖ͨʂ

    ɾࠓ೥ͷ݄ʹʮ:BQQEBUF%BZʯ͸ճ໨Λܴ͑ͨʂ
    ɾʮϠϓϦΫʯ΋શࣾһͷˋҎ্͕ࢀՃ͢ΔΠϕϯτʹͳͬͨʂ

    View Slide

  16. ʮYappliʯͷ։ൃʹ͍ͭͯ - ʮվળʯͷྺ࢙
    ʮվળʯʹ·ͭΘΔࣾ಺Πϕϯτ͸ɺͦΕͧΕOPUFʹهࣄ͕͋Γ·͢ʂ
    ϠϓϦΫ
    IUUQTUJNFTZBQQMJDPKQOOEGBD
    :BQQEBUF%BZʢϠοϓσʔτσʔʣ
    IUUQTUJNFTZBQQMJDPKQOOEEGE

    View Slide

  17. خ͍͜͠ͱ͕ଓ͘த
    ͢͜͠ؾʹͳΔ͜ͱ΋ग़͖ͯͨ

    View Slide

  18. ؾʹͳΔ͜ͱ
    ʮվળʯ΋ࣾ಺Ͱ׆ੑԽ͖ͯͯ͠ɺ͞·͟·ͳϦϦʔε͕͞ΕΔதɺ
    ͡Θ͡Θͱ૿͑ଓ͚Δະணखͷվળνέοτɻ
    ೥ʹ͸ɺຕۙ͘ͷվળνέοτ͕ཌ೥ʹਃ͠ૹΓʹɻ
    ͜Μͳʹվળͯ͠ΔͷʹɺͲ͏ͯ͠ݮΒͳ͍ΜͩΖ͏ɾɾɾʁ
    Ͳ͏ͯ͠ɾɾɾɾɾɾɾ
    ɾɾɾɾɾ
    ɾɾɾ
    ɾɾ
    վળ΍ͬͯ΋΍ͬͯ΋
    ऴΘΔؾ͕͠ͳ͍ʜ

    View Slide

  19. ೥ͷະணखνέοτൃ۷Λ͖͔͚ͬʹ
    վળνέοτͷݱঢ়ௐࠪʹ౿Έ੾Δ

    View Slide

  20. ʮվળʯͷݟ͑ΔԽ
    STEP 1
    ʮվળʯͷঢ়گ෼ੳ
    STEP 2
    ɹ΍ͬͨ͜ͱ
    STEP 3

    View Slide

  21. ʮվળʯͷݟ͑ΔԽ
    STEP 1
    ʮվળʯͷঢ়گ෼ੳ
    STEP 2
    ɹ΍ͬͨ͜ͱ
    STEP 3

    View Slide

  22. ݱঢ়Λ೺Ѳ͢ΔͨΊʹ΋ɺ·ͣ͸࢒ཹ͍ͯ͠ΔνέοτΛ͢΂ͯूܭʂ
    +*3"ΛεϓϨουγʔτʹు͖ग़ͯ͠ɺ
    εςʔλεผɾػೳผͳͲʹࡉ͔͘෼ྨͯ͠ɺશମΛݟ͑ΔԽͨ͠ɻ
    STEP1ɹʮվળʯͷݟ͑ΔԽ
    ۠෼͚ͱ͔͸ख࡞ۀͰɻ
    ੒ܗ͕ຊ౰ʹେมͩͬͨʜ

    View Slide

  23. ʮվળʯͷݟ͑ΔԽ
    STEP 1
    ʮվળʯͷঢ়گ෼ੳ
    STEP 2
    ɹ΍ͬͨ͜ͱ
    STEP 3

    View Slide

  24. ʣணख్தʹԿΒ͔ͷཧ༝Ͱࢭ·ͬͯ͠·ͬͨνέοτ͕ਐߦ͍ͯ͠ͳ͍
    ɹɾҰ൪ݹ͍νέοτͰɺ೥࡞੒ͷ΋ͷ΋͋ͬͨɻ
    ɹɾ04ؔ܎ͷνέοτ͸ɺ࠷৽04Ͱ͸ղফ͍ͯ͠Δ͕ɺνέοτ͸ະରԠͷ··࢒Γଓ͚ͯ͠·͍ͬͯͨɻ
    ʣվળر๬͕ଟ͋͘ΓɺʮԿΛ༏ઌͯ͠ணखͨ͠Β͍͍ͷ͔ʁʯ

    ɹΤϯδχΞ͕෼͔Βͳ͍ঢ়ଶʹͳ͍ͬͯͨ
    ɹɾ೥͝Ζ·Ͱɺࣾ಺ͷվળཁ๬Λ͢΂ͯվળνέοτԽ͍ͯͨͨ͠Ίɺ
    ɹɹ೥ʑɺ࢒ཹνέοτ͕૿͑ଓ͚ͯ͠·ͬͨɻ
    ʣվળνέοτʹ޻਺ݟੵ͕ͳ͘ɺ։ൃن໛͕෼͔Βͳ͍
    ɹɾ޻਺ن໛Λߟྀͤͣɺ͍ܰνέοτʙॏ͍νέοτ͕͢΂ͯಉ͡վળϘʔυ಺ʹ֨ೲ͞Ε͍ͯͨɻ
    STEP2ɹʮվળʯͷঢ়گ෼ੳ

    View Slide

  25. ʻঢ়گ෼ੳʼ
    ʣணख్தʹԿΒ͔ͷཧ༝Ͱࢭ·ͬͯ͠·ͬͨνέοτ͕ਐߦ͍ͯ͠ͳ͍
    ʣվળر๬͕ଟ͋͘ΓɺԿΛ༏ઌͯ͠ணखͨ͠Β͍͍ͷ͔ʁ

    ɹΤϯδχΞ͕෼͔Βͳ͍ঢ়ଶʹͳ͍ͬͯͨ
    ʣվળνέοτʹ޻਺ݟੵ͕ͳ͘ɺ։ൃن໛͕෼͔Βͳ͍
    ͜ΕΒ͕ɺվળνέοτ͕ݮΒͳ͍ݪҼͱԾఆ

    View Slide

  26. ʮվળʯͷݟ͑ΔԽ
    STEP 1
    ʮվળʯͷঢ়گ෼ੳ
    STEP 2
    ɹ΍ͬͨ͜ͱ
    STEP 3

    View Slide

  27. ʣεςʔλεͷ࠶੔ཧ
    ɹɾεςʔλε͕ɺ׬ྃ4501ʹͳ͍ͬͯͳ͍աڈνέοτΛɺ·ͱΊͯ֬ೝ੔ཧ
    ɹɾνέοτ࡞੒ͷ೥౓ݱࡏͷεςʔλε͕෼͔Γ΍͘͢ͳΔΑ͏ʹɺվળνέοτҰཡͷදࣔΛௐ੔
    ɹɾࢭ·͍ͬͯΔνέοτʹରͯ͠ɺ։ൃ୲౰ऀ΁ͷνέοτ੔ཧΛΞφ΢ϯεश׳Խ
    ʣ༏ઌ౓෇͚
    ɹɾཁ๬΍ΞΠσΟΞ͸͢΂ͯνέοτԽͤͣɺඞͣ։ൃσΟϨΫλʔͷ໨Λ௨͔ͯ͠Βɺ

    ɹʮվળʯͰରԠՄೳͳ΋ͷ͚ͩΛνέοτԽɺͦΕҎ֎͸ผͷ࿮ʹҠಈ͢ΔΑ͏ʹมߋ
    ɹɾ:BQQMJͰఏڙ͍ͯ͠Δ֤छػೳΛɺΞϓϦ੍࡞Ͱͷར༻ස౓Ͱ෼ྨ͠ɺվળͷzӨڹ౓zΛઃఆ
    ʣ޻਺ݟੵʹΑΔ۠෼͚ɾʮվળʯ͔Β֎͢൑அ
    ɹɾ:BQQEBUF%BZͰରԠݕ౼ɹɹɹˠখن໛ɹɹɹɹɹɹʢʙϲ݄Ҏ಺ʣ
    ɹɾϠϓϦΫͰରԠݕ౼ɹɹɹɹɹɹɹˠখن໛ʙதن໛·Ͱʢʙ൒೥Ҏ಺ʣ
    ɹɾ-,;/ʢϥʔδվળʣɹɹɹɹɹɹˠେن໛Ҏ্ɹɹɹɹʢ൒೥Ҏ্ʙʣ˞ʮվળʯ͔Β֎͢
    STEP3ɹ΍ͬͨ͜ͱ

    View Slide

  28. STEP3ɹ΍ͬͨ͜ͱ - JIRAϘʔυʢ Before ʣ

    View Slide

  29. STEP3ɹ΍ͬͨ͜ͱ - JIRAϘʔυʢ After ʣ

    View Slide

  30. ʻ΍ͬͨ͜ͱʼ
    ʣεςʔλεΛ࠶੔ཧ
    ʣ༏ઌ౓෇͚
    ʣ޻਺ݟੵʹΑΔ۠෼͚ɾʮվળʯ͔Β֎͢൑அ
    νέοτͷఆظతͳϝϯςφϯεͱج४෇͚

    View Slide

  31. มΘͬͨ͜ͱ

    View Slide

  32. ɾվળνέοτͷফԽ཰্͕͕ͬͨʂ
    ɾνέοτ͕੔ཧ͞Εͯɺணखͷ༏ઌॱҐ͕෼͔Γ΍͘͢ͳͬͨʂ
    ɾ։ൃ෦಺͔Βʮ΋ͬͱվળʹऔΓ૊Έ͍ͨʂʯͱ੠্͕͕ͬͨ

    View Slide

  33. ·ͱΊ

    View Slide

  34. ·ͱΊ
    ɾʮվળʯ͸ແ͘ͳΒͳ͍ɻαʔϏε͕֦ு͍ͯ͘͠ͱڞʹ૿͑ଓ͚Δ
    ɾʮվળʯΛ΍Δ΍Βͳ͍ͷ൑அ͸৳͹ͯ͠΋͍͍͕ɺ

    ɹఆظతʹݟ௚͠Λߦ͍ɺ
    ɹͦͷλΠϛϯάͰ࠷৽ͷ൑அʹΞοϓσʔτ͍ͯͬͨ͠ํ͕͍͍
    ɾཁ๬ΛཷΊࠐΈ͗͢Δͱɺ༏ઌ౓͕෼͔Βͳ͘ͳΔͷͰɺ

    ɹ޻਺΍Өڹ౓ΛؑΈͯ൑அͰ͖Δج४Λ࡞Γɺɹ
    ɹৗʹࠓɺԿΛ΍Δ΂͖͔ʁΛݟ͑ΔԽΛ͢Δ
    ɾࣾ಺΁ͷ੠͔͚ɺϑϩʔ੔උ͸େ੾

    View Slide

  35. Ҏ্ʹͳΓ·͢ɻ
    ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

    View Slide