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

君の選択は正しいのか?

shiro seike
PRO
June 18, 2017
580

 君の選択は正しいのか?

PHPカンファレンス福岡2017

shiro seike
PRO

June 18, 2017
Tweet

More Decks by shiro seike

Transcript


  1. PHPカンファレンス福岡2017
    君の選択は正しいのか?
    株式会社 Fusic
    清家 史郎
    @seike460

    View Slide

  2. 自己紹介

    View Slide

  3. 清家史郎
    株式会社 Fusic エンジニア
    PHPer
    seike460
    seike460
    seike460
    seike460
    自己紹介

    View Slide

  4. Fusicについて

    View Slide

  5. 株式会社 Fusic
    ๏ 受託開発やってます

    View Slide

  6. 株式会社 Fusic
    ๏ 受託開発やってます
    ๏ 自社サービスやってます

    View Slide

  7. ๏ 受託開発やってます
    ๏ 自社サービスやってます
    ๏ AWSが得意です
    株式会社 Fusic

    View Slide

  8. ๏ 受託開発やってます
    ๏ 自社サービスやってます
    ๏ AWSが得意です
    ๏ 技術が大好きなエンジニア募集しています!


    興味がある方は懇親会等で話しかけて下さい!
    株式会社 Fusic

    View Slide

  9. 本題

    View Slide

  10. 君の選択は正しいのか?

    View Slide

  11. エンジニアにおける選択

    View Slide

  12. 技術選定

    View Slide

  13. そもそもお前の
    選択は正しかったのか?

    View Slide

  14. 私が行ってきた選択を

    振り返ってみようと思います

    View Slide

  15. Fusicにおける技術選定
    Q.使用する技術ってどのように決めてるんですか?

    View Slide

  16. Fusicにおける技術選定
    A.案件担当エンジニアが決めます

    View Slide

  17. ๏ 技術選定をエンジニアに委ねています
    ๏ エンジニアのモチベーションと技術、

    両方底上げする意味があります
    ๏ 責任は多少伴います

    (みんな凄い助けてくれるけど)
    ๏ 明確な意思で、技術選定しなければならない
    Fusicにおける技術選定

    View Slide

  18. 私が行ってきた選択

    ケース1

    View Slide

  19. ๏ FusicではOJTを行っています
    私が行ってきた選択 ケース1

    View Slide

  20. ๏ FusicではOJTを行っています
    私が行ってきた選択 ケース1
    ϝʔϧΞυϨεਃ੥͕ग़དྷΔγεςϜ࡞ͬͯ

    View Slide

  21. ๏ FusicではOJTを行っています
    ๏ メールアドレス申請が出来るシステム作って
    ๏ メールサーバーにはAPIないよ
    ๏ いわゆる普通のWEB開発だね
    私が行ってきた選択 ケース1

    View Slide

  22. 私が行ってきた選択 ケース1
    LAPPでいいか
    CakePHP3もみんな使ってるし使おう

    View Slide

  23. 私が行ってきた選択 ケース1
    LAPPでいいか
    CakePHP3もみんな使ってるし使おう

    View Slide

  24. 出来たシステム
    ϝʔϧਃ੥؅ཧγεςϜ

    View Slide

  25. ๏ 要件は満たした
    ๏ 依頼者の反応も実際に「要件は満たしてるね」
    ๏ 自分の枠内での開発
    ๏ 現状不満が上がっています
    選択の振り返り ケース1
    明確な意思を持たずに技術選定し、
    システムへの付加価値を付けれなかった

    View Slide

  26. 私が行ってきた選択

    ケース2

    View Slide

  27. ๏ AWSにシステム構築しよう
    ๏ JsonデータをAPIに送信してデータ保存しよう
    ๏ 送信されたデータをWEBで表示しよう
    ๏ APIにはいつデータ来るかわからないから

    落ちないで欲しいよね
    ๏ でも冗長構成にすると費用がかさむ
    私が行ってきた選択 ケース2

    View Slide

  28. そうだ!
    サーバーレスにしよう!

    View Slide

  29. ๏ AWSマネージドなAPI GateWayにてjson受信
    ๏ 受信jsonをLambdaに渡しPythonバリデーション

    その後、安価なストレージであるS3に配置
    ๏ S3に配置したjsonを仮想サーバー上のCronで

    データベースに保存
    ๏ データベースに保存したデータをWEBで表示
    私が行ってきた選択 ケース2

    View Slide

  30. 出来たシステム

    View Slide

  31. ๏ サーバーコストの削減に成功
    ๏ AWSマネージドサービスを利用することで

    可用性の向上
    ๏ Python書けて、楽しかった
    サーバレスにした結果
    明確な意思を持ち技術選定した事で、
    システムに付加価値をつける事が出来た

    View Slide

  32. 私が現在行っている選択

    View Slide

  33. ๏ メールサーバーが変更になった
    ๏ APIがある
    ๏ API側とデータの付け合せを行いたい
    ๏ API側の結果を待ってると遅い
    ๏ 非同期処理で情報取得したい
    ๏ PHPをforkさせる手もあるが楽に書きたい
    ๏ PHPじゃ無くてもいいよな…
    ๏ 非同期処理が強い言語が良いな…
    私が現在行っている選択

    View Slide

  34. そうだ!
    Goで書こう!

    View Slide

  35. ๏ 単純に速度速い
    ๏ 非同期処理が簡単に書ける

    (非同期処理を制御出来ているかは別の話…)
    ๏ WEBアプリも書ける

    (PHPってWEBアプリ書きやすいんだな…)
    ๏ GO、楽しい!
    Goで書いてみて思ったこと
    この選択が正しいのか

    まだ結果は出せていません

    View Slide

  36. ๏ 技術選定するにも必ず制限はあります
    ๏ その制限の中で最高の選択を行いたい
    ๏ 技術の幅を広げなければならないと感じています
    ๏ PHPに囚われなければ、解決する課題もあると思います
    ๏ PHPの特性を認識して、柔軟に最適な選択を行いたい
    ๏ ※PHP好きですし、WEBシステムに作るならPHP!
    後悔なき選択をしたい

    View Slide

  37. そもそもお前の
    選択は正しかったのか?

    View Slide

  38. 正しく選択出来る様に
    なって来ていると思います

    View Slide

  39. あなたも真剣に向き合うと
    良い結果が出るかも知れません

    View Slide

  40. 君の選択は正しいのか?

    View Slide

  41. ご清聴ありがとうご
    ざいました!

    View Slide