Slide 1

Slide 1 text


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

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Fusicについて

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

๏ 受託開発やってます ๏ 自社サービスやってます ๏ AWSが得意です ๏ 技術が大好きなエンジニア募集しています!
 
 興味がある方は懇親会等で話しかけて下さい! 株式会社 Fusic

Slide 9

Slide 9 text

本題

Slide 10

Slide 10 text

君の選択は正しいのか?

Slide 11

Slide 11 text

エンジニアにおける選択

Slide 12

Slide 12 text

技術選定

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

私が行ってきた選択を
 振り返ってみようと思います

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

๏ 技術選定をエンジニアに委ねています ๏ エンジニアのモチベーションと技術、
 両方底上げする意味があります ๏ 責任は多少伴います
 (みんな凄い助けてくれるけど) ๏ 明確な意思で、技術選定しなければならない Fusicにおける技術選定

Slide 18

Slide 18 text

私が行ってきた選択
 ケース1

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

私が行ってきた選択
 ケース2

Slide 27

Slide 27 text

๏ AWSにシステム構築しよう ๏ JsonデータをAPIに送信してデータ保存しよう ๏ 送信されたデータをWEBで表示しよう ๏ APIにはいつデータ来るかわからないから
 落ちないで欲しいよね ๏ でも冗長構成にすると費用がかさむ 私が行ってきた選択 ケース2

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

๏ AWSマネージドなAPI GateWayにてjson受信 ๏ 受信jsonをLambdaに渡しPythonバリデーション
 その後、安価なストレージであるS3に配置 ๏ S3に配置したjsonを仮想サーバー上のCronで
 データベースに保存 ๏ データベースに保存したデータをWEBで表示 私が行ってきた選択 ケース2

Slide 30

Slide 30 text

出来たシステム

Slide 31

Slide 31 text

๏ サーバーコストの削減に成功 ๏ AWSマネージドサービスを利用することで
 可用性の向上 ๏ Python書けて、楽しかった サーバレスにした結果 明確な意思を持ち技術選定した事で、 システムに付加価値をつける事が出来た

Slide 32

Slide 32 text

私が現在行っている選択

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

そうだ! Goで書こう!

Slide 35

Slide 35 text

๏ 単純に速度速い ๏ 非同期処理が簡単に書ける
 (非同期処理を制御出来ているかは別の話…) ๏ WEBアプリも書ける
 (PHPってWEBアプリ書きやすいんだな…) ๏ GO、楽しい! Goで書いてみて思ったこと この選択が正しいのか
 まだ結果は出せていません

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

君の選択は正しいのか?

Slide 41

Slide 41 text

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