抽象化って何? (What is abstraction?)

Ba8ecb9f1d269e44056ff4e7dca4c5e0?s=47 hidenorigoto
February 16, 2019

抽象化って何? (What is abstraction?)

2019年2月16日 Laravel JP Conference

Ba8ecb9f1d269e44056ff4e7dca4c5e0?s=128

hidenorigoto

February 16, 2019
Tweet

Transcript

  1. ந৅ԽͬͯԿʁ ޙ౻लએ IJEFOPSJHPUP!HNBJMDPN  -BSBWFM+1$POGFSFODF 8IBUJTBCTUSBDUJPO

  2. ந৅Խ "CTUSBDUJPO

  3. ͜ͷτʔΫͷ໨ඪ

  4. ͜ͷτʔΫͷ໨ඪ w ݱ࣮ੈքʹ͓͚Δந৅Խͱ͸ͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ

  5. ͜ͷτʔΫͷ໨ඪ w ݱ࣮ੈքʹ͓͚Δந৅Խͱ͸ͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ w ϓϩάϥϛϯάʹ͓͚Δந৅Խͱ͸ͲͷΑ͏ͳ͜ͱ ͳͷ͔ɺཧղ͢Δ

  6. ͜ͷτʔΫͷ໨ඪ w ݱ࣮ੈքʹ͓͚Δந৅Խͱ͸ͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ w ϓϩάϥϛϯάʹ͓͚Δந৅Խͱ͸ͲͷΑ͏ͳ͜ͱ ͳͷ͔ɺཧղ͢Δ w ந৅Խͷࢦ਑Λ஌Γɺந৅Խͷྑ͠ѱ͠Λ൑அͰ͖ ΔΑ͏ʹͳΔ

  7. ͓୊આ໌

  8. γνϡΤʔγϣϯ w ʮ਺ಠʢφϯϓϨɺ/VNCFS1MBDFʣʯͷΞϓϦΛ։ ൃ͢Δ

  9. ਺ಠʢφϯϓϨʣͱ͸ʁ

  10. ਺ಠʢφϯϓϨʣͱ͸ʁ ݸͷϚεʹ͓͍ͯɺ ̍ʙ̕ͷ਺ࣈ͕ ॏෳ͍ͯ͠ͳ͍͜ͱ

  11. γνϡΤʔγϣϯ w ʮ਺ಠʢφϯϓϨɺ/VNCFS1MBDFʣʯͷΞϓϦΛ։ൃ ͢Δ w ਺ಠͷʮਖ਼ղνΣοΫػೳʯͷ࣮૷Λ୲౰͢Δ w ϧʔϧΛຬ͍ͨͯ͠Δ͔Ͳ͏͔ʁ w લఏ

    w ਺ಠͷ͢΂ͯͷϚεʹ਺ࣈ͕ೖ͍ͬͯΔ w ̍ʙ̕ͷ਺ࣈҎ֎ͷೖྗ͸ͳ͍
  12. ࠷ॳͷίʔυ֓ཁ ਺ಠͷϚεͷ৘ใΛ ̎࣍ݩ഑ྻͰอ࣋ ਖ਼ղ͔Ͳ͏͔Λ νΣοΫ͢Δ

  13. None
  14. None
  15. B<J><K> Jଆ͕ߦ Kଆ͕ྻ

  16. None
  17. None
  18. վળϙΠϯτ͸ͳ͍͔ʁ w ϩδοΫ͸Ͱ͖͍ͯΔɻਖ਼͘͠νΣοΫͰ͖Δɻ w ίʔυΛ੔ཧͰ͖Δؾ͕͢Δɻ͔͠͠ɺͲΜͳΞϓ ϩʔνͰ΍Δͷ͔ʁ w $IFDLFS͕.BUSJYʹ௚઀ґଘ͍ͯ͠Δͱ͜Ζ͔Βʁ

  19. ґଘͱ͍͑͹ɾɾɾ ґଘؔ܎ٯసͷݪଇʢ%*1ʣ ͬͯϠπΛ࢖͏ͷ͔ͳɾɾɾ ্ҐϨϕϧͷϞδϡʔϧ͸ԼҐϨϕϧͷϞδϡʔ ϧʹґଘ͢΂͖Ͱ͸ͳ͍ɻ྆ํͱ΋ந৅ ʢBCTUSBDUJPOT ʹґଘ͢΂͖Ͱ͋Δɻ

  20. ґଘؔ܎ٯసͷݪଇͬͯɺ ؒʹJOUFSGBDFΛ͸͞Ήܗʹ ͢Ε͹ྑ͍ΜͩΑͳɻ ˞஫ҙɿԋग़ͷ౎߹্ͷɺۃ୺ͳཧղྫͰ͢

  21. ґଘؔ܎ٯసʂ௚઀ґଘͯ͠·ͤΜʂ

  22. Կ͔ؒҧ͍ͬͯΔ ؾ͕͢Δ

  23. Ͳ͕ؒ͜ҧ͍ͬͯΔͷ͔ આ໌͍ͯͩ͘͠͞ʂ

  24. Ͳ͕ؒ͜ҧ͍ͬͯΔͷ͔ʁ

  25. ந৅Խͱ͸

  26. ࣙॻతఆٛ ந৅ʢͪΎ͏͠ΐ͏ʣ ࣄ෺΍ද৅Λɺ͋Δੑ࣭ɾ ڞ௨ੑɾຊ࣭ʹண໨͠ɺ ͦΕΛந͖ग़ͯ͠೺Ѳ͢Δ ͜ͱɻ ࣺ৅ʢ͠Ό͠ΐ͏ʣ ֓೦Λந৅͢Δࡍʹɺந ৅͞Εͨॾද৅Ҏ֎ͷද ৅Λߟ࡯ͷର৅͔Β੾Γ

    ࣺͯΔ͜ͱɻ
  27. 4ɾ*ɾϋϠΧϫʮந৅ͷϋγΰʯ ʰࢥߟͱߦಈʹ͓͚ΔݴޠʱQ ܦݧͷର৅ʢ໒ڇʣ Պֶతঢ়ଶʢ໒ڇʣ ϕογʔ ޠʮ໒ڇʯ Ոச ೶৔ࢿ࢈ ࢿ࢈ ෋

            ݴޠ ந৅Խ ந৅Խ ந৅Խ
  28. ந৅Խʹ͓͚ΔมԽ ϕογʔ ޠʮ໒ڇʯ   ந৅Խ ಛ௃ͷྔ ଟ͍ গͳ͍ ର৅ͷ਺

    গͳ͍ ଟ͍
  29. ந৅Ϩϕϧ͕͓͔͍͠จ ܦݧͷର৅ʢ໒ڇʣ Պֶతঢ়ଶʢ໒ڇʣ ϕογʔ ޠʮ໒ڇʯ Ոச ೶৔ࢿ࢈ ࢿ࢈ ෋ 

           ࢲ͸໌೔ͷேɺࢲୡͷࢿ࢈ʹ 㕒Λ༩͑ͳ͚Ε͹͍͚ͳ͍ ࢿ࢈ 㕒 ผͷந৅Ϩϕ ϧ͕ࠞࡏͯ͠ ͍Δʂ
  30. ந৅Խͷ·ͱΊ w ந৅ʹ͸Ϩϕϧ͕͋Δʢந৅ͷϋγΰʣ w ϋγΰΛ্Δʹ͸ɺಛ௃Λ੾Γࣺͯͯந৅Խ͢Δ
 ಛ௃ྔ͸ݮΔ͕ɺΑΓଟ͕͘ର৅ʹೖΔ w ந৅ͷϨϕϧ͕ἧ͍ͬͯͳ͍ͱɺίϛϡχέʔγϣ ϯͰ͖ͳ͍

  31. ϓϩάϥϛϯάʹ͓͚Δ ந৅Խͱ͸

  32. ݱ࣮ੈքɺϓϩάϥϛϯάͷੈք

  33. ݱ࣮ੈքɺϓϩάϥϛϯάͷੈք ࢿ࢈ 㕒 ͓ۚ ϕογʔ

  34. ݱ࣮ੈքɺϓϩάϥϛϯάͷੈք ࢿ࢈ 㕒 ͓ۚ ϕογʔ ฼ࠃޠɺߏจɺޠኮ ಓ ۩

  35. ݱ࣮ੈքɺϓϩάϥϛϯάͷੈք ࢿ࢈ 㕒 ͓ۚ ϕογʔ .BUSJY νΣοΫ Ϛε ϧʔϧ ฼ࠃޠɺߏจɺޠኮ

    ಓ ۩
  36. ݱ࣮ੈքɺϓϩάϥϛϯάͷੈք ࢿ࢈ 㕒 ͓ۚ ϕογʔ .BUSJY νΣοΫ Ϛε ϧʔϧ ฼ࠃޠɺߏจɺޠኮ

    ϓϩάϥϛϯάݴޠɺߏจɺޠኮ ಓ ۩
  37. ϓϩάϥϛϯάʹ͓͚Δந৅Խͱ͸ ѻ͍ͬͯΔ໰୊΍֓೦ͷந৅Խ *OUFSGBDF΍"CTUSBDUDMBTTΛ࢖͏͜ͱ ͜ΕΛୡ੒͢ΔͨΊʹɺݴޠʹ༻ҙ͞Ε͍ͯΔ༷ʑͳ ػೳΛ࢖͏ʢ*OUFSGBDFɺ"CTUSBDUɺFUDʣ

  38. ࢦ਑͸ʁ

  39. ϓϩάϥϛϯάʹ͓͚Δ໰୊ͷந৅Խͷࢦ਑ Ծ ద੾ͳ໋໊ ໊લͱ಺༰͕Ұக͠ ͍ͯΔ͜ͱ ந৅౓ͷ౷Ұ ͋Δଆ໘͕औΓग़͞ Εͨ΋ͷ͚ͩͰ⁋᧒ ͕߹͏͜ͱ ڱ͍ൣғ

    ߟྀ͢Δಛ௃ͷ਺͕ খ͘͞ͳ͍ͬͯΔ͜ ͱ ˞஫ҙɿIJEFOPSJHPUPʹΑΔࡶͳఏҊͰ͢
  40. ͜ͷந৅Խ͸Կ͕ؒҧ͍ͬͯͨʁ

  41. ͜ͷந৅Խ͸Կ͕ؒҧ͍ͬͯͨʁ ద੾ͳ໋໊

  42. ͜ͷந৅Խ͸Կ͕ؒҧ͍ͬͯͨʁ ந৅౓ͷ౷Ұ

  43. ͜ͷந৅Խ͸Կ͕ؒҧ͍ͬͯͨʁ ڱ͍ൣғ

  44. ͜ͷந৅Խ͸Կ͕ؒҧ͍ͬͯͨʁ ڱ͍ൣғ ଞʹϝιου͕͋Δ ͚̍ͭͩ

  45. ͜ͷந৅Խ͸Կ͕ؒҧ͍ͬͯͨʁ ڱ͍ൣғ

  46. վળྫ

  47. ґଘؔ܎ͷຊ࣭ΛݟۃΊΔ

  48. ґଘؔ܎ͷຊ࣭ΛݟۃΊΔ w $IFDLFSͱ.BUSJYͷຊ࣭తͳؔ܎ɺ໾ׂΛߟ͑Δ
 $IFDLFS͸ɺ࠷௿ݶԿ͕͋Ε͹੹຿ΛՌͨͤΔ͔

  49. ґଘؔ܎ͷຊ࣭ΛݟۃΊΔ w $IFDLFSͱ.BUSJYͷຊ࣭తͳؔ܎ɺ໾ׂΛߟ͑Δ
 $IFDLFS͸ɺ࠷௿ݶԿ͕͋Ε͹੹຿ΛՌͨͤΔ͔ w $IFDLFS͸ɺݸͷ਺ࣈΛड͚औΕ͹ɺͦΕ͕0,͔/( ͔Λ൑ఆͰ͖Δ

  50. ґଘؔ܎ͷຊ࣭ΛݟۃΊΔ w $IFDLFSͱ.BUSJYͷຊ࣭తͳؔ܎ɺ໾ׂΛߟ͑Δ
 $IFDLFS͸ɺ࠷௿ݶԿ͕͋Ε͹੹຿ΛՌͨͤΔ͔ w $IFDLFS͸ɺݸͷ਺ࣈΛड͚औΕ͹ɺͦΕ͕0,͔/( ͔Λ൑ఆͰ͖Δ w ݸͷ਺ࣈͷ഑ஔ͸ɺ൑ఆʹ͸ؔ܎͕ͳ͍

  51. $IFDLFS͸਺ࣈͷྻ͚ͩΛѻ͏

  52. ਺ࣈͷྻͷੜ੒͸ΞμϓλʔͰٵऩ͢Δ

  53. None
  54. None
  55. None
  56. վળલͷ$IFDLFSͱൺֱ

  57. ڱ͍ൣғ΁ந৅Խ ந৅౓౷Ұ .BUSJYΛѻ͏ $IFDLFS /VNCFS$PMMFDUJPO Λѻ͏$IFDLFS .BUSJYશମ ਺ࣈͷྻ

  58. 6.- $IFDLFS͸.BUSJY͔Β੾Γ཭͞Εͨ

  59. ந৅ԽͷԸܙ w $IFDLFSΫϥεͷίʔυ͕ݮͬͨ w $IFDLFSΫϥεͷґଘର৅͕খ͘͞ͳͬͨ

  60. ·ͱΊ

  61. ͜ͷτʔΫͷ໨ඪ

  62. ͜ͷτʔΫͷ໨ඪ w ݱ࣮ੈքʹ͓͚Δந৅Խͱ͸ͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ

  63. ͜ͷτʔΫͷ໨ඪ w ݱ࣮ੈքʹ͓͚Δந৅Խͱ͸ͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ w ϓϩάϥϛϯάʹ͓͚Δந৅Խͱ͸ͲͷΑ͏ͳ͜ͱ ͳͷ͔ɺཧղ͢Δ

  64. ͜ͷτʔΫͷ໨ඪ w ݱ࣮ੈքʹ͓͚Δந৅Խͱ͸ͲͷΑ͏ͳ͜ͱͳͷ͔ɺ ཧղ͢Δ w ϓϩάϥϛϯάʹ͓͚Δந৅Խͱ͸ͲͷΑ͏ͳ͜ͱ ͳͷ͔ɺཧղ͢Δ w ந৅Խͷࢦ਑Λ஌Γɺந৅Խͷྑ͠ѱ͠Λ൑அͰ͖ ΔΑ͏ʹͳΔ

  65. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

  66. ࢀߟ w 4ɾ*ɾϋϠΧϫʰࢥߟͱߦಈʹ͓͚Δݴޠʱݪॻୈ ࢛൛ؠ೾ॻళ