PHPカンファレンス福岡2017
PHPカンファレンス福岡2017君の選択は正しいのか?株式会社 Fusic清家 史郎@seike460
View Slide
自己紹介
清家史郎株式会社 Fusic エンジニアPHPerseike460seike460seike460seike460自己紹介
Fusicについて
株式会社 Fusic๏ 受託開発やってます
株式会社 Fusic๏ 受託開発やってます๏ 自社サービスやってます
๏ 受託開発やってます๏ 自社サービスやってます๏ AWSが得意です株式会社 Fusic
๏ 受託開発やってます๏ 自社サービスやってます๏ AWSが得意です๏ 技術が大好きなエンジニア募集しています! 興味がある方は懇親会等で話しかけて下さい!株式会社 Fusic
本題
君の選択は正しいのか?
エンジニアにおける選択
技術選定
そもそもお前の選択は正しかったのか?
私が行ってきた選択を 振り返ってみようと思います
Fusicにおける技術選定Q.使用する技術ってどのように決めてるんですか?
Fusicにおける技術選定A.案件担当エンジニアが決めます
๏ 技術選定をエンジニアに委ねています๏ エンジニアのモチベーションと技術、 両方底上げする意味があります๏ 責任は多少伴います (みんな凄い助けてくれるけど)๏ 明確な意思で、技術選定しなければならないFusicにおける技術選定
私が行ってきた選択 ケース1
๏ FusicではOJTを行っています私が行ってきた選択 ケース1
๏ FusicではOJTを行っています私が行ってきた選択 ケース1ϝʔϧΞυϨεਃ͕ग़དྷΔγεςϜ࡞ͬͯ
๏ FusicではOJTを行っています๏ メールアドレス申請が出来るシステム作って๏ メールサーバーにはAPIないよ๏ いわゆる普通のWEB開発だね私が行ってきた選択 ケース1
私が行ってきた選択 ケース1LAPPでいいかCakePHP3もみんな使ってるし使おう
出来たシステムϝʔϧਃཧγεςϜ
๏ 要件は満たした๏ 依頼者の反応も実際に「要件は満たしてるね」๏ 自分の枠内での開発๏ 現状不満が上がっています選択の振り返り ケース1明確な意思を持たずに技術選定し、システムへの付加価値を付けれなかった
私が行ってきた選択 ケース2
๏ AWSにシステム構築しよう๏ JsonデータをAPIに送信してデータ保存しよう๏ 送信されたデータをWEBで表示しよう๏ APIにはいつデータ来るかわからないから 落ちないで欲しいよね๏ でも冗長構成にすると費用がかさむ私が行ってきた選択 ケース2
そうだ!サーバーレスにしよう!
๏ AWSマネージドなAPI GateWayにてjson受信๏ 受信jsonをLambdaに渡しPythonバリデーション その後、安価なストレージであるS3に配置๏ S3に配置したjsonを仮想サーバー上のCronで データベースに保存๏ データベースに保存したデータをWEBで表示私が行ってきた選択 ケース2
出来たシステム
๏ サーバーコストの削減に成功๏ AWSマネージドサービスを利用することで 可用性の向上๏ Python書けて、楽しかったサーバレスにした結果明確な意思を持ち技術選定した事で、システムに付加価値をつける事が出来た
私が現在行っている選択
๏ メールサーバーが変更になった๏ APIがある๏ API側とデータの付け合せを行いたい๏ API側の結果を待ってると遅い๏ 非同期処理で情報取得したい๏ PHPをforkさせる手もあるが楽に書きたい๏ PHPじゃ無くてもいいよな…๏ 非同期処理が強い言語が良いな…私が現在行っている選択
そうだ!Goで書こう!
๏ 単純に速度速い๏ 非同期処理が簡単に書ける (非同期処理を制御出来ているかは別の話…)๏ WEBアプリも書ける (PHPってWEBアプリ書きやすいんだな…)๏ GO、楽しい!Goで書いてみて思ったことこの選択が正しいのか まだ結果は出せていません
๏ 技術選定するにも必ず制限はあります๏ その制限の中で最高の選択を行いたい๏ 技術の幅を広げなければならないと感じています๏ PHPに囚われなければ、解決する課題もあると思います๏ PHPの特性を認識して、柔軟に最適な選択を行いたい๏ ※PHP好きですし、WEBシステムに作るならPHP!後悔なき選択をしたい
正しく選択出来る様になって来ていると思います
あなたも真剣に向き合うと良い結果が出るかも知れません
ご清聴ありがとうございました!