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

世界で一人しかできない WordPress コアを写経する話 ― 修行の先に見たものとは?

Kite
September 16, 2017

世界で一人しかできない WordPress コアを写経する話 ― 修行の先に見たものとは?

プログラミングの勉強でコードの写経をしたことがある人はたくさんいるでしょう。しかし、WordPress のコアファイルを一文字ずつ、毎日欠かさず写経している人はおそらく世界で一人しかいない。この修業のような行為から得た知見は、開発者のみにとどまらず、すべての人にとって有益なものであると確信しています。

Kite

September 16, 2017
Tweet

More Decks by Kite

Other Decks in Programming

Transcript

  1. ੈքͰҰਓ͔͠Ͱ͖ͳ͍
    8PSE1SFTTίΞΛࣸܦ͢Δ࿩
    मߦͷઌʹݟͨ΋ͷͱ͸ʁ

    View Slide

  2. v Web & graphic designer
    Programmer
    WordPress core contributor
    Ruby on Rails contributor
    React contributor
    Wocker developer
    Bathe developer
    Frasco developer
    KITERETZ inc. CEO & Founder
    ! kite.koga " ixkaito # ixkaito
    ,JUF

    View Slide

  3. ੈքҰΘ͔Γ΍͍͢
    8PSE1SFTT
    ಋೖͱ
    αΠτ੍࡞ͷ
    ڭՊॻ
    ൃച
    ஶऀɿ҆౻ಞ࢙ɼԬຊलߴɼݹլւਓɼਂ୔޾࣏࿠
    https://www.amazon.co.jp/dp/4774190292/

    View Slide

  4. ܦจΛॻࣸ͢Δ͜ͱɻ·ͨɺॻࣸ͞Εͨܦจɻͦ΋ͦ΋͸ܦయΛ޿
    ΊΔͨΊʹߦΘΕ͕ͨɺͷͪʹ͸ޭಙͷ͋Δߦҝͱ͞Εɺڙཆ΍ف
    ئͷͨΊʹߦΘΕΔΑ͏ʹͳͬͨɻ
    ʰࡾলಊେࣙྛʱΑΓ
    ࣸܦͱ͸
    ʠ
    ʡ

    View Slide

  5. ϓϩάϥϛϯάͷֶशΛ͢Δ͏͑ͰɺࢀߟॻͳͲͷαϯϓϧίʔυ΍νϡʔτ
    ϦΞϧΛ࣮ࡍʹॻ͖ࣸ͠ɺͦͷϓϩάϥϜΛ࣮ߦ͢Δ͜ͱɻ
    ϓϩάϥϛϯάʹ͓͍ͯ
    ࣸܦͱ͸

    View Slide

  6. 8PSE1SFTTίΞͷ1)1ϑΝΠϧͷΈΛɺίϝϯτ υΩϡϝϯτ
    ΋ؚΊͯ
    Ұจࣈͣͭखଧͪ͢Δ͜ͱɻ1)1Ҏ֎ͷϑΝΠϧ͸جຊతʹίϐʔϖʔετɻ
    8PSE1SFTTίΞͷ
    ࣸܦͱ͸

    View Slide

  7. ίΞίϯτϦϏϡʔλʔʹͳΓɺͦΕΛܧଓ͢ΔͨΊɻ·ͨίΞ͕࣮ࡍͳʹΛ
    ͍ͯ͠Δͷ͔Λཧղ͢ΔͨΊɻ͞Βʹɺ(JU)VCʹϓογϡ͢Δ͜ͱͰɺଞਓ
    ʹ΋ݟ͑Δຖ೔ͷϧʔςΟʔϯΛ࡞ΔͨΊɻ
    ࣸܦΛ࢝Ί͖͔͚ͨͬ

    View Slide

  8. 8PSE1SFTTͷίΞʹ͸໿ ΋ͷϑΝΠϧ͕͋Γɺ౸ఈ೔Ͱ͸શ෦Λࣸ
    ܦ͖͠Δ͜ͱ͸Ͱ͖ͳ͍ɻ͞Βʹɺద౰ͳ৔ॴ͔Βࣸܦͯ͠͠·͏ͱɺ
    8PSE1SFTTίΞͷಈ͖Λ֬ೝ͢Δ͜ͱ͕Ͱ͖ͳ͍͏͑ɺ్தͰϛε͕͋ͬͯ
    ΋ؾͮ͘͜ͱ͕Ͱ͖ͳ͍ɻ
    ՝୊

    View Slide

  9. ຖ೔গͣͭ͠ɺ్தͷঢ়ଶͰ΋8PSE1SFTTͷಈ͖Λ֬ೝͰ͖ɺ࣍ͷ೔͸ଓ͖
    ͔ΒͰ͖Δํ๏Ͱࣸܦ͢Δඞཁ͕͋Δɻ
    ํ਑

    View Slide

  10. w ։ൃ؀ڥΛ༻ҙ͢Δ
    w ۭͷσʔλϕʔεΛ࡞੒͢Δ
    w XQDPOpHQIQʹҰ௨ΓͷઃఆΛ͓ͯ͘͠
    ४උ

    View Slide

  11. JOEFYQIQ͔Β࡞ΔɻηϛίϩϯͰ۠੾ΒΕͨจΛ࠷খ୯Ґͱͯࣸ͠ܦ͢Δɻ
    ࠷ॳͷஈ֊Ͱ͸ؔ਺΍ΫϥεͷఆٛΛࣸܦ͠ͳ͍ɻϑΝΠϧ͕ଘࡏ͍ͯ͠ͳ͔ͬ
    ͨΓɺ·ͨ͸ؔ਺΍Ϋϥε͕ఆٛ͞Ε͍ͯͳ͔ͬͨΓ͢Δ͜ͱͰΤϥʔ͕ग़Δ
    ͷͰɺͦͷ࣌఺ͰඞཁͳϑΝΠϧΛ࡞੒ͨ͠Γɺؔ਺΍ΫϥεΛఆٛ͢Δɻ
    ۩ମతͳํ๏

    View Slide

  12. ద౓ͳཻ౓Ͱίϛοτ͠ɺ
    (JU)VCʹϓογϡ͢Δɻ
    (JU)VC

    View Slide

  13. ϦϙδτϦ
    https://github.com/ixkaito/wp-shakyo

    View Slide

  14. Ұ౓໨͸ɺΫϥε಺ͷϝιουΛҰؾʹࣸܦ͍͕ͯͨ͠ɺඞཁϝιουͷΈΛ
    ࣸܦ͍ͯ͘͠ελΠϧʹมߋɻೋ౓໨͸ɺςʔϚͷJOEFYQIQͷಡΈࠐΈ·
    ͰͨͲΓண͍͕ͨ໎ࢠʹͳΓɺ࠷ॳ͔Β΍Γͳ͓ͨ͠ɻ
    ೋ౓ͷ΍Γ௚͠

    View Slide

  15. ࣸܦ͚ͩͰ΋΋ͪΖΜҙຯ͸͋Δ͕ɺͦͷه࿥ͱͯ͠8PSE1SFTTίΞͷؔ਺
    ΍ϝιουͷ࣮ߦॱ൪Λݟ͑ΔΑ͏ʹͨ͠ΒɺԿ͔ͷͨΊʹͳΔ͔΋ͱࢥ͍ɺ
    ίΞͷݟ͑ΔԽϓϩδΣΫτΛ࢝ΊΔɻ
    8PSE1SFTTίΞͷ
    ݟ͑ΔԽ

    View Slide

  16. ίΞͷݟ͑ΔԽW
    3&"%.&ʹͻͨ͢Βॻ͘ɻ
    ॳظͷϩάΛ୧Δͱ֬ೝ͢Δ͜ͱ͕Ͱ͖Δ

    View Slide

  17. ίΞͷݟ͑ΔԽW
    )5.-ͰϋʔυίʔσΟϯάɻ
    https://ixkaito.github.io/
    WordPress-Flow/

    View Slide

  18. ίΞͷݟ͑ΔԽW
    +FLZMMΛར༻ͯ͠ɺ.BSLEPXOͱ4VCMJNF
    5FYUͷεχϖοτͰهड़

    View Slide

  19. ίΞͷݟ͑ΔԽW
    +FLZMMΛར༻ͯ͠ɺϑΝΠϧ΍ؔ਺ͳͲΛΠϯ
    Ϋϧʔυɻ
    https://ixkaito.github.io/wp-
    shakyo/

    View Slide

  20. 8PSE1SFTT΍1)1͸΋ͪΖΜɺͦΕͱ͸௚઀ؔ܎ͳ͍(JU (JU)VC +FLZMM
    ͳͲɺ͞·͟·ͳٕज़ʹڧ͘ͳͬͨɻ
    ࣸܦ͕΋ͨΒͯ͘͠Εͨ΋ͷ
    ͦͷ

    View Slide

  21. 8PSE1SFTT͔ΒܧଓతʹίΞίϯτϦϏϡʔλʔʹͳΕͨɻ
    ࣸܦ͕΋ͨΒͯ͘͠Εͨ΋ͷ
    ͦͷ

    View Slide

  22. 8PSE$BNQʹొஃͨ͠Γɺ࣮ߦҕһ௕ʹ΋ͳΓ·ͨ͠ɻ
    ࣸܦ͕΋ͨΒͯ͘͠Εͨ΋ͷ
    ͦͷ

    View Slide

  23. ฐ͔ࣾΒ௚઀ӦۀΛ͢Δ͜ͱ͕Ұ੾ͳ͘ɺ࢓ࣄͷґཔ͕૿͑·ͨ͠ɻ
    ࣸܦ͕΋ͨΒͯ͘͠Εͨ΋ͷ
    ͦͷ

    View Slide

  24. ͜ΜͳϓϧϦΫ͕Ϛʔδ͞
    Ε·ͨ͠ɻ
    ࣸܦ͕΋ͨΒͯ͘͠Εͨ΋ͷ
    ͦͷ

    View Slide

  25. ͢΂ͯͷਓ͕ࣸܦ͢΂͖ͱ͸ࢥΘͳ͍͠ɺࣸܦΛ͢͢Ί͍ͯΔΘ͚Ͱ΋ͳ͍ɻ
    ࣗ෼ࣗ਎ͷϧʔςΟʔϯΛݟ͚ͭͯ΋Β͍͍ͨɻ
    Έͳ͞Μʹ
    ఻͍͑ͨ͜ͱ

    View Slide

  26. 8PSE1SFTTؔ࿈
    w ຋༁
    w ϑΥʔϥϜ΁ͷճ౴
    w ςʔϚϨϏϡʔ
    ʜ
    ͨͱ͑͹
    8PSE1SFTTҎ֎
    w ϥΫΨΩ
    w ΢ΣϒαΠτͷτϨʔε
    w ϒϩά
    w ϓϩάϥϛϯάͷνϡʔτϦΞϧ
    ʜ

    View Slide

  27. ײँͷਖ਼ݓಥ͖Ұ೔Ұສճɻ
    )6/5&3ʷ)6/5&3
    ωςϩձ௕

    View Slide

  28. ຖ೔Ͱͳͯ͘΋Α͍

    View Slide

  29. ೉͍͜͠ͱɺ׬੒౓ͷߴ͍΋ͷ
    Ͱ͋Δඞཁ͸ͳ͍

    View Slide

  30. ๻͸தֶͷͱ͖ʹɺ'JOBM'BOUBTZ7**ͷεςʔλεΛҰ೥͔͚ؒͯ͢΂ͯ
    ʹ͠·ͨ͠ɻେֶͷͱ͖͸ɺ3BO0OMJOFͱ͍͏ΦϯϥΠϯήʔϜͰ೔ຊ̎Ґ
    ʹͳΓ·ͨ͠ɻࠓͷ࢓ࣄͱ͸શؔ͘܎ͳ͍͕ɺఘΊͣʹ΍Ε͹ඞͣͰ͖Δͱ͍
    ͏੒ޭମݧΛ΋ͨΒͯ͘͠ΕͨɻͦΕ͕ࠓͷࣸܦʹ΋ͭͳ͕Δɻ
    ͨͱ͑কདྷɺ࢓ࣄ΍ເ͕มΘͬͨͱͯ͠΋ɺ
    ΍ͬͨ͜ͱ͸ઈରແବʹ͸ͳΒͳ͍

    View Slide

  31. ࣗ෼͕ೲಘ͢Δ·Ͱଓ͚͍ͯͩ͘͞ɻຖ೔͸ͪΐͬͱ͠ΜͲ͍ͱࢥͬͨΒɺ΍
    ΊΔͷͰ͸ͳ͘ɺࣗ෼ͷෛ୲ʹͳΒͳ͍Α͏ઃఆΛม͑ͯΈ·͠ΐ͏ɻ͋ͱ͔
    Βࢥ͍ฦͨ͠ͱ͖ʹɺʮ࠳ંͯ͠͠·ͬͨʯͱޙչ͠ͳ͍Α͏ɺʮΑ͕͘Μ͹ͬ
    ͨʯͱࣗ෼Λ๙ΊΒΕΔ·Ͱଓ͚Α͏ɻ
    ͍ͭ·Ͱଓ͚Δ͔

    View Slide

  32. ܧଓ͸ྗͳΓ

    View Slide

  33. ਖ΋ੵ΋Ε͹ࢁͱͳΔ

    View Slide

  34. ੴͷ্ʹ΋ࡾ೥

    View Slide

  35. ϩʔϚ͸Ұ೔ʹͯ͠੒Βͣ

    View Slide

  36. ӍਨΕੴΛઠͭ

    View Slide