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

標準インターフェースを使った
アプリケーション開発/phpcon-okinawa-2019

 標準インターフェースを使った
アプリケーション開発/phpcon-okinawa-2019

PHPカンファレンス沖縄2019の登壇資料

フレームワーク使っていますか?
PHPで作るサーバーサイド、ブラウザで動作するWebフロントエンド、どちらの開発においてもフレームワークは開発の効率化(速度や品質)を強力にサポートしてくれます。
でもカンファレンスなどで発表される内容には、〇〇からXXに移行してみた、とかバージョンアップを頑張った、という話が多いなと感じることはないでしょうか?
もちろんフレームワークをまったく使わない開発というのは難しいかもしれません。
そこで標準インターフェースを意識することで少し遠回りになりますが、ライフサイクルの長いサービスのアプリケーションで壊滅的な技術困難を避けられる可能性が高まります。
このセッションでは、現時点で考えられるなかで、なるべくロックインせず効率的に開発するのに役立つ技術要素について紹介します。
サーバーサイド/フロントエンドのアプリケーション開発をしていく上での、1つの気づきになれば幸いです。
- 標準インターフェースとは?
- ライフサイクルの違い
- フレームワークとは
- SQLを意識する
- PHPでPSRを意識する
- Web標準を意識する
- 標準技術とコンポーネントがポータビリティを高める
- サーバーとクライアントの間でインターフェースを明確化する

Kenichiro Kishida

October 12, 2019
Tweet

More Decks by Kenichiro Kishida

Other Decks in Technology

