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

開発生産性は上がらない - N Ways to Reduce Development Productivity

uzulla
October 19, 2023

開発生産性は上がらない - N Ways to Reduce Development Productivity

2023/10/19
uzulla

uzulla

October 19, 2023
Tweet

More Decks by uzulla

Other Decks in Technology

Transcript

  1. ։ൃੜ࢈ੑ͸্͕Βͳ͍
    — uzulla(͏ͣΒ)
    — Linkage(ۀ຿ ๦֐ ҕୗ)
    — LinkageͰ͸ϊϕϧςΟ੡࡞ͳͲΛ୲౰͍ͯ͠
    ·͢
    — ϊϕϧςΟ੡࡞ͷ͓࢓ࣄ͓଴͍ͪͯ͠·͢
    — ͳΜͱʂPHPͱ͔΢ΣϒΤϯδχΞͷ͓࢓ࣄ
    ΋Ͱ͖·͢ʂ
    — ͞ΒʹʂPHPҎ֎΋ݴΘΕΕ͹࣮͸Ͱ͖·
    ͢ʂ

    View full-size slide

  2. ॴḨLTͳͷͰ
    — օ͞Μਅʹड͚ͳ͍Ͱ͍ͩ͘͞
    — ࢲ͸Կे೥΋ΨΠνϡʔɾΪϣʔλΫ(ͭ·ΓϑϦʔϥϯε)ͳͷͰɺಛఆ࣌
    ୅ɺձࣾͷ࿩Ͱ͸͋Γ·ͤΜ
    — Ͳ͜ͷ͜ͱ͔Ḩࡧ͢Δͱ͔͸΍ΊΑ͏(ਅإ)
    — ࢲʮੜ࢈ੑ্͕͕Δ࿩͸Ͳ͏ͤͨ͘͞Μ͞Εͦ͏ʯ
    ʮੜ࢈ੑ͕Լ͕ͬͨࣄͰ΋࿩ͦ͏ʯ
    — Ͳ͏ͤࢲ͸ωλ࿮Ͱ͋Δ

    View full-size slide

  3. ෆ׳Ε
    — ݪҼ: Slack͕େن໛Ξϓσ
    — ݁Ռ: ීஈͷ׳Εɺମ͕ઌʹಈ͘ͷ่͕յ
    — ͩΜͩΜͱ׳Ε͍ͯ͘ͱ΋Ͳ͍͕ͬͯ͘ɺ׳ख़౓͕͕͞Δͱੜ࢈ੑ͕Լ͕Δ
    — Ұ౓ܾΊͨ͜ͱΛ͜Ζ͜Ζͱม͑Δͱ͓͡͞Μ͸ͭΒ͍
    — 1ʙ2ׂͷਓ͸ͦΕΛָ͠ΜͰ͍͚Δͷ͕ͩɺָ͍͠ͷ͸͍͍ͱͯ͠ɺੜ࢈ੑ
    ͸Լ͕Δ

    View full-size slide

  4. όʔϯΞ΢τ
    — ݪҼ: ௕ظؒɺΊͬͪΌ࢓ࣄͯ͠ΊͬͪΌόϦϡʔͩͨ͠
    — ݁Ռ: ؤுΓΛ཈͑ͨΒɺௐࢠ͕མͪͬͺͳ͠ʹͳͬͨ
    — ͍ܰ͏ͭͱ͔ͰΑ͋͘Δ͕ɺ
    ΊͬͪΌؤுΓ͗ͯ͢ٳΉͱɺٳΈ͔Βൈ͚ग़͠ʹ͘͘ͳΔ
    — ΊͬͪΌؤுͬͨޙʹɺΊͬͪΌٳΉͱࣾձ෮ؼ͕େม͗͢Δ
    — Ώͬ͘ΓԼ͛Δɾ໭͢
    ͍͖ͳΓΊͬͪΌٳΜͰΞϝϦΧͱ͔ʹߦ͔ͳ͍

    View full-size slide

  5. εʔύʔΰʔϧΩʔύʔ
    — ݪҼ: ࢓༷͕શ෦Ωϟον͞Εɺʮݕ౼͠·͢ʯ࣋ͪؼΓɺ
    ͔͠͠εέδϡʔϧ͸͋Δ
    — ݁Ռ: ແବͳ࢓ֻ඼͕૿͑ΔɺϞνϕ্͕͕Βͳ͍ɺෆ҆ʹͳΔ
    — ͔ͨ͠ͳ͍ࣄ͸͋ΔͷͰ͔ͨ͠ͳ͍ͷ͕ͩɺ
    ͦΕ͕શମڞ༗Ͱ͖ͯͳ͍ͱ͘͢͝ؾ෼͕Լ͕Δ
    — ओʹʮෆ҆ʯ(ධՁͩͬͨΓͳΜͩͬͨΓ)͕໰୊ͳͷͰɺ
    ͦΕΛݮΒ͢ํࡦΛΩνϯͱऔΔඞཁ͕͋Δ

    View full-size slide

  6. ୯ํ޲खॱ૿Ճප
    — ݪҼ: ো֐ͱ͔ɺ͓͜ΒΕͱ͔
    — ݁Ռ: खॱ͕૿͑Δ͕ɺཧ༝ͳ͘ݮΒͤͳ͍
    — ͠Εͬͱ߹ཧతʹݮΒ͢ਓ͕ඞཁ
    — ༨Γॻ͘ͱ͓͜ΒΕΔ

    View full-size slide

  7. E2Eૄ௨ෆྑ
    — ݪҼ: ͋Δूஂͱूஂʹ͓͍ͯަব͠ͳ͕Β͢͢Ίͳ͚Ε͹ͳΒͳ͍ͱ͖ɺ
    ͢΂ͯͷ௨৴͕૭ޱ΍mtgܦ༝ʹͳͬͯRTT͕ܹ྽ʹྼԽ
    — ݁Ռ: ͍͋ͯ͠·͏࣌ؒʹ΄͔ͷ͜ͱΛ΍ΔͷͰɺ͞Βʹ଎౓͕ग़ͳ͍
    — ͱͬͱͱE2EͰ࿩͠߹͑Δ৔͕Ͱ͖ΔͱҰؾʹਐΉ͜ͱ͕ଟ͍ɺ
    ͕ɺੈͷத؆୯ʹ͸ͦ͏ͳΒͳ͍
    — ޻ఔදΛ͏·͘Ҿ͖௚ͤΔϓϩ(≒૬खΛ٧ΊΒΕΔϓϩ)͕͍Δͱ
    େ෼վળ͠΍͍͢
    — mtgͳͲͷલʹʮܾΊΔ͚ͩʯ·Ͱ͍࣋ͬͯ͘ॴʹ࿑ྗΛ࢖ͬͯΈΔ
    mtgͷਓ਺ΛݮΒ͠ɺʮ఻͑Δ͚ͩʯʹ͍࣋ͬͯ͘ॴʹ࿑ྗΛ࢖ͬͯΈΔ

    View full-size slide

  8. ϕετࢦ޲঱ީ܈
    — ݪҼ: ͪΌΜͱ͠Α͏ʂͱٕज़બఆ͔Βؤு͕ͬͨɺ
    ஗Ԇ΍૝ఆ֎ͷ࢓༷มߋͰ஗Ԇ
    — ݁Ռ: ͓͔͍͠ɺ࣌ؒ͸ͪΌΜͱ͋ͬͨ͸ͣͳͷʹ…ഊઓؾ෼ͩ…
    — ϕλʔͰ͍͍͔Βͬ͞͞ͱ։ൃ͠Α͏
    — ΠϚΠνͳઃܭʹରͯ͠ਖ਼࿦ύϯν͕དྷͯʮͳΜͰ͜͏ͳͬͯͳ͍ͷʁʯͬ
    ͯݴΘΕΔ͚Ͳɺૉ௚ʹࣗ෼ͷೳྗͷෆ଍ΛೝΊΑ͏
    — ͍ͬͯ͏͔ɺͪΌΜͱؤுͬͯߟ͑ͯ΋ɺ
    ΠϚΠνʹͳΔͱ͖͸ͳΔΜ͡Όʂʂʂ

    View full-size slide

  9. ൚༻׬ᘳਖ਼ٛਖ਼࿦ओٛ
    — ݪҼ: ʮPHP͸μα͍͔Βgoʹ͠Α͏ʯʮ֦ுੑΛߟ͑ͯ࡞Ζ͏ʯ
    — ݁Ռ: ʮผʹPHPͰΑ͔ͬͨͷͰ͸ʁʯʮYAGNIͰΑ͔ͬͨͷͰ͸ʁʯ
    — ਖ਼࿦΍ྲྀߦΓͰҰൠతʹʮਖ਼͍͠ʯબ୒Λͨͭ͠΋Γ͕ɺ
    ࣮ࡍͷ໰୊ʹ͸ϑΟοτ͍ͯ͠ͳ͍έʔε
    ྨࣅ: ϚΠΫϩαʔϏε঱ީ܈ɺPkeyʹUUIDཞ༻
    — …ͱ͍ͬͯࢥߟఀࢭ͢Δͱɺ΍ͬͺΓμϝͳͷͰ೉͍͠Ͱ͢Ͷ
    — ʮӡͰ͸ʁʯ

    View full-size slide

  10. ຫੑϝσΟοΫප
    — ݪҼ: ʮৄ͍͠ਓʯʹͳΓɺϔϧϓɾׂΓࠐΈ͕υϯυϯ૿͑Δ
    — ݁Ռ: όϦϡʔΛग़͕࣌ؒ͢࿈ଓͯ͠ͱΕͳ͍
    — ࣗಈతʹͳΔɺͳΜͰ΋࣭໰͞ΕΔ͠ɺ΋͸΍ԿͰ΋ࣗ෼͕΍ͬͨํ͕ૣ͍
    ʹͳͬͯ͠·͏
    — ਓΛ;΍͢ͱѱԽ͢Δ
    — ։͖௚ͬͯɺʮϝσΟοΫʹͳΔɺόϦϡʔ͸Զ͕ग़͞ͳͯ͘ྑ͍ʯͱ·Ͱ
    ͢Δͷ΋ྑ͍

    View full-size slide

  11. ଟ๩ࡨޡ঱ީ܈(͋Δ͍͸໌೔ຊؾग़͢঱ީ܈)
    — ݪҼ: ׂΓࠐΈ΍ɺա৴΍ɺ͍Ζ͍Ζ͋Δ
    — ݁Ռ: (༧૝ΑΓ)όϦϡʔΛग़͕࣌ؒͭͣ͘͢ɺ༧ఆΑΓ΋ਐḿ͕Ͱͳ͍
    — ਓؒɺूத͸2ʙ3hour͘Β͍͕ݶ౓ɺಛʹϚϥιϯݱ৔ͳΒ
    — 2ʙ3hour/dayఔ౓ͷूதͰͪΌΜͱ౗͖͠Εͳ͍ͱόʔϯΞ΢τ͕ͪ͠
    — (ͦΕҎ্͕ग़དྷΔਓΛͦΖ͑Ε͹Α͍ɺͱ͍͏ൃ૝͸ڊਓ܉঱ީ܈)
    — ϖΞɾϞϒ͢Δͷ΋ྑ͍͔΋
    (ͳͥͳΒڧ੍ྗ͕ൃش͞ΕΔͷͰɺ͔͠͠ർ࿑ʹ஫ҙ)
    — ࣗ෼͕ʮҰ೔Ͱ҆ఆతʹՔಇͰ͖Δ࣌ؒɾྔʯΛ୳Γɺ૬ޓʹଚॏ͢Δ

    View full-size slide

  12. ෆἧ͍खॱɾπʔϧ঱
    — ݪҼ: ͍͢͝ਓ͕͍͢͝πʔϧɾखॱΛؾ·͙ΕʹೖΕΔ
    — ݁Ռ: ͍͢͝πʔϧΛ࢖͑ͳ͍(Θͳ͍)ਓ͕଍ΛҾͬுΔ
    — ͪΌΜͱ଍ฒΈΛͦΖ͑ͳ͍ͱɺ݁ہ྆ํʹෛ୲͕͘Δɻ
    ϋΠςΫ(ʁ)͸ܭըతʹ
    — ϝσΟοΫɾฌ᜾ɾOpsɾڭҭ͸ॏཁ
    — ݪҼ͕όϦϡʔΛग़ͤΔਓͰ΋͋Δࣄ͕ଟ͘ɺ͍ͭͯߦ͚ͳ͍ਓ͕୤མ͢Δ
    — ʮԕྀແ࣭͘໰ͯ͠ྑ͍ਓʯΛͪΌΜͱઃఆͨ͠ํ͕ྑ͍

    View full-size slide

  13. DDoS
    — ݪҼ: Mention͕ଟ͍(ྫ:άϧʔϓMention)
    — ݁Ռ: શһͷ࣌ؒΛগͮͭ͠ୣ͏ɺແࢹ͕ԣߦ͠͸͡ΊΔ
    — ϚδͰGroup mention΍Ίͨ΄͏͕Α͘ͳ͍͔ʁ
    — શһΞϥʔτ͸ଚ͍͕ɺ͓ݟ߹͍ɾৡΓ߹͍Ͱर͍ͦ͜ͶΔ͜ͱ͕ଟ͍
    — ϝσΟοΫ͕͍Δͱྑ͍ɺͦͯ͠ϝσΟοΫΛଚॏ͢Δ͜ͱ
    — ϧʔλʔͱͳΔਓΛ૿΍͢͜ͱͰղܾ͢Δ৔߹͕͋Δ

    View full-size slide

  14. ӊ߹ͷऺҰᎋ੎
    — ݪҼ: େྔͷਓһΛϑϥοτʹ(ಛʹ࡞ۀऀ)౤ೖ͢Δ
    — ݁Ռ: ࢮ͵
    — ܉ୂͱ͔ͷຊΛಡΉͱྑ͍ɺ൴Β͸໋͕͚ͳͷͰษڧʹͳΔ
    — ൝ɺ෼ୂɺখୂɺதୂɺେୂɺ࿈ୂɺཱྀஂɺࢣஂͳͲ͋Δ
    — ͳΜΒ͔ͷτοϓμ΢ϯɾMutex(ྫ:શମmtg)ɾ།Ұਆɾݸਓؒઓ૪͕͋Δ
    ͱ͞ΒʹѱԽ͢Δ

    View full-size slide

  15. ଠ͘୹͘ݽಠࢮ
    — ݪҼ: Ұਓʹશ෦೚͞Ε͍ͯΔ
    — ݁Ռ: ҰਓͰ΍Δͱ΋ͷ͍͢͝εϐʔυ͕ੜ·ΕΔ͕ɺ
    Ϟνϕʔγϣϯ͕Լ͕ͬͨͱ͖ʹࢮ͵
    — ͔ͱ͍ͬͯɺਓΛೖΕΔͱ΋ͷ͍͢͝εϐʔυΛϒϩοΫ͢Δ৔߹΋
    — ͍͢͝εϐʔυͰ΍Δ͜ͱʹରͯ͠ΠϯηϯςΟϒ͕ඞཁͩͱࢥ͏
    — (ܦඅਫ਼ࢉͱ͔ͷϖʔύʔϫʔΫͱ͔͕͜ΕʹΑ͘౰ͯ͸·Δw)
    — ͤͬͭ͘ɾ๙ΊΔਓ͕͍Δͱղܾ͢Δ৔߹͕͋Δ

    View full-size slide

  16. ॏཁͳ͜ͱ͕mtgͰਓ஌Εܾͣ·Δʔθ
    — ݪҼ: mtgͰॏཁͳ͜ͱ͕͖·ͬͨޙɺެ͕ࣔͳ͍ɺ͋Δ͍͸ࡶ
    — ݁Ռ: ਓ͕ͼͬ͘Γ͢Δɺͦͯ͠mtgͨ͠ଆ͸஌ΒΕͯͳ͍ࣄʹͼͬ͘Γ͢
    Δ
    — ͪΌΜͱͨ͠γΣΞΛ͢Δɺॏཁ౓ΛͪΌΜͱߟ͑ɺ
    ΩʔϚϯʹ͸γΣΞ͢ΔmtgΛ૊Ή
    — ͭ·Γɺ͜Ε͸ʮͨ͹͜෦԰ʯͷ࠶དྷͳͷ͕ͩɺ
    Ҋ֎ͦ͏ߟ͑ΒΕ͍ͯͳ͍ͷ͕ා͍
    — ݹདྷɺ͜͏͍͏ͷ͸ࡶஊ(Ͱͷδϟϒ)ͰΧόʔ͞Ε͖͕ͯͨɺ
    ϦϞʔτ࣌୅͸ࡶஊ͕ݮͬͨ

    View full-size slide

  17. ·ͱΊ
    — όϦϡʔΛग़͢ʹ͸ϦϦʔε͕ඞཁ
    — ϦϦʔεʹ͸ͪΌΜͱͨ͠੒ՌɾίʔυΛॻ͘͜ͱ͕ඞཁ
    — ద੾ʹ֬อ͞Εͨ࣌ؒ΍৘ใ΍ϒϩοΧʔͷഉআ͕ඞཁ
    — ʮࠓͷʯࣗ෼΍ಉ྅͕ແཧͳ͘ग़ͤΔੜ࢈ੑΛ਍Δ
    — ॻ੶ʮαϘλʔδϡɾϚχϡΞϧʯͷٯΛͤΑ(ʁʁ)
    — ࣗ෼͕৸͍ͯͯ΋ੜ࢈͞ΕΔ࣌୅͕଴ͨΕΔ

    View full-size slide