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

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

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

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

    まとめ
  4. ࣗݾ঺հɾܦྺ

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

    
 վળҊ݅ͷ࢓༷ݕ౼΍ࣾ಺։ൃϑϩʔͷ੔උͳͲΛ୲͏ɻ גࣜձࣾϠϓϦ ϓϩμΫτ։ൃຊ෦։ൃاը෦։ൃσΟϨΫλʔ ஥ಓѪඒ Megumi Nakamichi ࢲͷؾ࣋ͪΛ୅หͯ͠ ͨ·ʹग़ͯ͘Δࣗ࡞ΩϟϥͰ͢
  6. ࣗݾ঺հɾܦྺɹ-ɹݱࡏͷॴଐ෦ॺͷ঺հ 1E.ۀ຿ͳͲͷ੡඼։ൃɾվળͷ΄͔ɺ ։ൃάϧʔϓ಺ͷϑϩʔݟ௚͠΍࢓૊Έͮ͘ΓͳͲΛ୲౰ 
 ʢ˞࣍ϖʔδͰৄࡉͷઆ໌͠·͢ʣ ։ൃʹ͓͚Δ্ྲྀ޻ఔΛ୲͏ɻ ։ൃσΟϨΫλʔͷଞʹɺ69σβΠφʔςΫχΧϧϥΠλʔ͕ ॴଐ͍ͯ͠Δ෦ॺ ։ൃσΟϨΫλʔ ։ൃاը෦

  7. ࣗݾ঺հɾܦྺɹ-ɹ։ൃσΟϨΫλʔͷ࢓ࣄ ͳͲ ˒୲౰͢ΔϓϩδΣΫτ΍վળͷσΟϨΫγϣϯɾࣾ಺ௐ੔ 
 ɹˠଞ෦ॺͱ࿈ܞͯ͠ɺ՝୊ɾχʔζͷ෼ੳ΍੔ཧɺ࢓༷ͷௐ੔Λߦ͏ ɹˠϦϦʔεޙͷϓϨεϦϦʔεɺࣾ֎޿ใ༻ͷOPUFهࣄ࡞੒ʢIUUQTOFXTZBQQMJDPKQNNGBʣ ˒։ൃʹ·ͭΘΔ࢓༷ॻͷ࡞੒ 
 ɹˠʮ:BQQMJʯ͸ϓϥοτϑΥʔϜͷͨΊɺडୗ։ൃͱ͸ҟͳΓɺ൚༻ੑ͕ߴ͍࡞Γʹͳ͍ͬͯΔɻ 


    ɹɹɹͦͷͨΊɺ࢓༷΋ෳࡶԽ͠΍͘͢࢓༷ॻ·ͱΊ͕ॏཁʹͳ͍ͬͯΔ ɾ੡඼Ξοϓσʔτͷࣾ಺ڞ༗ ɾܰඍͳෆ۩߹ɾվળରԠͷ࢓૊ΈԽ΍ϑϩʔվળ ɾ։ൃاը෦͕اը͢Δࣾ಺ΠϕϯτͷӡӦ
  8. ࣮͸ࢲɺͭͷ෦ॺΛ݉೚ͯ͠·͢ɻ ࣗݾ঺հɾܦྺ ɹओ຿ ɹɾϓϩμΫτ։ൃຊ෦։ൃاը෦։ൃσΟϨΫλʔ ɹ݉຿ ɹɾΧελϚʔαΫηεຊ෦ΞϓϦσβΠϯ෦ΞϓϦσβΠφʔ ɹɾϐʔϓϧˍΧϧνϟʔຊ෦ϦϨʔγϣϯγοϓɾϚωδϝϯτࣨ 
 ɹɹʮ౔Ҫળ੖ͷ࿨৯ʯνʔϜӡ༻୲౰ʢ˞:BQQMJͰ࡞੒ɾӡ༻͍ͯ͠ΔࣗࣾΞϓϦʣ

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

  10. ɾΞϓϦσβΠφʔ͸ʮ:BQQMJʯΛ࢖ͬͯΞϓϦΛ࡞੒͢Δ෦ॺɻ ɹσβΠϯίϯςϯπೖߘΫϥΠΞϯτ΁ͷϨΫνϟʔӡ༻୅ߦͳͲ ɹΞϓϦ੍࡞ʙΧελϚʔαΫηε·ͰɺଟذʹΘͨΔ ɾΞϓϦσβΠφʔ͸ɺࣗࣾ੡඼Λ࢖ͬͯ೔ʑΞϓϦ੍࡞Λߦͳ͍ͬͯΔͷͰɺ 
 ɹཁ๬΍ෆ۩߹ʹؾ͖ͮ΍͍͢ ɾࠓ·Ͱ͸վળͷཁ๬Λग़͢ଆ͕ͩͬͨɺ ʮ:BQQMJΛ࢖͏ଆͷܦݧΛ։ൃʹੜ͔͍ͨ͠ʂʯͱࢥ͍ɺ ɹ౰࣌ͷ্௕ʹ૬ஊͯ͠ɺ։ൃاը෦΁ࣾ಺Ҡಈͨ͠ ɾ։ൃຊ෦ͱଞ෦ॺͱͷڮ౉͠Λ͍ͨͨ͠Ίɺࠓ΋݉຿Λଓ͚͍ͯΔ

    ࣗݾ঺հɾܦྺ - ։ൃσΟϨΫλʔʹͳͬͨഎܠ
  11. TODAY TOPIC :BQQMJͷʮվળʯ͸ ͲͷΑ͏ʹͯ͠ਐԽΛาΜ͔ͩ

  12. :BQQMJͷ։ൃʹ͍ͭͯ

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

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

  15. ʮYappliʯͷ։ൃʹ͍ͭͯ - ʮվળʯͷྺ࢙ ೥ʑɺػೳ΋ΫϥΠΞϯτ΋૿͍͑ͯ͘தͰɺࣾ಺ཁ๬΋૿͖͑ͯͨʂ ʮվળʯ͕ࣾ಺Ͱఆண͠ɺશࣾతʹ΋େ੾ͳจԽͷͭʹͳͬͨʂ ೥ ɾվળʹूதతʹऔΓ૊Ή೔ʮ:BQQEBUF%BZʢϠοϓσʔτσʔʣʯ͕Ͱ͖ͨʂ ೥ ɾվળʹؔ͢ΔΞΠσΟΞΛશࣾʹ޲͚ͯϓϨθϯ͢ΔΠϕϯτʮϠϓϦΫʯ͕Ͱ͖ͨʂ ೥

    ɾࠓ೥ͷ݄ʹʮ:BQQEBUF%BZʯ͸ճ໨Λܴ͑ͨʂ ɾʮϠϓϦΫʯ΋શࣾһͷˋҎ্͕ࢀՃ͢ΔΠϕϯτʹͳͬͨʂ
  16. ʮYappliʯͷ։ൃʹ͍ͭͯ - ʮվળʯͷྺ࢙ ʮվળʯʹ·ͭΘΔࣾ಺Πϕϯτ͸ɺͦΕͧΕOPUFʹهࣄ͕͋Γ·͢ʂ ϠϓϦΫ IUUQTUJNFTZBQQMJDPKQOOEGBD :BQQEBUF%BZʢϠοϓσʔτσʔʣ IUUQTUJNFTZBQQMJDPKQOOEEGE

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

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

    ऴΘΔؾ͕͠ͳ͍ʜ
  19. ೥ͷະணखνέοτൃ۷Λ͖͔͚ͬʹ վળνέοτͷݱঢ়ௐࠪʹ౿Έ੾Δ

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

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

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

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

  24. ʣணख్தʹԿΒ͔ͷཧ༝Ͱࢭ·ͬͯ͠·ͬͨνέοτ͕ਐߦ͍ͯ͠ͳ͍ ɹɾҰ൪ݹ͍νέοτͰɺ೥࡞੒ͷ΋ͷ΋͋ͬͨɻ ɹɾ04ؔ܎ͷνέοτ͸ɺ࠷৽04Ͱ͸ղফ͍ͯ͠Δ͕ɺνέοτ͸ະରԠͷ··࢒Γଓ͚ͯ͠·͍ͬͯͨɻ ʣվળر๬͕ଟ͋͘ΓɺʮԿΛ༏ઌͯ͠ணखͨ͠Β͍͍ͷ͔ʁʯ 
 ɹΤϯδχΞ͕෼͔Βͳ͍ঢ়ଶʹͳ͍ͬͯͨ ɹɾ೥͝Ζ·Ͱɺࣾ಺ͷվળཁ๬Λ͢΂ͯվળνέοτԽ͍ͯͨͨ͠Ίɺ ɹɹ೥ʑɺ࢒ཹνέοτ͕૿͑ଓ͚ͯ͠·ͬͨɻ ʣվળνέοτʹ޻਺ݟੵ͕ͳ͘ɺ։ൃن໛͕෼͔Βͳ͍ ɹɾ޻਺ن໛Λߟྀͤͣɺ͍ܰνέοτʙॏ͍νέοτ͕͢΂ͯಉ͡վળϘʔυ಺ʹ֨ೲ͞Ε͍ͯͨɻ

    STEP2ɹʮվળʯͷঢ়گ෼ੳ
  25. ʻঢ়گ෼ੳʼ ʣணख్தʹԿΒ͔ͷཧ༝Ͱࢭ·ͬͯ͠·ͬͨνέοτ͕ਐߦ͍ͯ͠ͳ͍ ʣվળر๬͕ଟ͋͘ΓɺԿΛ༏ઌͯ͠ணखͨ͠Β͍͍ͷ͔ʁ 
 ɹΤϯδχΞ͕෼͔Βͳ͍ঢ়ଶʹͳ͍ͬͯͨ ʣվળνέοτʹ޻਺ݟੵ͕ͳ͘ɺ։ൃن໛͕෼͔Βͳ͍ ͜ΕΒ͕ɺվળνέοτ͕ݮΒͳ͍ݪҼͱԾఆ

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

  27. ʣεςʔλεͷ࠶੔ཧ ɹɾεςʔλε͕ɺ׬ྃ4501ʹͳ͍ͬͯͳ͍աڈνέοτΛɺ·ͱΊͯ֬ೝ੔ཧ ɹɾνέοτ࡞੒ͷ೥౓ݱࡏͷεςʔλε͕෼͔Γ΍͘͢ͳΔΑ͏ʹɺվળνέοτҰཡͷදࣔΛௐ੔ ɹɾࢭ·͍ͬͯΔνέοτʹରͯ͠ɺ։ൃ୲౰ऀ΁ͷνέοτ੔ཧΛΞφ΢ϯεश׳Խ ʣ༏ઌ౓෇͚ ɹɾཁ๬΍ΞΠσΟΞ͸͢΂ͯνέοτԽͤͣɺඞͣ։ൃσΟϨΫλʔͷ໨Λ௨͔ͯ͠Βɺ 
 ɹʮվળʯͰରԠՄೳͳ΋ͷ͚ͩΛνέοτԽɺͦΕҎ֎͸ผͷ࿮ʹҠಈ͢ΔΑ͏ʹมߋ ɹɾ:BQQMJͰఏڙ͍ͯ͠Δ֤छػೳΛɺΞϓϦ੍࡞Ͱͷར༻ස౓Ͱ෼ྨ͠ɺվળͷzӨڹ౓zΛઃఆ ʣ޻਺ݟੵʹΑΔ۠෼͚ɾʮվળʯ͔Β֎͢൑அ

    ɹɾ:BQQEBUF%BZͰରԠݕ౼ɹɹɹˠখن໛ɹɹɹɹɹɹʢʙϲ݄Ҏ಺ʣ ɹɾϠϓϦΫͰରԠݕ౼ɹɹɹɹɹɹɹˠখن໛ʙதن໛·Ͱʢʙ൒೥Ҏ಺ʣ ɹɾ-,;/ʢϥʔδվળʣɹɹɹɹɹɹˠେن໛Ҏ্ɹɹɹɹʢ൒೥Ҏ্ʙʣ˞ʮվળʯ͔Β֎͢ STEP3ɹ΍ͬͨ͜ͱ
  28. STEP3ɹ΍ͬͨ͜ͱ - JIRAϘʔυʢ Before ʣ

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

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

  31. มΘͬͨ͜ͱ

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

  33. ·ͱΊ

  34. ·ͱΊ ɾʮվળʯ͸ແ͘ͳΒͳ͍ɻαʔϏε͕֦ு͍ͯ͘͠ͱڞʹ૿͑ଓ͚Δ ɾʮվળʯΛ΍Δ΍Βͳ͍ͷ൑அ͸৳͹ͯ͠΋͍͍͕ɺ 
 ɹఆظతʹݟ௚͠Λߦ͍ɺ ɹͦͷλΠϛϯάͰ࠷৽ͷ൑அʹΞοϓσʔτ͍ͯͬͨ͠ํ͕͍͍ ɾཁ๬ΛཷΊࠐΈ͗͢Δͱɺ༏ઌ౓͕෼͔Βͳ͘ͳΔͷͰɺ 
 ɹ޻਺΍Өڹ౓ΛؑΈͯ൑அͰ͖Δج४Λ࡞Γɺɹ ɹৗʹࠓɺԿΛ΍Δ΂͖͔ʁΛݟ͑ΔԽΛ͢Δ

    ɾࣾ಺΁ͷ੠͔͚ɺϑϩʔ੔උ͸େ੾ 

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