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

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

2019年3月30日 PHPerKaigi 2019

Ba8ecb9f1d269e44056ff4e7dca4c5e0?s=128

hidenorigoto

March 30, 2019
Tweet

Transcript

  1. ந৅ԽͬͯԿʁ ޙ౻लએ IJEFOPSJHPUP!HNBJMDPN  1)1FS,BJHJWFS 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ଆ͕ߦ

  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. ໒ڇ ϕογʔ ܦݧͷର৅ʢ໒ڇʣ Պֶతঢ়ଶʢ໒ڇʣ ϕογʔ ޠʮ໒ڇʯ Ոச ೶৔ࢿ࢈ ࢿ࢈ ෋

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

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

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

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

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

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

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

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

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

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

  41. ࢦ਑͸ʁ

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

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

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

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

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

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

  48. վળྫ

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

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

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

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

  53. $IFDLFS͸਺ࣈͷྻ͚ͩΛѻ͏ ਺ࣈͷίϨΫγϣϯ ਺ࣈͷίϨΫγϣϯ ͕ਖ਼ղ͔Ͳ͏͔ νΣοΫ

  54. ਺ࣈͷྻͷੜ੒͸ΞμϓλʔͰٵऩ͢Δ .BUSJYͷσʔλΛ ਺ࣈͷίϨΫγϣϯ ʢͷ഑ྻʣ ΁ม׵

  55. None
  56. ਺ࣈͷྻͷੜ੒ίʔυ ʢ$IFDLFSͷதʹ͋ͬ ͨϧʔϓʹ૬౰ʣ

  57. None
  58. վળલͷ$IFDLFSͱൺֱ

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

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

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

  62. ·ͱΊ

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

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

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

  66. ந৅ԽτϨʔχϯά

  67. ந৅ԽτϨʔχϯά w  ຊ࣭Λൃݟ͢ΔεΩϧΛຏ͘ʹ͸ʁ

  68. ந৅ԽτϨʔχϯά w  ຊ࣭Λൃݟ͢ΔεΩϧΛຏ͘ʹ͸ʁ w ਺ֶ

  69. ந৅ԽτϨʔχϯά w  ຊ࣭Λൃݟ͢ΔεΩϧΛຏ͘ʹ͸ʁ w ਺ֶ w ࿦ཧֶ

  70. ந৅ԽτϨʔχϯά w  ຊ࣭Λൃݟ͢ΔεΩϧΛຏ͘ʹ͸ʁ w ਺ֶ w ࿦ཧֶ w ΞϧΰϦζϜ