仕事をしながら勉強を続けるのはとても大変だと思います。
しかし、私のチームでは1年間毎日勉強会を続けてきました。その秘伝の方法を大公開しようと思います!
アスペクト指向プログラミング(AOP)は、アプリケーションのコードベース全体に横断的に影響を与える部分(Cross-cutting concern)を効果的に管理するためのプログラミングパラダイムで、
オブジェクト指向プログラミングには無い新たな視点を提供します。
PHPにおいてAOPはあまり馴染みのないものかもしれませんが、いくつかのAOPを可能にするライブラリが存在します。
本トークでは、PHPにおいてAOPがどのように実現されているかに焦点を当て、
Ray.Aop と PHP-AOP の2つのAOP実装を題材とし、2つの実装における共通点や違いについて紹介します。
本トークでは、まずAOPの基本概念や利点について確認します。
その後、2つのAOPライブラリについて紹介し、どのように実装されているのかをライブラリによる違いや共通点に着目して深掘りします。
最後に、AOPを導入・活用するにあたってのポイントといった、より実践的なことを紹介します。
皆さんAPIテストを行っていますか?
E2EでAPIテストを行う際に、カバレッジをどう測定すれば良いか?悩まれる方が多いかと感じています。
APIテストにおいてのカバレッジは2つの意味を持ちます。
2つのカバレッジについて、それぞれ意味とその取得方法について紹介いたします。
APIテストで効率的にカバレッジを上げる方法と、トレーサビリティーの確保を行うのに大変強力なツールにも触れてお話させて頂きます。
「わたしたちのコード(=ドメインロジック)」は安定していますか??
フレームワークを利用している場合にコードの境界がハッキリしていないと、強くフレームワークに依存することにもなりかねません。
フレームワークには便利な機能がたくさんあります。
たとえばLaravelには、Eloquent、Facede、サービスコンテナ、認証、ミドルウェア、Blade、artisanコマンドなどがあり、それらの機能を活用することで、スピード感のある開発ができるでしょう。
しかし依存のしすぎはビジネスの変化への対応による作り直しや機能のバージョンアップの際に思わぬ量のコード修正になってしまうことがあります。
わたしのチームでは主にInterfaceを利用して「わたしたちのコード(=ドメインロジック)」をフレームワークから独立させ、安定させることを心がけており、その方法をご紹介できればと思っています。
フロントエンドは得意なのだけど、バックエンドを作るのは苦手
そんな方の選択肢の一つとして、バックエンドレスなWebサイト構築についてお話します。
DBaaSを利用することでバックエンドのコードを書くことなく動的な情報を更新出来ます。
そこにUIを作成することが得意なフロントエンドを組み合わせることで、
リアクティブな動的なサイトとして、サーバーレスなWebサイトの公開する方法まで解説します。
この手順によりゼロスケールが可能なサーバーレスのWebサイト構築を実現して、低コストなWebサイト運営を実現します。
本セッションではその技術要素まで可能な限り解説を行います。
PHPフレームワークとして広く利用されているLaravelの機能の一つ、Collectionの魅力を活用例も交えながらお伝えします!
Collectionの強力なメソッドを活用すれば、一見複雑な処理でも簡単かつシンプル、そして分かりやすく実装ができることを実際の悩みや解決などの事例も交えながらお見せします。
辞書型のアイテムがたくさん入ったCollectionから特定のプロパティだけ抜き出すには…?
特定の条件に沿ってCollectionの要素を選別するには…?逆に除外するには…?
似たようなことができそうなこのメソッド、どう使い分ける…?
などなど、最新版では100を超えるメソッドの中から実際に活躍したものを厳選してお届けします!!
皆様は、ペアプロに行ったことはあるでしょうか、ペアテストはどうでしょうか?
あまり有名ではないので、やったことがないです。
自分では、万全だと思っていたのに、気が付かなかった、変な挙動とか、想定の操作とか、「僕のPCでは動きますが」といったのに、QAに突き返されたことはありませんか?(私は、ちなみに私はQAです。)
ペアテストとは、エンジニアとQA2人1組もしくは3人1組で一つのPCを囲み行うテストのことを言います。BDDやAgileの開発手法でも取り上げられることがあります。
品質上昇はもちろん、自分が気付かないエッジケースの不具合や、気が付かなかった仕様漏れ!などに、効果的で、手戻りを防ぐことができ結果、開発速度も向上します。
私は、エンジニアではなく、QAですが、皆さんに体感してみて頂きたい!!
内容
ペアテストの簡単なやり方や実例
ペアテストの私のお勧めするTips
これで、あなたも見落としによる不具合などを減らしていきましょう。
皆様はペアプログラミングをしたことはあるでしょうか?では、ペアテストはどうでしょうか?
なぜかあまり有名な方法ではないようで、やったことがなければ聞いた事もない人も多いことでしょう。
自分自身では完璧に作ったと思っていたのに、リリースやQAに回したら、気が付かなかったバグや、想定外の操作による不具合が発生することはめずらしくありません。
後でバグがみつかり、QAからもどされたり(ちなみに私はQAです)、リリースを取り消すことになったりしてとてもつらい気分になったことはありませんか?
「僕のPCでは動いたのに…」と。
そこで、ペアテストです!
ペアテストとは複数人で一つのブラウザなどを囲みながら行うテストです。BDDやAgileの開発手法でも取り上げられることがあります。
自分が気付かないエッジケースや、気が付かなかった仕様漏れの発見に効果的で、品質の向上は勿論、手戻りを防ぐことができ、結果として開発速度も向上します。
私はエンジニアではなくQAですが、皆さんに体感してみて頂きたいとおもっています!
あなたも是非ペアテストで見落としを減らし、品質を向上させ、開発速度を上げていきましょう!
初心者時代に「とりあえずよく分からんけどEloquant使っとけ〜」ってなんでもかんでもEloquantで実装して得意げになっていたら、サービスの利用者数が10万人ユーザーを超えたあたりで無数の地雷が爆発し死亡しました。
皆様が爆死しないように失敗談を共有します。
話者はPHP Conference Japan 2022にてHTTP3について調べた結果「スゲー!」ってなりました。
この体験を皆さまにスピーディーに体験していただくために、
HTTP3のいいところを仕組みにちょっと触れながらライトニングに話します。
細かいことは良いんです、HTTP3スゲー!ってなって欲しいんです。
その結果、HTTP3やってみるか〜!というモチベーションに繋がる事を望んでいます。
HTTPとPHPは切っても切れ離せない関係があります、その世界に酔いしれましょう!
AWS Lambdaはうまくアーキテクチャに組み込む事で大きなメリットをもたらします
今回はAWS LambdaとLaravelを利用して作成した個人開発のMVPの動的サイトを紹介します
サーバーレスPHP、話には聞くけど動いてるとこ見たことないなぁという方必見!
技術要素を超高速スライドめくりで、構築する手順を示します(※解説するわけではありません)
元々個人的に作成したかったものをこのタイミングで作成して配置しておき、
皆様にも動かしてもらいながら、サーバーレスPHPを体験して頂ければ幸いです。
時代はAWS、GCP。
そんな中で自分は時代に逆行してモバイルアプリのバックエンドに採用したLaravelをレンタルサーバーにデプロイして運用しています。
ユーザー数も1万人が迫っている中で、この月々440円というと破格のコストで運用していますが、パフォーマンスなど本当に大丈夫なのかを具体的な数値をもとに皆様にご覧にいれようと思います。
個人開発者や小さく事業を始める方に知ってほしいPHPだからこそ出来るミニマムなサービスのスタート方法になること間違いなし!
Everything will be Serverless
サーバーレスは正しくアプローチ出来れば、開発コストとしても運用コストとしても非常に高いコスト効率を出すことが出来ます。
今回は私が実際に構築してきたの具体的な事例を通じてサーバーレスがどのようなメリットを与えて来たのかを、
開発、運用、コストの面からお話します。
なぜサーバーレスに価値があるのかを感じてもらい、どのような場合に適用を行うべきなのかを議論、検討する材料になれば幸いです。
2023年6月にGoogleが運営するドメイン登録サービス「Google Domains」の売却が発表されました。 また同年の9月にはNTTドコモが2021年に終了した金融サービス「ドコモ口座」のドメインがオークションで落札されたことが話題となるなど、インターネットドメインに関わるニュースは時折世間で話題となっています。
一般的にインターネットドメイン(以下ドメイン)とはインターネット上のURLのことであるくらいの認識で、普段Webサービスを開発・運営していたとしてもドメインに直接関わる機会は意外と少ないと思います。
しかしドメインは2024年においてもインターネットにおいてとても重要な要素の1つです。
そこで今回、普段ドメイン登録サービスの開発・運用を主な業務として行っている私がドメインについての入門的な基礎知識や、普段あまり知ることがないドメインの管理構造や管理ポリシーなどについて紹介し、みなさんにドメインについてより関心・興味をもっていただきたいと思っています。
本トークでは以下についての発表を行います
ユーザー数も1万人越えのモバイルアプリ(Flutter)のバックエンドにLaravelを採用して早や4年。
振り返れば
「ああしておけばよかった、、、。」
「ここが考慮できていれば、、、。」
といった悲しい「業」を残して来たと思います。
そんな「業」を新しく羽ばたく皆様が背負わないように、「技術的な側面」と、「上流的な側面」の両方の視点でここに失敗談を記し、皆さんの糧にしてもらいたいと思います。
最近のプロダクト開発においてSPAやマイクロサービスといったアーキテクチャを採用しているケースが多く、バックエンドのWeb APIの開発を避けて通れないと思います。
登壇者も近年数多くのAPIの開発を行ってきました。その中でスキーマ駆動開発も取り入れた開発プロセスを取り入れるなど、APIのスキーマ定義・管理方法ついて試行錯誤を重ねてきました。
その中でAPIのスキーマのバージョン管理がコラボレーションを行う上で大変重要であると気づきました。
如何に開発コストを増やさず
など、実践してきたことと取り組みにおかえるメリットについて紹介します。
普段どのような方法でlaravel開発を行なっていますか?
デバッグする時にddやlogなど使用していますか?
今回紹介するXdebugでは、便利で、直感的なデバッグが可能になります。
私自身、同僚にXdebugを教えてもらってからその利便性に驚かされました。
簡単なデモ動画でXdebgの初期設定、基本動作、共有できればと思っています。
皆さんの開発作業の効率が格段に向上するはずです!
ぜひこの機会にXdebugの魅力を実感していただければ幸いです。
一般的に「WebフレームワークとAWS Lambdaは相性が悪い」という認識が存在し、この認識が移行や採用の障壁となることがあります。
今回は現場から見たWebフレームワークとAWS Lambdaを組み合わせるメリットに焦点を当て以下解説を行います。
さらにWebフレームワークを利用する場合と利用しない場合で、同じ機能を実装した際の比較を行うことで、デメリットが許容できる可能性を提示します。
上記のような、実際の体験も踏まえたメリットの主張と、比較によるデメリットの許容可能性を示す事で採用障壁を下げ、
サーバーレスというアーキテクチャの適用範囲を更に広げる事を目的としています。
そして地方や小規模なチームにも適用可能である事を主張し、
その可能性が認められる事で更なるアーキテクチャの議論ポイントを提示出来ればと考えます。
解決すべき課題は「そのアーキテクチャがベストプラクティスに則っている事」なのかを今一度振り返る機会になれば幸いです。
みなさん、PHPのEnumは使っていますか?
PHP8.1がリリースされてEnumが使えるようになってから2年が経ちました。
定数の代わりにEnumを使うことで、より型安全で管理しやすいコードを書くことができるので
ぜひ皆さんにも使っていただきたいと思っています!!
このLTでは、僕が一番便利だと感じたEnumを使ったバリデーションの書き方をはじめに、
Enumの利点や実際の活用方法について簡単な例を交えて、
皆さんがEnumを使用する際のメリットを理解していただけるようお話させていただきます。
サーバーレスは少しずつ浸透していっています。
そんな中でサーバーレスにおいて、決まったパターンがあることも共有知となってきました。
しかしPHPサーバーレスにおけるサーバーレスパターンとはどのようなものがあるのでしょうか。
今回はAWSにおけるPHPサーバーレスパターンの適用についてお話します。
この話を聞くことで、あなたがPHPを利用したサーバーレスラーになる為の「熱」になれれば幸いです。
・想定する聴講者
- サーバーレスに興味のあるPHPer
- AWSを利用しているクラウド系エンジニア
・お話する内容
- AWS Lambda x PHPを中心にしたサーバーレスパターン
- AWS Lambda x PHPにおけるインフラ構成
そして あなたをサーバーレスの世界に引き込む「熱」