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

Perlハッカーは息をするようにCPANモジュールを書く

typester
September 29, 2012

 Perlハッカーは息をするようにCPANモジュールを書く

YAPC::Asia 2012

typester

September 29, 2012
Tweet

More Decks by typester

Other Decks in Programming

Transcript

  1. 1FSMϋοΧʔ͸ଉΛ͢ΔΑ͏ʹ
    $1"/ϞδϡʔϧΛॻ͘
    !UZQFTUFS
    ,":"$*OD

    View Slide

  2. ࠓ೥͸਺೥ͿΓʹ࢓ࣄͰ1FSMΛ͹Γ
    ͹Γ͔͓ͭͬͯΓɺ

    View Slide

  3. ຊ౰ʹଉΛ͢ΔΑ͏ʹ1FSMϞδϡʔϧΛ
    ॻ͍͍ͯͨͳʔɺͱ͍͏͜ͱͰɺ

    View Slide

  4. ·ͣɺࠓ೥ॻ͍ͨϞδϡʔϧΛ
    ঺հ͠·͢

    View Slide

  5. %BUB"QQMF1SJDF5JFS

    View Slide

  6. %BUB"QQMF1SJDF5JFS
    w"QQ4UPSFͷQSJDFUJFS
    UJFS͕೔ຊͩͱˇɺͱ͍͏ͷΛม׵͢
    ΔϞδϡʔϧ

    View Slide

  7. %BUB"QQMF1SJDF5JFS
    w"QQ4UPSFͷQSJDFUJFS
    UJFS͕೔ຊͩͱˇɺͱ͍͏ͷΛม׵͢
    ΔϞδϡʔϧ
    wಈػ
    wඞཁʹഭΒΕͯ
    wIUUQTQBCFSJTINF

    View Slide

  8. %BUB.FTTBHF1BDL4USFBN

    View Slide

  9. %BUB.FTTBHF1BDL4USFBN
    w.FTTBHF1BDLͷετϦʔϛϯάύʔαʔ

    View Slide

  10. %BUB.FTTBHF1BDL4USFBN
    w.FTTBHF1BDLͷετϦʔϛϯάύʔαʔ
    wಈػ
    w%BUB.FTTBHF1BDLͷιʔείʔυ͕
    ೉͗ͨ͢͠
    w͙͢ʹཉ͔ͬͨ͠

    View Slide

  11. %BUB9-491BSTFS

    View Slide

  12. %BUB9-491BSTFS
    wߴ଎ͳYMTYϑΝΠϧύʔαʔ

    View Slide

  13. %BUB9-491BSTFS
    wߴ଎ͳYMTYϑΝΠϧύʔαʔ
    wಈػ
    w4QSFBETIFFU9-49͕ϝϞϦΛ৯͍ա
    ͗ͯཁ݅ΛΫϦΞͰ͖ͳ͔ͬͨ
    w1ZUIPOʹྑ͍࣮૷͕͋ͬͨͷͰͦΕΛҠ

    View Slide

  14. 4VC3BUF

    View Slide

  15. 4VC3BUF
    w֬཰͕͔ΒΉॲཧΛྑ͍ײ͡ʹ͍ͨ͠ͱ͖ʹ
    ࢖͏Ϟδϡʔϧ

    View Slide

  16. 4VC3BUF
    w֬཰͕͔ΒΉॲཧΛྑ͍ײ͡ʹ͍ͨ͠ͱ͖ʹ
    ࢖͏Ϟδϡʔϧ
    wಈػ
    w͜͏͍͏ͷ͕ཉ͔ͬͨ͠

    View Slide

  17. 4VC&YDFQUJPO

    View Slide

  18. 4VC&YDFQUJPO
    wྫ֎ॲཧΛมΘͬͨײ͡Ͱॻ͚ΔϞδϡʔϧ

    View Slide

  19. 4VC&YDFQUJPO
    wྫ֎ॲཧΛมΘͬͨײ͡Ͱॻ͚ΔϞδϡʔϧ
    wಈػ
    w͜͏͍͏ͷ͕ཉ͔ͬͨ͠ɺ͍ͬͯ͏Θ͚Ͱ
    ͸ͳͯ͘ͳΜͱͳ͘ࢥ͍͍͔ͭͨΒ

    View Slide

  20. 5FTU3FEJT4FSWFS

    View Slide

  21. 5FTU3FEJT4FSWFS
    w5FTUNZTRMEͷSFEJTόʔδϣϯ

    View Slide

  22. 5FTU3FEJT4FSWFS
    w5FTUNZTRMEͷSFEJTόʔδϣϯ
    wಈػ
    wඞཁʹഭΒΕͯ

    View Slide

  23. +40/5ZQFT

    View Slide

  24. +40/5ZQFT
    w+40/Λ࡞Δͱ͖ʹ਺஋Խͨ͠Γ͢Δͱ͖ʹ
    OVNCFSΈ͍ͨͳṖͷϋοΫ͢Δͷ
    ͸͍΍ͩͳʔ͍ͬͯ͏ͷΛͳΜͱ͔͢ΔͨΊ
    ͚ͩͷϞδϡʔϧ

    View Slide

  25. $PDPB#BUUFSZ*OGP

    View Slide

  26. $PDPB#BUUFSZ*OGP
    w.BDͰόοςϦʔ৘ใΛऔಘͨ͠Γɺόος
    Ϧʔؔ܎ͷΠϕϯτΛίʔϧόοΫͰऔಘͰ
    ͖ΔϞδϡʔϧ

    View Slide

  27. $PDPB#BUUFSZ*OGP
    w.BDͰόοςϦʔ৘ใΛऔಘͨ͠Γɺόος
    Ϧʔؔ܎ͷΠϕϯτΛίʔϧόοΫͰऔಘͰ
    ͖ΔϞδϡʔϧ
    wಈػ
    wόοςϦʔܥϥΠϑϋοΫʹඞཁͩͬͨ

    View Slide


  28. View Slide


  29. w$PDPB$PSF#MVFUPPUI

    View Slide


  30. w$PDPB$PSF#MVFUPPUI
    w$PDPB"QQMF4DSJQU

    View Slide


  31. w$PDPB$PSF#MVFUPPUI
    w$PDPB"QQMF4DSJQU
    wಈػ
    w:"1$"TJB

    View Slide

  32. Ҏ্ݸ

    View Slide

  33. όʔδϣϯΞοϓ΍طଘϞδϡʔϧͷ
    ϝϯςφϯε΋͋ΔͷͰTIJQJUճ਺
    ͸਺͑੾Εͳ͍

    View Slide

  34. ଉΛٵ͏Α͏ʹϞδϡʔϧΛॻ͖ɺ

    View Slide

  35. ଉΛ͸͘Α͏ʹTIJQJU͢Δ

    View Slide

  36. ͦΕ͸1FSMϋοΧʔʹ͸ࣗવͳ͜ͱ

    View Slide

  37. $1"/ʹΞοϓ͢Δͱ
    ͍ΖΜͳϝϦοτ͕͋Δ

    View Slide

  38. Πϯετʔϧ͕؆୯
    DQBON.Z.PEVMF

    View Slide

  39. DQBOUFTUFST

    View Slide

  40. QBUDIFT DPOUSJCVUJPOTGSPN
    PUIFSQFPQMF

    View Slide

  41. ࠶ར༻ͦ͠͏ͳ΋ͷ͸શ෦$1"/ʹ
    ͋͛ͪΌ͏
    wDQBONͰ؆୯ʹೖΔ͔Βɺࣗ෼ࣗ਎΋ଞͷ
    ͱ͜ΖͰ࢖͏ͷָ͕ʹ
    w$1"/ίϛϡχςΟʔʹΑͬͯΫΦϦςΟ͕
    ্͕Δ

    View Slide

  42. Ͱ΋ͳΜ͔มͳͷΞοϓ͢Δͱ
    UPLV˓JSPNͱ͔ʹ%*4ΒΕΔ͠ʜ

    View Slide

  43. /0ͦΜͳ͜ͱ͸ͳ͍ʂ

    View Slide

  44. 5IFSFJTNPSFUIBOPOFXBZ
    UPEPJU

    View Slide

  45. ͨͩ͠ʂ

    View Slide

  46. υΩϡϝϯτΛॻ͜͏

    View Slide

  47. ͦͷϞδϡʔϧΛ࡞ͬͨ೤͍૝͍Λ
    υΩϡϝϯτʹॻ͜͏ʂ

    View Slide

  48. υΩϡϝϯτͬͯͷ͸Ϟδϡʔϧͷ
    ࢖͍ํΛॻ͚ͩ͘ͷ෺͡Όͳ͍

    View Slide

  49. ͦͷϞδϡʔϧʹ͍ͨ͢Δ૝͍Λશ෦
    Ϳ͚ͭΔͱ͜ΖͳΜͩʂ

    View Slide

  50. ˞%*4ΒΕϙΠϯτΛ͋Β͔͡Ί཈͓͑ͯ͘͜ͱ͸ϞώΧϯରࡦͱͯ͠ඇৗʹ༗ޮͰ͢

    View Slide

  51. υΩϡϝϯτ࡞੒ͷͭ͜
    wQPEܗࣜ͸׳Εͳ͍ͱ͸ࢥ͍·͚͢Ͳɺ͜Ε
    ͸͚ͩ͸֮͑Δ͔͠ͳ͍
    w׳Εͳ͍͏ͪ͸ਓͷΛਅࣅͨ͠Βྑ͍
    wॻ͖·͍ͬͯͨ͘Βͦͷ͏ͪͳʹ΋ݟͳ͍Ͱ
    ΋ී௨ʹ͔͚ΔΑ͏ʹͳΓ·͢

    View Slide

  52. υΩϡϝϯτ࡞੒ͷͭ͜
    wॻ͘΂͖಺༰

    View Slide

  53. υΩϡϝϯτ࡞੒ͷͭ͜
    wॻ͘΂͖಺༰
    w4:/014*4ͬ͘͞Γͨ͠࢖͍ํͷίʔυ

    View Slide

  54. υΩϡϝϯτ࡞੒ͷͭ͜
    wॻ͘΂͖಺༰
    w4:/014*4ͬ͘͞Γͨ͠࢖͍ํͷίʔυ
    w%&4$3*15*0/೤͍૝͍

    View Slide

  55. υΩϡϝϯτ࡞੒ͷͭ͜
    wॻ͘΂͖಺༰
    w4:/014*4ͬ͘͞Γͨ͠࢖͍ํͷίʔυ
    w%&4$3*15*0/೤͍૝͍
    w.&5)0%4'6/$5*0/4
    ֤ϝιουɺؔ਺Λઆ໌

    View Slide

  56. $1"/Ϟδϡʔϧ࡞੒ͷϙΠϯτ

    View Slide

  57. $1"/Ϟδϡʔϧ࡞੒ͷϙΠϯτ
    wΧδϡΞϧʹ࡞ͬͯྑ͍͚ͲɺυΩϡϝϯτ
    ͸͔ͬ͠Γॻ͜͏

    View Slide

  58. $1"/Ϟδϡʔϧ࡞੒ͷϙΠϯτ
    wΧδϡΞϧʹ࡞ͬͯྑ͍͚ͲɺυΩϡϝϯτ
    ͸͔ͬ͠Γॻ͜͏
    w্͛ͨҎ্͸ϝϯςφϯεΛܧଓ͠·͠ΐ͏

    View Slide

  59. $1"/Ϟδϡʔϧ࡞੒ͷϙΠϯτ
    wΧδϡΞϧʹ࡞ͬͯྑ͍͚ͲɺυΩϡϝϯτ
    ͸͔ͬ͠Γॻ͜͏
    w্͛ͨҎ্͸ϝϯςφϯεΛܧଓ͠·͠ΐ͏
    w%*4͸༑ୡͰ͢ʂ

    View Slide

  60. HJUIVCʹ຾ͬͯΔϞδϡʔϧ
    ͋ͬͨΓ͠·ͤΜ͔ʁ

    View Slide

  61. ා͘ͳ͍͔ΒΞοϓͯ͠ΈΑ͏ʂ

    View Slide

  62. 5IBOLZPV

    View Slide