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

[pixiv summer boot camp] pixivFACTORY

alpaca-tc
September 24, 2015

[pixiv summer boot camp] pixivFACTORY

pixivで開催した大学生向けインターンで、学生向け講義として話しました。
自分の作ったpixivFACTORYについてと、開発を通じて大事だったことを簡単に盛り込みました。

alpaca-tc

September 24, 2015
Tweet

More Decks by alpaca-tc

Other Decks in Technology

Transcript

  1. ɾTwitter @alpaca_taichou, Github: @alpaca-tc

    ɾझຯɿ஄ؙཱྀɾࢄาɾ͓ञɾvim

    ɾݴޠ VimScript / Ruby / PHP / JavaScript

    ɾϒϥοΫاۀେ޷͖
    ࣗݾ঺հ
    ͍ͬ͘Μ ʢੴҪ ߒ೭ʣ

    View full-size slide

  2. ࣗݾ঺հ
    ͍ͬ͘Μ ʢੴҪ ߒ೭ʣ
    ৽نࣄۀ։ൃνʔϜΤϯδχΞɹBOOTH / pixivFACTORY
    ɾTwitter @alpaca_taichou, Github: @alpaca-tc

    ɾझຯɿ஄ؙཱྀɾࢄาɾ͓ञɾvim

    ɾݴޠ VimScript / Ruby / PHP / JavaScript

    ɾϒϥοΫاۀେ޷͖

    View full-size slide

  3. ɾpixivFACTORYͱ͸ʁ

    ɾ։ൃͰେࣄͩͬͨ͜ͱ

    ίʔυΛॻ͔ͳ͍

    ϢʔβʔΛ஌Δ

    ʮΤϯδχΞʯͷ࢓ࣄΛ͢Δ
    ࿩͢͜ͱ
    ɾٕज़తͳpixivFACTORYͷ࿩
    ࿩͞ͳ͍͜ͱ

    View full-size slide

  4. pixivFACTORYͱ͸ʁ

    View full-size slide

  5. ɾࠓ೥2݄ʹϦϦʔεͨ͠αʔϏε

    ɾ ΠϥετҰຕͰάοζ͕࡞ΕΔʂ

    ɾ ॳظඅ༻ɾࡏݿϦεΫͳ͠
    pixivFACTORYͱ͸ʁ

    View full-size slide

  6. pixivFACTORYͱ͸ʁ
    ղܾ͔ͨͬͨ͠໰୊͸ͳʹ͔ʁ
    ͱ͋Δࣄ࣮…
    άοζΛͭ͘Δͷ͸೉͍͠

    View full-size slide

  7. ɾෳࡶͳϑΝΠϧܗࣜ

    ɾ໎࿏ͷΑ͏ͳUI

    ɾి࿩ɾFAXɾϝʔϧͳͲɺ

    ɹ࣌୅஗Εͳ࿈བྷखஈ
    pixivFACTORYͱ͸ʁ
    ղܾ͔ͨͬͨ͠໰୊͸ͳʹ͔ʁ
    ɾϩοτ਺ͷน

    ɾͱʹ͔͓͕͔͔ۚ͘Δ
    http://
    www.wave-
    inc.co.jp/data/

    View full-size slide

  8. pixivFACTORYͱ͸ʁ
    ղܾ͔ͨͬͨ͠໰୊͸ͳʹ͔ʁ
    →ը૾ҰຕͰOK →ॳظඅ༻ແྉɾΦϯσϚϯυ

    →ແྉͰൢചՄೳ
    http://
    www.wave-
    inc.co.jp/data/

    View full-size slide

  9. pixivFACTORYͱ͸ʁ
    ղܾ͔ͨͬͨ͠໰୊͸ͳʹ͔ʁ
    DEMO
    ͜Ε͔ΒΞΠςϜΛ࡞ͬͯΈ·͢

    View full-size slide

  10. pixivFACTORYͱ͸ʁ
    ϦϦʔε࣌ͷϢʔβʔ͞Μͷ൓Ԡ

    View full-size slide

  11. pixivFACTORYͱ͸ʁ
    ϦϦʔε࣌ͷϢʔβʔ͞Μͷ൓Ԡ
    ͔ͳΓ޷ධʂʂʂ

    View full-size slide

  12. ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
    ʮίʔυΛॻ͔ͳ͍ʯ
    ϢʔβʔΛ஌Δ
    ʮΤϯδχΞʯͷ࢓ࣄΛ͠Α͏

    View full-size slide

  13. ʮίʔυΛॻ͔ͳ͍ʯ
    ϢʔβʔΛ஌Δ
    ʮΤϯδχΞʯͷ࢓ࣄΛ͠Α͏
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  14. “You ain’t gonna need it”
    YAGNI
    ίʔυΛ͢͹΍࣮͘૷͢ΔͨΊʹ࠷΋ྑ͍ํ๏͸ɺ

    ͋·ΓίʔυΛॻ͔ͳ͍͜ͱͰ͋Δɻ
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
    ʮίʔυΛॻ͔ͳ͍ʯ
    ɾͦͷ͏ͪඞཁʹͳΔ͔΋͠Εͳ͍ػೳ͸͍Βͳ͍

    ɾίʔυΛݮΒ͢͜ͱʹ࣌ؒΛ͔͚Δ

    ɾແବͳ࣌ؒΛ࢖Θͳ͍ɻ͍ͭͰ΋յ͠΍͍͢ɻ

    ɾকདྷඞཁͳ͜ͱ͸ɺඞཁʹͳͬͨ࣌ʹ΍Δ

    View full-size slide

  15. ʮίʔυΛॻ͔ͳ͍ʯ
    ਓੜ͸ੵΈॏͶͩͱ୭Ͱ΋ࢥ͍ͬͯΔΑ͏ͩɻ΅͘͸ٯʹɺੵΈ΁Β͢΂͖
    ͩͱࢥ͏ɻࡒ࢈΋஌ࣝ΋ɺ஝͑Ε͹஝͑Δ΄Ͳɺ͔͑ͬͯਓؒ͸ࣗ༝͞Λ
    ࣦͬͯ͠·͏ɻ
    ूத͢ΔͨΊͷݪଇ͸ɺੜ࢈తͰͳ͘ͳͬͨաڈΛࣺͯΔ͜ͱͰ͋Δ
    ͋ͳͨͷਓੜͷ࣌ؒ͸وॏͰ͋Δɻ͋ͳͨͷೳྗ͸୯ʹίʔυΛॻͨ͘ΊͰ
    ͸ͳ͘ɺݱ࣮ͷ໰୊ʹूத͢ΔͨΊʹ࢖͏΂͖Ͱ͋Δ
    YAGNI
    υϥοΨʔ
    Ԭຊଠ࿠
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  16. ʮίʔυΛॻ͔ͳ͍ʯ
    ͋ͬͯ΋Α͍ػೳ

    ࠓͳͯ͘͸ͳΒͳ͍ػೳ
    Έͳ͞Μͷوॏͳ10೔ؒ


    YAGNIΛҙࣝͯ͠ίʔυΛॻ͜͏
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  17. ʮίʔυΛॻ͔͘ͳ͍ʯ
    ϢʔβʔΛ஌Δ
    ʮΤϯδχΞʯͷ࢓ࣄΛ͠Α͏
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  18. ϢʔβʔΛ஌Δ
    ɾʢଟ͘ͷ৔߹ʣސ٬͸਎ۙʹ͍Δ

    ɾఏڙ͍ͯ͠ΔՁ஋͕ਖ਼͍͔͠ɾސ٬Λ஌Δ

    ɾΠϯλϏϡʔͳΓɺࡶஊͳΓɺ༡͹ͤͯΈΔͳΓ

    ɹɹɾ͍ͭ࢖͏ʁࣅͨΑ͏ͳαʔϏε͸ʁͳΜͰΞϨ͸࢖Θͳ͍ͷʁ

    ɾؒҧ͍ʹ͍ͪૣ͘ؾͮͨ͘Ίʹ΍Δ

    ɾ਎ۙͳϢʔβʔΛͭ͘Ζ͏

    ɹɹɾ͍ͭͰ΋ײ৮Λ͔֬ΊΒΕΔɻ

    ɹɹɾѱޱΛݴͬͯ΋Β͑ΔϢʔβʔ͸وॏɻ

    ɹɹɾࣗ෼ͷ஌Βͳ͍஌ࣝ(ΫϦΤΠλʔํ໘)ʹ͍ͭͯฉ͚Δ

    ɾੵۃతʹώτͱҿΈʹߦͬͯαʔϏεΛ࢖ΘͤͯΈΔ
    ֎ʹग़Α͏
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  19. ެԂʹ͸਌ࢠ࿈Εɺ

    ҿΈ԰ʹ͸αϥϦʔϚϯɺ

    ΪϟϥϦʔʹ͸ΫϦΤΠλʔɺ

    ձࣾͷத΍ɺ֗ʹग़Ε͹ɺ͍ΖΜͳਓ͕͍Δɻ

    Έͳ͞Μͷوॏͳ10೔ؒ
    Ұ౓͸Ϣʔβʔʹฉ͍ͯ

    ࣦഊ͠Α͏
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ
    ϢʔβʔΛ஌Δ

    View full-size slide

  20. ʮίʔυΛॻ͔ͳ͍ʯ
    ϢʔβʔΛ஌Δ
    ʮΤϯδχΞʯͷ࢓ࣄΛ͢Δ
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  21. ʮΤϯδχΞʯͷ࢓ࣄΛ͢Δ
    ίʔυΛॻ͘͜ͱ
    ΤϯδχΞͷ࢓ࣄͬͯͳʹʁ
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  22. ʮΤϯδχΞʯͷ࢓ࣄΛ͢Δ
    ίʔυΛॻ͘͜ͱ
    ΤϯδχΞͷ࢓ࣄͬͯͳʹʁ

    Ϣʔβʔͷ໰୊Λղܾ͢ΔͨΊʹ
    WebαʔϏεΛͭ͘Δ͜ͱ
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  23. ʮΤϯδχΞʯͷ࢓ࣄΛ͢Δ
    ๻Βͷ࢓ࣄ͸डୗ։ൃͰ͸ͳ͍ɻ
    ɾϢʔβʔαϙʔτۀ຿

    ɾΫϦΤΠλʔͱͷ΍ΓͱΓ

    ɾҹ࡮ۀऀͱͷ΍ΓͱΓ

    ɾి࿩ରԠ

    ɾWebαΠτΛͭ͘Δͷ͸Ұ෦ɻ
    ձࣾͷ੒Ռ͸ιʔείʔυ΍αʔόʔͰ͸ͳ͘

    Ϣʔβʔͷͱ͜Ζʹ͔͠ͳ͍ɻ
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  24. ʮΤϯδχΞʯͷ࢓ࣄΛ͢Δ
    ɾαʔϏεʹؔ܎͋Δ͜ͱ͸͢΂ͯΤϯδχΞ͕ؔΘͬͯྑ͍

    ɾώτ͸γεςϜΑΓॊೈɻࣗಈԽ͠ͳͯ͘΋Ͱ͖Δ͜ͱ͸͍ͬͺ͍ɻ

    ɾֶͼ͕ૣ͍

    ɾϢʔβʔମݧ͸γεςϜ͚ͩ͡Όͳ͍

    ɹɾྫ͑͹ҹ࡮σʔλ͕ζϨ͍ͯͨΒ࠷ѱ

    ɾͳʹΑΓɺϢʔβʔͱ઀͢Δ͜ͱ͸ࣗ਎ͷϞνϕʔγϣϯʹͳΔ
    ίʔυ͸ॻ͚ͯ

    ౰ͨΓલ
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  25. ʮࢲ͸ίʔυॻ͘ͷ͕࢓ࣄ͔ͩΒɺผʹ͍͍Ͱ͠ΐʯ

    Έͳ͞Μͷوॏͳ10೔ؒ
    ࣗ෼Ͱࣗ෼ͷΤϯδχΞͷ࿮Λ

    ͙͙ͬͱ޿͛ͯཉ͍͠

    ʮΤϯδχΞʯͷ࢓ࣄΛ͢Δ
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱ

    View full-size slide

  26. YAGNIɻʮඞཁͳ΋ͷ͚ͩॻ͘ʯ

    ϢʔβʔΛ஌ΔɻͲΜͲΜֶΜͰࣦഊ͠Α͏

    ΤϯδχΞͷ࢓ࣄͷ࿮Λࣗ෼Ͱ޿͛Α͏
    ։ൃͰେࣄʹ͍ͯ͠Δ͜ͱɺ·ͱΊ

    View full-size slide