Transcript

  1. ඪ४ΠϯλʔϑΣʔεΛ࢖ͬͨ

    ΞϓϦέʔγϣϯ։ൃ
    1)1ΧϯϑΝϨϯεԭೄ
    ,FOJDIJSP,JTIJEB
    !TJ[VIJLP

    View full-size slide

  2. ,FOJDIJSP,JTIJEB
    5PLZP +"1"/
    TJ[VIJLP!HNBJMDPN !TJ[VIJLP
    IUUQTHJUIVCDPNTJ[VIJLP
    IUUQCMPHPQFOUPLZPKQ

    View full-size slide

  3. )JTUPSZ
    ݱࡏ
    )551
    )5.-
    +4
    1)1
    42-
    .PKBWJ
    "HBWJ
    4ZNGPOZ $BLF1)1
    $* ;FOE
    :JJ
    4MJN 'VFM -BSWFM "VSB Y
    https://github.com/pmjones/php-history

    View full-size slide

  4. 4FMFDUPS"1*
    wRVFSZ4FMFDUPS
    wRVFSZ4FMFDUPS"MM
    https://www.w3.org/TR/selectors-api/#grammar

    View full-size slide

  5. 03. 1%0
    w %PDUSJOF

    1SPQFM

    w 2VFSZ#VJMEFS
    w "DUJWF3FDPSE
    w "TTPDJBUJPOT
    w 1PMZNPSQIJD
    w FUD
    w GSPN1)1

    w 1SFQBSFE4UBUFNFOU
    w 'FUDI0CKFDU
    w %SJWFS4VQQPSU
    w FUD

    View full-size slide

  6. 03. &MPRVFOU

    1%0

    View full-size slide

  7. -FBSO42-3%#
    https://www.amazon.co.jp/dp/4297104083
    https://www.amazon.co.jp/dp/4774180661

    View full-size slide

  8. https://www.php-fig.org/psr/

    View full-size slide

  9. w #BTJD$PEJOH4UBOEBSE
    w $PEJOH4UZMF(VJEF
    w -PHHFS*OUFSGBDF
    w "VUPMPBEJOH4UBOEBSE
    w $BDIJOH*OUFSGBDF
    w )551.FTTBHF*OUFSGBDF


    "DDFQUFE143
    w $POUBJOFS*OUFSGBDF
    w )ZQFSNFEJB-JOLT
    w &WFOU%JTQBUDIFS
    w )551)BOEMFST
    w 4JNQMF$BDIF
    w )551'BDUPSJFT
    w )551$MJFOU

    View full-size slide

  10. w #BTJD$PEJOH4UBOEBSE
    w $PEJOH4UZMF(VJEF
    w -PHHFS*OUFSGBDF
    w "VUPMPBEJOH4UBOEBSE
    w $BDIJOH*OUFSGBDF
    w )551.FTTBHF*OUFSGBDF


    "DDFQUFE143
    w $POUBJOFS*OUFSGBDF
    w )ZQFSNFEJB-JOLT
    w &WFOU%JTQBUDIFS
    w )551)BOEMFST
    w 4JNQMF$BDIF
    w )551'BDUPSJFT
    w )551$MJFOU

    View full-size slide

  11. https://speakerdeck.com/tanakahisateru/17ninatutafalseka

    View full-size slide

  12. w[FOEEJBDUPSPT˒ 

    JNQMFNFOUBUJPOTPGUIF143)551NFTTBHFJOUFSGBDFTBOE143)551NFTTBHF
    GBDUPSZJOUFSGBDFT
    wMFBHVFSPVUF˒

    'BTU143CBTFESPVUJOHBOEEJTQBUDIDPNQPOFOUJODMVEJOH143NJEEMFXBSF CVJMU
    POUPQPG'BTU3PVUF
    wOPSUIXPPETSPVUFS˒

    'BTUSPVUFSGPS143SFRVFTUIBOEMFST
    wTVOSJTFIUUQSPVUFS˒

    7FSZGBTU)551SPVUFSXJUIBOOPUBUJPOTTVQQPSUGPS1)1CBTFEPO143BOE
    143
    wNJEEMFXBSFTSFRVFTUIBOEMFS˒

    143NJEEMFXBSFUPFYFDVUFSFRVFTUIBOEMFST
    143

    View full-size slide

  13. https://github.com/sizuhiko/psr15-
    requesthandler-examples

    View full-size slide

  14. w #BTJD$PEJOH4UBOEBSE
    w $PEJOH4UZMF(VJEF
    w -PHHFS*OUFSGBDF
    w "VUPMPBEJOH4UBOEBSE
    w $BDIJOH*OUFSGBDF
    w )551.FTTBHF*OUFSGBDF


    "DDFQUFE143
    w $POUBJOFS*OUFSGBDF
    w )ZQFSNFEJB-JOLT
    w &WFOU%JTQBUDIFS
    w )551)BOEMFST
    w 4JNQMF$BDIF
    w )551'BDUPSJFT
    w )551$MJFOU

    View full-size slide

  15. w 3FRVFTU3FTQPOTF
    w 4UBUF.BOBHFNFOU
    w $PNQPOFOU%0.3FOEFSJOH

    View full-size slide

  16. w 'FUDI"1*

    IUUQTGFUDITQFDXIBUXHPSH
    w 'MVY

    IUUQTGBDFCPPLHJUIVCJPqVY
    w 8FC$PNQPOFOUT

    IUUQTXXXXFCDPNQPOFOUTPSHTQFDT

    View full-size slide

  17. https://developer.mozilla.org/ja/docs/Web/API/Fetch_API/Using_Fetch

    View full-size slide

  18. https://facebook.github.io/flux/docs/in-depth-overview.html

    View full-size slide

  19. https://www.webcomponents.org

    View full-size slide

  20. https://wicg.github.io/import-maps/

    View full-size slide

  21. -FBSO8FC
    https://www.amazon.co.jp/dp/4873118042
    https://www.amazon.co.jp/dp/4774142042

    View full-size slide

  22. w3%#$PMVNO5ZQF
    w1)1$MBTT "UUSJCVUF ʜ


    +40/9.-
    w5ZQF4DSJQU
    5ZQF4ZTUFN
    JSON Schema
    XML Schema

    View full-size slide

  23. w3%#$PMVNO5ZQF
    w1)1$MBTT "UUSJCVUF ʜ


    1SPUPDPM#VGGFST
    w5ZQF4DSJQU
    5ZQF4ZTUFN

    View full-size slide

  24. https://github.com/protocolbuffers/protobuf-php

    View full-size slide

  25. https://github.com/sizuhiko/

    php-protocolbuffers-example

    View full-size slide

  26. w՝୊Λղܾ͢ΔͨΊʹద੾ͳղܾࡦΛબ୒͠Α͏
    wඪ४Λ࢖͏͜ͱͰɺҠߦՄೳͳίʔυΛ૿΍͢͜ͱ͕Ͱ͖Δ
    wΠϯλʔϑΣʔεॏཁ
    wຊ೔͸঺հϝΠϯͩͬͨͷͰɺؾʹͳΔΩʔϫʔυ͕͋ͬͨΒ
    ௐ΂ͯ࢖ͬͯΈ͍ͯͩ͘͞
    ·ͱΊ

    View full-size slide

  27. WJTJUNZCMPHHJUIVC
    https://github.com/sizuhiko
    http://blog.open.tokyo.jp

    View full-size slide