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

君の選択は正しいのか?

shiro seike
June 18, 2017
650

 君の選択は正しいのか?

PHPカンファレンス福岡2017

shiro seike

June 18, 2017
Tweet

More Decks by shiro seike

Transcript


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

    View full-size slide

  2. 自己紹介

    View full-size slide

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

    View full-size slide

  4. Fusicについて

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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


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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  11. 技術選定

    View full-size slide

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

    View full-size slide

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

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

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

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

    View full-size slide

  17. 私が行ってきた選択

    ケース1

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  25. 私が行ってきた選択

    ケース2

    View full-size slide

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

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

    View full-size slide

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

    View full-size slide

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

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

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

    View full-size slide

  29. 出来たシステム

    View full-size slide

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

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

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

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

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide