Laravel Vapro とは、Laravelのアプリケーションを、AWS Lambda 上に構築しするためのサービスです。
AWS Lambda 上に構築することにより、LaravelをSeverless 化することができ、
Severless の特徴である、「管理コストの低減」、「自動スケーリング」、「従量課金」の恩恵を受けることができます。
Laravel Vapor は、Laravelの製作者 Taylor Otwell 氏自らが、10ヶ月 週 40時間をかけて作成したサービスで、2019/09/11 に正式 リリースされたばかりです。
このサービス自体有料なので、使うのに躊躇されている方や、「実際どうなのよ? 」
と思っている方向けに、Laravel Vapro についてお話できればと思います。
UXや、UIの観点からSPAに代表されるリッチなフロントエンドが当たり前になり、
「SPAにしたい」という要望はビジネス観点からして至極当たり前のことです。
サーバサイドのPHPerでも、「明日からフロントもよろしく!」と言われる場面があるかもしれません。
「フロントの設計わからん」、「コンポーネント設計ってどうやるの?」という疑問を
Atom Design を通して解消し、来たるべき日に備える話しができればと思います。
静的解析はプログラマにフィードバックを最も早く返す仕組みの一つで、コード品質をチームで高める際にも非常に有用です。
しかし、既存のプロダクトに対し静的解析をただ導入した場合、対応しきれないほどのエラーやワーニングが表示されるだけで、コード品質向上への効果が薄くなってしまいます。
本トークでは既存プロダクトにPhanやPhpStormのInspectionといった静的解析ツールを導入し、その後コードの品質向上効果を高めるために、静的解析を育てていった一部始終をお話しします。
昨今PHP界隈でもテストコードを書くことが当たり前になってきました。
テストコードのある開発体験をすると、一時期からテストが大好きになる時期がやってきます。
このことはTDD本では テスト熱中症 (test infected) と表現しています。
テスト熱中症 自体悪いことではありませんが、
テスト熱中症が悪いほうに悪化すると、手当たり次第見境なくテストを書き、
テストを書くことが自体目的となってしまうことがあります(実際私がそう)。
テストコードは道具であって、テストコード書くこと目的にしてはいけません。
そんな戒めを込めた話しをできればと思います。
PHPで稼働しているサービスをクラウド移行に向けてまずはコンテナ化し、現状のオンプレ上で動かそうとしています。
実際にコンテナ化しようとすると、Dockerfileが長大になったりとか、デプロイの方法に悩むことが多いのではなかいと思います。
そこで、このトークではPHPコンテナを動かす過程での私たちの
・itamaeを利用したDocker Image作成
・LVSを利用したBlue-Greenデプロイメントの方法
・AWS Systems Manager RunCommand を利用したデプロイの方法
・開発環境でのDocker Imagerの利用方法
などについて、実際の取り組みを生の声として話します。
新規プロジェクトを立ち上げる際、悩むことの一つにアプリケーションのアーキテクチャ設計があります。
私自身、プロジェクトの立ち上げで、アーキテクチャ設計をおこなったりするのですが、
その中で体験した失敗談を中心にお話させて頂けたらと思います。
以下、アジェンダ(予定)です。
・アーキテクチャについて
・失敗談
・メンバーへのアーキテクチャ浸透
・アーキテクチャへの固執
・まとめ
パフォーマンス・スケーラビリティ・開発・運用、
これら多角的な観点から「マスタデータ」を考えます。
都道府県マスタ : 1:北海道/2:青森/3:岩手/4:宮城 …
金融機関コード : 1:みずほ銀行/5:三菱UFJ銀行/9:三井住友銀行 …
ポケモン一覧 : 1:フシギダネ/2:フシギソウ/3:フシギバナ/4:ヒトカゲ …
カテゴリ一覧 : general:一般/social:世の中/economics:政治と経済 …
変わらないデータでしょうか?変わるデータでしょうか?変わるとしたらいつでしょうか?運用するの誰でしょうか?
データの特性を捉えた適切な実装により、開発と運用の双方を効率化できます。その方法をご紹介します。
パフォーマンス・スケーラビリティ・開発・運用、
これら多角的な観点から「マスタデータ」を考えます。
都道府県マスタ : 1:北海道/2:青森/3:岩手/4:宮城 …
金融機関コード : 1:みずほ銀行/5:三菱UFJ銀行/9:三井住友銀行 …
ポケモン一覧 : 1:フシギダネ/2:フシギソウ/3:フシギバナ/4:ヒトカゲ …
カテゴリ一覧 : general:一般/social:世の中/economics:政治と経済 …
変わらないデータでしょうか?変わるデータでしょうか?変わるとしたらいつでしょうか?運用するの誰でしょうか?
データの特性を捉えた適切な実装により、開発と運用の双方を効率化できます。その方法をご紹介します。
突然ですが「良いコード」とはどういうコードでしょうか?正解は一つではありませんが、私は「複雑さ」(Complexity)が見えないコードが良いコードだと考えています。複雑さが見えないコードはインターフェースが直感的で、リーダビリティが高くて、変更が容易です。
では、複雑さが見えないコードを実現するにはどうすればよいでしょうか?そこで登場するのが「deep module」という考え方です。「deep module」はスタンフォード大学のJohn Ousterhout教授が『A Philosophy of Software Design』という書籍で提唱しているモジュール設計の考え方です。
本セッションでは「deep module」とは何か?deep moduleを実現するにはどうすればよいか?という疑問をPHPのコードを用いて可能限り具体的に解説したいと思います。「deep module」を理解すれば、きっと今よりも「良いコード」が書けます!
私の会社では、沖縄で半年に一回、開発合宿を主催しており、その中で海辺で開発をした話をします。
実際、海辺でビーチ駆動開発をしてどうだったか?開発は捗るのか?支障はないのか?注意点などを話させて頂きます。
私は2012年からうるう年の2月29日にだけ動く「PRESENT4229」というWebサービスを個人で運営しています。4年に1度という特性上、サービスイン前にほぼフルスクラッチでシステムのリプレイスを行っています。
本セッションでは「PRESENT4229」が辿ってきた技術的変遷を紹介しながら、Web技術がこの8年間でどのように進化・変化してきたのかを読み解きたいと思います。そして、来る2020年2月29日、 3回目のサービスインを控えた「PRESENT4229」の裏側をどこよりも早くお話させていただきます!
PRESENT4229: https://present4229.com/
恥ずかしいお話ですが、自分は最近までテストコードをちゃんと書いたことがありませんでした。。。
LTではLaravelを新規に導入したタイミングで一念発起し、テスト駆動開発を始めたお話です。
テスト初心者でも、テスト駆動開発は始められるんだ!と、
自分と同じような状況の方にとって、少しでも励みになれればと思います。
▼あらすじ
・テスト駆動開発したいなーと、思ったきっかけ
・0か100じゃなくて、少しづつ始めることが大切
・テスト駆動開発始めてみた感じたこと
慣れ親しんだフレームワークでいろんな案件に挑戦するのも良いですが、
エンジニアとしては、新しい技術で案件に挑戦したくなるものですよね。
LTでご紹介させていただきたいのは、
Laravelを社内標準に追加させてもらった際に
社内であれこれ相談・説得したり、実際にサービスを作ったりしたお話です。
▼あらすじ
新しいフレームワークを新しく導入するには色々とハードルを超えないといけませんでした。
特にクライアントのサービスで導入するには
以下のチェックポイントをクリアして、ディレクターに納得してもらう必要がありました。
・導入することによりクライアントに与える事ができるメリットを考える
・工数がオーバーしないか確認する
・技術相談できる相手がいるか確認する
これらのポイントをどのようにクリアしていったのか...!?
Laravelを導入して、組織はハッピーになれたのか...!?
エンジニアとして落ちこぼれだった私が、
1年かけて生まれ変わった(と思う)理由って?
ただの落ちこぼれが、今ではあちこちで登壇してたりします。
ブログ・登壇いろいろやってましたが、
私は、1%の努力と、99%の幸運で今ここに居ます。
・友人の存在
・若手ものづくり集団の存在
・そして、PHPerコミュニティの存在
今の私がいるのは、その1%の悲鳴と99%の温かいコミュニティで
出来ているってお話をします。
声を上げないと、助けられないってお話です。
『Laravel5系』ってひとくくりにするのは間違ってるってお話します。
■結論
Laravel6.xからセマンティックバージョニングになったよ
Laravelが6になってから、めっちゃバージョン上がってない!?
って思った人はたくさんいると思います。
でもそれは、5までと違って、6からはバージョニングが変わったからです!
■内容
・セマンティックバージョニングって?
・今起こってるバージョンアップって?
・どんなの増えてる?
・セマンティックバージョニングにしないって過去のドキュメントにあった気がすr
注)この話はフィクションです。きっと。
■対象
・今最新を使っている人(メインターゲットです)
・これからやる人
・もうやって、あるある話を聞いて涙したい人
皆さん、バージョンアップしてますか?
PHPや、Laravel、古くなってきたからバージョンアップしよう。
よくある話ですね。
でも、何も考えずにプログラムを書くと、あとで痛い目を見ます。
これは、本当にあったかはわからない、バージョンアップで悲しみを背負った人の話。
■内容
・vendor配下をいじった報い
・コードをコピペで拡張した悲しみ
・Laravelを見捨ててPHP上げたらLaravelがお亡くなりに
・テストコードなんてなかった
・このライブラリはもう居ない
・消えた機能
・見つからない変更点
・再度襲いかかるコピペの悲しみ
・見えない終わり
・把握できない予算、見積もり
・PHPのアプデは簡単だったという圧力
・本当はマイナーバージョンアップではない誤解
・把握できないバージョンアップの利点
注)この話はフィクションです。きっと。
■対象
・今最新を使っている人(メインターゲットです)
・これからやる人
・もうやって、あるある話を聞いて涙したい人
皆さん、バージョンアップしてますか?
PHPや、Laravel、古くなってきたからバージョンアップしよう。
よくある話ですね。
でも、何も考えずにプログラムを書くと、あとで痛い目を見ます。
これは、本当にあったかはわからない、バージョンアップで悲しみを背負った人の話。
■内容(変更あるかもしれません)
・vendor配下をいじった報い
・コードをコピペで拡張した悲しみ
・Laravelを見捨ててPHP上げたらLaravelがお亡くなりに
・テストコードなんてなかった
・このライブラリはもう居ない
・消えた機能
・見つからない変更点
・再度襲いかかるコピペの悲しみ
静的型付言語なら、こんな苦労はしないで済むのに!
そう思った経験は、ありませんか?
それを強く感じたため、PHPに変わる何かを探し始めました。
そして、以下の5つのチャレンジを行いました。
これらのチャレンジを通じて、どのような成果を達成できたか、そしてPHPと比べて良かった点と悪かった点について発表します。
PHP でも「型」に関する議論が盛り上がっている今、一度「型」についておさらいしてみませんか?
近年、主要なプログラミング言語の「型」を取り巻く環境が変化しています。もちろん PHP も例外ではなく、7.0 以降「型」に関する機能を強化しています。
PHP では型ヒントの強化や、Java ではローカル型推論が導入されるなど、さまざまな言語で「型」に関する機能が拡張されています。
この拡張の傾向としては、動的型付け言語(PHP, Python)は漸進的型付けを導入する、静的型付け言語(Java, C#)は型推論を導入するというのがよくみられます。
その結果、言語の型付けの方式に寄らず、必要な個所に型を記述するというスタイルに収束していきそうな気配すらあります。
しかし、両者の間で「型」そのものの扱いには明確に差があります。その差とは何でしょうか?その差は何をもたらすのでしょうか?
そして、PHP 上で「型」と向き合う時が来たとき、どのように付き合っていくのがいいのでしょうか?
このセッションでは、両者の「型」の進化をおさらいしながら、PHP がこれから「型」と付き合っていく上で得られるものや課題、PHPer が「型」とうまく付き合っていくための基礎知識についておなしします。
「コミュニティ運営を通して、エンジニアとの繋がりを広げ、自己成長につなげたい。」
そんな思いで、私たちは、2019年1月から、特にジャンルを問わない「もくもく勉強会」コミュニティを立ち上げ、9月までにのべ100人超の方に参加して頂くことができました。
10月からは、それまでの「もくもく勉強会」をやめ、「PHPを主軸としたWeb開発に関する勉強会コミュニティ」として再始動をしています。
本セッションでは、私たちが、なぜスタイルを変えてコミュニティを再始動するに至ったか、どのように変えたのかという点に触れつつ、これまでコミュニティ運営をやってみたうえでの、気づき・学び、安定したコミュニティ運営のためにやっていることなどをご紹介します。