$30 off During Our Annual Pro Sale. View Details »

PHPerが聞きたいPythonのいくつかのこと - PyCon mini Sapporo 2019 #pyconsap

PHPerが聞きたいPythonのいくつかのこと - PyCon mini Sapporo 2019 #pyconsap

PyCon mini Sapporo 2019 #pyconsap
LTでの発表。

Kihara, Takuya

May 11, 2019
Tweet

More Decks by Kihara, Takuya

Other Decks in Technology

Transcript

  1. 1Z$PONJOJ4BQQPSP
    @tacck
    1)1FS͕ฉ͖͍ͨ
    1ZUIPOͷ͍͔ͭ͘ͷ͜ͱ
    2019/05/11
    1)1FS
    1ZUIPO
    1ZUIPO
    1ZUIPO
    1ZUIPO
    1ZUIPO
    1ZUIPO
    1ZUIPO
    1ZUIPO
    1ZUIPO
    1)1FS
    1)1FS
    1)1FS
    1)1FS
    1)1FS
    1)1FS
    1)1FS
    1)1FS

    View Slide

  2. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL

    • ໊લ

    tacck / ໦ݪ ୎໵

    • ॴଐ

    גࣜձࣾϊʔεσΟςʔϧ

    • ࢓ࣄ

    ϞϏϦςΟIoTࣄۀ ͷԿͰ΋԰

    View Slide

  3. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    1ZUIPOJTUBͷօʑ༷ʹ

    ࢕͍͍ͨ

    View Slide

  4. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ͦͷલʹ

    View Slide

  5. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ීஈ͸1)1FS΍ͬͯ·͢
    • ࢓ࣄͰ΋झຯͰ΋ɻ

    • ͦΕҎ֎ʹ͸ɺJavaॻ͍ͨΓɺJavaScriptॻ͍ͨΓɻ

    • ࢓ࣄͰPython͸ॻ͍ͯͳ͍Ͱ͢ɻɻɻ

    View Slide

  6. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ͦΜͳࢲͰ΋

    1ZUIPOΛ৮Δ͕࣌͋Γ·ͯ͠

    View Slide

  7. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL

    View Slide

  8. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ֓ཁ
    ϒϥ΢β
    AWS IoT
    ηϯαʔ

    View Slide

  9. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ֓ཁ
    ϒϥ΢β
    AWS IoT
    ηϯαʔ
    ͜͜ʹPython

    View Slide

  10. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ֓ཁ
    ϒϥ΢β
    AWS IoT
    ηϯαʔ
    ηϯαʔ͔Β

    σʔλऔಘ͢Δ
    Pythonαϯϓϧ

    View Slide

  11. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ֓ཁ
    ϒϥ΢β
    AWS IoT
    ηϯαʔ
    AWS IoTϔ
    σʔλૹ৴͢Δ

    Pythonαϯϓϧ
    ηϯαʔ͔Β

    σʔλऔಘ͢Δ
    Pythonαϯϓϧ

    View Slide

  12. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ֓ཁ
    AWS IoTϔ
    σʔλૹ৴͢Δ

    Pythonαϯϓϧ
    ηϯαʔ͔Β

    σʔλऔಘ͢Δ
    Pythonαϯϓϧ

    View Slide

  13. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ֓ཁ
    ηϯαʔ͔Β

    σʔλऔಘ͢Δ
    Pythonαϯϓϧ
    AWS IoTϔ
    σʔλૹ৴͢Δ

    Pythonαϯϓϧ

    View Slide

  14. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Ωϝϥ
    ߹੒्ϓϩάϥϜ

    View Slide

  15. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    • ͱΓ͋͑ͣαϯϓϧϓϩάϥϜΛ

    ͚ͬͭͯ͘ಈ͔ͯ͠ΈΔ

    • ಈ͖࢝ΊͨͷͰͦͷ··ಈ͔͠ଓ͚Δ

    • ҰिؒܦͭͱԿΛ΍͍͔ͬͯͨ๨ΕΔ

    View Slide

  16. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ߹੒्ϓϩάϥϜര஀

    View Slide

  17. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ߹੒्ϓϩάϥϜര஀
    Έͳ͞Μ΋

    ࠇຐज़΍ͬͯ·͔͢?

    View Slide

  18. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Πϯσϯτͷ୩

    View Slide

  19. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    • Πϯσϯτͷਂ͕͞ϒϩοΫΛද͢

    • ͜Ε͸ྑ͍

    • ͨͩɺ௕͍ίʔυΛεΫϩʔϧ͍ͯ͘͠ͱ

    ৺ʹҾ͔͔ͬΓ͕ੜ·ΕΔ͜ͱ΋

    View Slide

  20. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ϒϩοΫ࢝·ͬͨ

    View Slide

  21. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ϒϩοΫ·ͨ࢝·ͬͨ

    View Slide

  22. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ϒϩοΫऴΘ͔ͬͨͳ?

    View Slide

  23. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ϒϩοΫऴΘͬͯͳ͔ͬͨ

    View Slide

  24. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ϒϩοΫऴΘͬͯͳ͔ͬͨ
    ͕͜͜
    Πϯσϯτͷ୩

    View Slide

  25. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ϒϩοΫऴΘ͔ͬͨͳ?

    View Slide

  26. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ϒϩοΫऴΘͬͯͳ͔ͬͨ

    View Slide

  27. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ϒϩοΫऴΘ͔ͬͨͳ?

    View Slide

  28. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    ϒϩοΫऴΘͬͯͳ͔ͬͨ

    View Slide

  29. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL

    View Slide

  30. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL

    “ } ” ͸͍ͭग़Δͷ!!!!!
    (ग़·ͤΜ)

    View Slide

  31. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL

    “ } ” ͸͍ͭग़Δͷ!!!!!
    (ग़·ͤΜ)
    Ͳ͏΍ͬͨΒ

    ׳Ε·͔͢?

    View Slide

  32. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    λϓϧͷṖΛ௥͑

    View Slide

  33. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    (
    ( ,)
    ,)

    View Slide

  34. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    (
    ( ,)
    ,)
    λϓΔ?

    View Slide

  35. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    JNQPSU೉͍͠໰୊

    View Slide

  36. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    • ͿͬͪΌ͚ “import” ͕Θ͔Βͳ͍

    • “from” ͕ग़Δͱ͞ΒʹΘ͔Βͳ͍

    • PHPͱPythonͰॻ͖ൺ΂ͯ͠Έͨɻ

    View Slide

  37. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    1)1ͰΫϥεΛ࢖͏ͱ͖

    View Slide

  38. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.php
    SubFolder
    Bar.php
    Folder (ύοέʔδ໊: App)

    View Slide

  39. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.php
    SubFolder
    Bar.php
    Folder (ύοέʔδ໊: App)
    namespace App\SubFolder;
    class Bar
    {

    }
    ΫϥεͱϑΝΠϧ໊͸
    جຊతʹ1ର1

    View Slide

  40. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.php
    SubFolder
    Bar.php
    Folder (ύοέʔδ໊: App)
    namespace App;
    use App\SubFolder\Bar;
    class Foo
    {
    public function someFunc()
    {
    $bar = new Bar();
    }
    }

    View Slide

  41. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.php
    SubFolder
    Bar.php
    Folder (ύοέʔδ໊: App)
    namespace App;
    use App\SubFolder\Bar;
    class Foo
    {
    public function someFunc()
    {
    $bar = new Bar();
    }
    }
    “ύοέʔδ໊” + “SubFolder” + “Ϋϥε໊”
    Ͱɺ “Bar.php” ಺ͷΫϥεΛࢀরɻ

    View Slide

  42. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.php
    SubFolder
    Bar.php
    Folder (ύοέʔδ໊: App)
    namespace App;
    use App\SubFolder\Bar;
    class Foo
    {
    public function someFunc()
    {
    $bar = new Bar();
    }
    }
    “ύοέʔδ໊” + “SubFolder” + “Ϋϥε໊”
    Ͱɺ “Bar.php” ಺ͷΫϥεΛࢀরɻ
    ͜ͷΫϥε಺Ͱ͸
    Ϋϥε໊͚ͩͰݺͼग़͠Մೳ

    View Slide

  43. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    1ZUIPOͰΫϥεΛ࢖͏ͱ͖

    View Slide

  44. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.py
    SubFolder
    Bar.py
    Folder

    View Slide

  45. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.py
    SubFolder (ύοέʔδ໊)
    Bar.py (Ϟδϡʔϧ໊)
    Folder
    class Bar:

    class Hoge:

    ϑΝΠϧ໊͸Ϟδϡʔϧ໊
    ϑΝΠϧ಺ʹෳ਺ΫϥεهࡌՄೳ
    PHPͩͱ “ϑΥϧμ໊” ͕ “Ϟδϡʔϧ໊” తͳҐஔ෇͚

    View Slide

  46. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.py
    SubFolder (ύοέʔδ໊)
    Bar.py (Ϟδϡʔϧ໊)
    Folder
    import SubFolder.Bar
    class Foo:
    def someFunc(self):
    bar = SubFolder.Bar.Bar()

    View Slide

  47. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.py
    SubFolder (ύοέʔδ໊)
    Bar.py (Ϟδϡʔϧ໊)
    Folder
    import SubFolder.Bar
    class Foo:
    def someFunc(self):
    bar = SubFolder.Bar.Bar()
    “ύοέʔδ໊” + “Ϟδϡʔϧ໊” + “Ϋϥε໊”
    “Bar.py” ಺ͷΫϥεΛࢀর
    ࢖͍͍ͨ “ύοέʔδ໊” + “Ϟδϡʔϧ໊” هࡌ
    ͜ͷϞδϡʔϧ಺Ͱ “SubFolder.Bar” Λ࢖༻

    View Slide

  48. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.py
    SubFolder (ύοέʔδ໊)
    Bar.py (Ϟδϡʔϧ໊)
    Folder
    from SubFolder.Bar import Bar
    class Foo:
    def someFunc(self):
    bar = Bar()
    fromʹ “ύοέʔδ໊” + “Ϟδϡʔϧ໊” هࡌ
    ͜ͷதͷ “Ϋϥε” Λ࢖༻͢Δએݴ
    importͷޙʹॻ͍ͨ “Bar” ΛϞδϡʔϧ಺Ͱ࢖༻

    View Slide

  49. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.py
    SubFolder (ύοέʔδ໊)
    Bar.py (Ϟδϡʔϧ໊)
    Folder
    from SubFolder.Bar import Bar
    class Foo:
    def someFunc(self):
    bar = Bar()
    ͜ͷॻ͖ํΛ͢Δͱɺ

    PHPͱಉ͡Α͏ͳײ͡ͰΫϥεΛࢀরͰ͖Δɻ
    fromʹ “ύοέʔδ໊” + “Ϟδϡʔϧ໊” هࡌ
    ͜ͷதͷ “Ϋϥε” Λ࢖༻͢Δએݴ
    importͷޙʹॻ͍ͨ “Bar” ΛϞδϡʔϧ಺Ͱ࢖༻

    View Slide

  50. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    Foo.py
    SubFolder (ύοέʔδ໊)
    Bar.py (Ϟδϡʔϧ໊)
    Folder
    from SubFolder.Bar import Bar
    class Foo:
    def someFunc(self):
    bar = Bar()
    fromʹ “ύοέʔδ໊” + “Ϟδϡʔϧ໊” هࡌ
    ͜ͷதͷ “Ϋϥε” Λ࢖༻͢Δએݴ
    importͷޙʹॻ͍ͨ “Bar” ΛϞδϡʔϧ಺Ͱ࢖༻
    ͜ͷॻ͖ํΛ͢Δͱɺ

    PHPͱಉ͡Α͏ͳײ͡ͰΫϥεΛࢀরͰ͖Δɻ
    ͜ΕͰ

    ྑ͍ΜͰ͔͢Ͷ?

    View Slide

  51. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    1ZUIPOJTUBͷօʑ༷ɺ

    ɹ༏͘͠ڭ͍͑ͯͩ͘͞

    View Slide

  52. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    13

    View Slide

  53. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    https://phpcon.hokkaido.jp/

    View Slide

  54. 1Z$PONJOJ4BQQPSPQZDPOTBQ !UBDDL
    FOE

    View Slide