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

Annotation? Decorator?

Annotation? Decorator?

ng-kyoto#3

fand/amagitakayosi

November 22, 2015
Tweet

More Decks by fand/amagitakayosi

Other Decks in Technology

Transcript

  1. "OOPUBUJPOʜ 

    %FDPSBUPSʜ
    OHͷ"OOPUBUJPOʹ͍ͭͯ
    !BNBHJUBLBZPTJ

    View Slide

  2. @amagitakayosi

    View Slide

  3. View Slide

  4. View Slide

  5. OH
    ೖ໳

    View Slide

  6. )5.-ॻ͍ͯ

    View Slide

  7. +4ॻ͍ͯ

    View Slide

  8. View Slide

  9. ΊͰͨ͠
    ΊͰͨ͠

    View Slide

  10. ৄ͘͠͸ޙͰʂ
    ৄ͘͠͸ޙͰʂ

    View Slide

  11. ΊͰͨ͠
    ΊͰͨ͠

    View Slide

  12. ͍΍͍΍

    View Slide

  13. View Slide

  14. OHYYY

    ϝιουνΣΠϯ

    View Slide

  15. View Slide

  16. ΦϨΦϨ$MBTT

    View Slide

  17. ΋ͬͱϞμϯʹ
    ॻ͖͍ͨʂ

    View Slide

  18. OH
    ࠶ೖ໳

    View Slide

  19. )5.-ॻ͍ͯ

    View Slide

  20. +4όϕͬͯ
    +4όϕͬͯ
    +4όϕͬͯ
    +4όϕͬͯ
    +4όϕͬͯ

    View Slide

  21. View Slide

  22. &4$MBTTʂ

    View Slide

  23. View Slide

  24. ΊͰͨ͠
    ΊͰͨ͠

    View Slide

  25. ͍΍͍΍
    ͪΐͬͱ଴ͬͯ

    View Slide

  26. View Slide

  27. View Slide

  28. !$PNQPOFOU
    ͱ͸ʜʜʁ

    View Slide

  29. View Slide

  30. View Slide

  31. %FDPSBUPS

    View Slide

  32. View Slide

  33. Decorator
    w &$."4DSJQU1SPQPTBMͷҰͭ

    TUBHF

    w ؔ਺΍ΫϥεΛम০Ͱ͖Δ
    w 1ZUIPOͷEFDPSBUPSͱେମಉ͡

    View Slide

  34. ࢖༻ྫ
    w NJYJO %* ϝϞԽ ʜʜ
    w KBZQIFMQTDPSFEFDPSBUPS
    w DIBUXPSLXSBTTF

    View Slide

  35. https://speakerdeck.com/armorik83/es7-decorators
    ࢀߟBSNPSJL͞Μͷղઆ

    View Slide

  36. ࣮૷ঢ়گ
    w CBCFM

    CBCFMQMVHJOTZOUBYEFDPSBUPST

    w 5ZQF4DSJQU

    Wd

    View Slide

  37. CBCFMͰ
    !$PNQPOFOU
    ࢖͑Δʂ

    View Slide

  38. View Slide

  39. Μʜʜʁ

    View Slide

  40. View Slide

  41. View Slide

  42. SFqFDUNFUBEBUB
    ແ͠Ͱ
    !$PNQPOFOU࢖͏ͱ
    Τϥʔग़Δʂʂʂʂʂ
    5ZQF4DSJQUͷ৔߹͸FNJU%FDPSBUPS.FUBEBUBΦϓγϣϯ͕ඞཁ

    View Slide

  43. reflect-metadata
    w NFUBEBUBΛѻ͏ͨΊͷQPMZpMM
    w &43FqFDUʹϝιου௥Ճ
    w 3FqFDUHFU.FUB%BUB
    ͱ͔

    View Slide

  44. 3FqFDU

    .FUBEBUB

    View Slide

  45. ES6 Reflect
    w ϝλϓϩ༻ศརϝιουू
    w 1SPYZͱ͍ͬ͠ΐʹ࢖ͬͨΓ
    w AOFXAΛॻ͔ͣʹ

    Πϯελϯεੜ੒ͨ͠Γ

    View Slide

  46. http://www.2ality.com/2014/12/es6-proxies.html
    ࢀߟ

    .FUBQSPHSBNNJOHXJUI
    &$."4DSJQUQSPYJFT

    View Slide

  47. NFUBEBUBͬͯ
    Կʜʜ

    View Slide

  48. Θ͔Βͳ͍ͷͰ
    ΤϥʔՕॴ
    ݟͯΈΔ

    View Slide

  49. NPEVMFTBOHVMBSTSDDPSFVUJM
    EFDPSBUPSTUTͰΤϥʔग़ͯΔ

    View Slide

  50. ͙͢ԼͷNBLF%FDPSBUPSͰ
    3FqFDU৮ͬͯΔ

    View Slide

  51. ͙͢ԼͷNBLF%FDPSBUPSͰ
    3FqFDU৮ͬͯΔ

    View Slide

  52. View Slide

  53. View Slide

  54. "OOPUBUJPO

    View Slide

  55. Annotation
    w 5SBDFVS"U4DSJQUͰ࠾༻͞Εͨ

    ಛघه๏ͷҰͭ
    w ؔ਺΍ΫϥεΛؾ߹Ͱम০͢Δ
    w 1ZUIPOͷEFDPSBUPSͱશવҧ͏

    View Slide

  56. View Slide

  57. ର৅ΦϒδΣΫτʹ
    BOOPUBUJPO഑ྻΛ
    ڧҾʹੜ΍͠
    "OOPUBUJPOΛอଘ

    View Slide

  58. AtScriptͷग़ྗJSΛݟΔͱ
    w "OOPUBUJPO͸ؔ਺Ͱͳ͘Ϋϥε
    w ର৅ͷΫϥεʹ

    BOOPUBUJPOϑΟʔϧυΛੜ΍͠

    "OOPUBUJPOͷΠϯελϯεΛอଘ

    View Slide

  59. ڧҾ

    View Slide

  60. "OOPUBUJPOͰ
    Ͱ͖Δ͜ͱ͸
    %FDPSBUPSͰ΋
    Ͱ͖Δʂʂʂʂʂ

    View Slide

  61. ࣌ܥྻ
    w 5SBDFVSʹ"OOPUBUJPO͕௥Ճ
    w &4%FDPSBUPSTͷQSPQPTBM
    w "U4DSJQUൃද
    w "U4DSJQUऴྃͷ͓஌Βͤ

    View Slide

  62. ࣌୅͕มΘͬͨͷͰ
    ࢓ํͳͦ͞͏
    ʢ◞‸◟ʣ

    View Slide

  63. ͜ΕΛ౿·͑ͯ
    NBLF%FDPSBUPSΛ
    ಡΉͱ

    View Slide

  64. DMTBOOPUBUJPOT഑ྻͷ୅ΘΓʹ
    SFqFDUNFUBEBUB࢖ͬͯΔ

    View Slide

  65. 3FqFDUHFU0XO.FUBEBUB
    Λ
    ͨͲ͍ͬͯ͘ͱ
    8FBL.BQΛ࢖ͬͯ
    ΦϒδΣΫτຖͷ.FUBEBUBΛ
    อଘ͍ͯ͠Δ

    View Slide

  66. NBLF%FDPSBUPSͷ
    ໾ׂ͸ʜʜʁ

    View Slide

  67. "OOPUBUJPOͷ࢓૊ΈΛ
    ࠶ݱ͢Δ

    View Slide

  68. "OOPUBUJPOͷ࢓૊ΈΛ
    ࠶ݱ͢Δ
    BOOPUBUJPO$MT͔Β
    %FDPSBUPSΛ࡞ͬͯฦ͢

    View Slide

  69. "OOPUBUJPO୅ΘΓͷ
    %FDPSBUPSΛ࡞Δ
    ؔ਺ͩͬͨʂ

    View Slide

  70. !$PNQPOFOUͷ
    ࣮૷͸ʁ

    View Slide

  71. NPEVMFTBOHVMBSTSDDPSF
    NFUBEBUBUT--
    NBLF%FDPSBUPSʹ
    $PNQPOFOU.FUBEBUBΛ౉ͯ͠Δ

    View Slide

  72. NPEVMFTBOHVMBSTSDDPSF
    NFUBEBUBEJSFDUJWFTUT-

    View Slide

  73. ͏Ή

    View Slide

  74. ·ͱΊ

    View Slide

  75. ·ͱΊ
    w "OOPUBUJPOͱ%FDPSBUPS͸ผ
    w OH͸ੲ"OOPUBUJPOΛ࢖ͬͯͨ
    w ݱࡏ͸SFqFDUNFUBEBUBΛ࢖͍

    %FDPSBUPSͰ"OOPUBUJPOΛ

    ࠶ݱ͍ͯ͠Δ

    View Slide

  76. ײ૝
    w OHɺֶशϦιʔεړΔΑΓ

    ຊମίʔυͷίϝϯτಡΜͩ΄͏ָ͕
    w SFqFDUNFUBEBUBɺ

    8FBL.BQ࢖͑͹͍͍͚ͩͰ͸ʁ
    w QSPQPTBMग़͢ͷ͸੓࣏త͗͢Δ

    View Slide

  77. ڭ܇
    ϓϩδΣΫτʹ
    ࣌ؒΛ͔͚͗͢Δͳ

    View Slide

  78. ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide

  79. ˣؔ࿈ϖʔδͷϒΫϚˣ
    http://b.hatena.ne.jp/amagitakayosi/ng2/

    View Slide