OSSコントリビュートはした方が良いという話はよく聞きます。
しかし、実際にどう進めれば良いのかという話は中々ないように思います。
このトークでは、私が業務中に行ったOSSコントリビュートの手順を1から解説します。
OSSコントリビュートの手順に正解はありませんが、このトークを通して「ほ〜ん、大体こんな感じなんやな〜」と思っていただければ幸いです。
対象読者
自分のために書くPHPも良いものですが、人助けのために書くPHPもとても良いものです。
これを機に、PHP界隈のOSSコントリビュート文化がもっと成熟して、多くのPHPerが気軽にコントリビュートできる世界になれば嬉しいです。
みなさん、サーバレスで動かすPHPはお好きですか? 私は大好きです。
このコンテナを稼働させる仕組みは様々ありますが、1つのコンテナを動かして気楽にWEBアプリ開発をしたくありませんか?
そんなあなたにぴったりなのが フルマネージドでコンテナ型アプリを作成できる
・App Runner
・Cloud Run
・Container Apps
です。
これらのサービスの比較と実際にPHPアプリケーションを動かす際のポイントなどをお話します!
・Dockerなどコンテナについてなんとなく聞いたことがあり、ちょっと動かしてみたい人
・サーバレスという言葉に惹かれる人
・各社のサーバレス コンテナサービスの比較(特徴や料金体系など)
・商用環境での運用の話(個人開発ベースです)
・ライブデモはありません(あくまでスライドのお話ベース)
リモートワークが日常となった現代、テキストコミュニケーションの重要性に気づいている人はどれほどいるでしょうか?
リモートネイティブとして、新卒から3年間の社会人経験を通じて、私が学んだテキストコミュニケーションの重要性をLTでお伝えします!!
「先輩にどう質問する?」「ビジネス側のやり取りはどう進める?」などシーンに応じて、伝わりにくい文章の例をどう改善するか解説します!
そして、絵文字「👍」や感嘆符「!」の使い方など、細かな表現まで、日々のテキストコミュニケーションで意識しているポイントを余すことなくお話しします!!
スロークエリちゃんと改善してますか?
日頃パフォーマンスを考えて開発はしていても、実際のデータや経年でのデータ増加によって気づけば増えてるスロークエリ。
増えすぎると慢性的になりどのスロークエリから改善すればいいのか、そもそもこのクエリはどの機能、画面から使われてるのか把握することも困難になってしまいます。
これに対してGrafanaを使いスロークエリを可視化し、定期的にチームで確認しスロークエリ改善をしていった活動とその際のテクニックについてお話します。
PHP を含む、クラスベースのオブジェクト指向プログラミング機能を持つ言語(あるいはそれ以外の言語でも)インターフェースを利用できます。
アプリケーションの実装上の設計を考えたことがある人は、インターフェースが使えると何が嬉しいのか?どんな場面で使えばよいのか?と思ったことがあるのではないでしょうか。
本トークでは、また設計の文脈で聞いたことがあるかもしれない「腐敗防止層」というワードとともにインターフェースの使い方、ひいては設計全般に通用する考え方をお話します。
以下を満たす方が聴講することを想定します。
ORMを使っているから、DBMSの便利な機能は使えない…と諦めていませんか?
DoctrineはDBAL(データベース抽象化レイヤー)を擁し、各DBMSに共通の使い方を提供してくれますが、それだけでなくカスタマイズ機構も備えていて、DBMS側の便利な機能を使うこともできます。
本トークではPostgreSQLの便利な機能をDoctrineORMで扱う方法を題材に、DoctrineORMのカスタマイズ手法についてご紹介します。
MySQL5.7のEOL対応は順調ですか?
MySQL8になって色々新しい機能があるのは知ってるけどいまいちちゃんと把握してない方、何となく機能は知ってるけど使い所がピンと来てない方向けにMySQL8の新機能WITH句とWindow関数のおさらいと便利な使い方、可読性の高いSQLの書き方について実例を出しながらお話しします。
「PHPコミュニティ、その魅力と熱狂をあなたにも」と題した私のトークへようこそ!
2022年から数々のPHPカンファレンスや勉強会に飛び込んで、今や参加したイベント数は両手ではとうに数えきれないほど、私はPHPコミュニティへの熱い愛に満ちています!!!
PHPにとどまらず、技術コミュニティへの情熱は、一人のPHPerとして、また一人のエンジニアとして、成長の核となっています。
「技術コミュニティとは何か?」、「なぜ私はPHPコミュニティをここまで愛するのか?」という問いに対し、私の体験と感動を通じてその答えをお届けします。
ただ参加するだけではもったいない!このトークを通じて、「PHPコミュニティ人生をどうすれば200%楽しめるか」という秘訣を余すことなく解説します!
6年ぶりのPHPカンファレンス関西2024だからこそ聞いてほしいトークです!是非、この機会をお見逃しなく!!
Laravelで出来たアプリケーションの本番環境まだEC2使ってませんか?
OSのEOL対応、PHPのバージョンアップ、サーバ障害対応などEC2で管理していると保守するだけでも色々やらないといけない事が多いです。
Laravelアプリケーションをコンテナ化してECSにデプロイすることで、辛いサーバ管理から解放されましょう。
このトークでは、EC2で管理していたLaravelアプリケーションをECSに移行するために考える必要があるポイントや移行のために必要な手順、デプロイの仕組み、ECSで運用する際に便利だったツール(ecspresso)などをお話します。
想定聴講者は、EC2でLaravelアプリケーションを運用、移行検討してる方はもちろん、インフラとかよく分からないけど分かるようになりたいという方にもおすすめです。
アプリケーションのパフォーマンス改善目的で、データベースのカラムにインデックスを作成することはよくあるでしょう。
でも、インデックスにはいくつかの種類があることをご存知でしたか?
本トークでは MySQL の公式リファレンスをベースに、インデックスの種類とその使い方をおさらいしていきます。
知っているインデックスの種類が増えると、データベースのパフォーマンスをより引き出せるようになる、かもしれません。
このトークでは、LaravelのORMシステムであるEloquentのアクセサ・ミューテタが何か、またクエリビルダとの違いは何かについて、PHP初心者に向けてわかりやすく解説します!!
その後、Eloquentとクエリビルダを組み合わせて使用する際の注意点について、実際に起こった失敗談を紹介します。
そして、この失敗から得た教訓をもとに、同様の問題を避けるためにはどうしたら良いのかについても掘り下げます。
このトークを聞くことで、Laravelを利用しているけれどもEloquentとクエリビルダの違いが分かっていない方も、明日からその2つの違いを理解し、安全なデータベース操作ができるようになるでしょう!乞うご期待!
少し前にパスワードにまつわる「ハッシュ」と「ソルト」という言葉が話題になりました。
また「平文で保存していたパスワードが流出する」といった事件もたびたび耳にします。
パスワードの扱いについては、Web アプリケーションフレームワークを使っていればあまり意識することは無いかもしれません。
実際、意識しなくてもフレームワークがよしなにしてくれます。
でも、いったい「ハッシュ」や「ソルト」とは何なのか?
上述のような事件を起こさないよう、アプリケーション開発者としてしっかり押さえておくべきポイントをお話します。
今や Web API の設計として広く利用されている REST API ですが、下記のような弱点が存在します。
上記の弱点を克服する手法として、 GraphQL があります。
GraphQL は従来の REST API とは異なり、クライアントが クエリ を用いてデータの取得や操作をします。
本トークでは、 GraphQL の基礎を説明し、 Lighthouse を利用して GraphQL サーバーを Laravel 上で実装する方法を紹介します。
GraphQL に興味があるけれど触ったことがない方々に、 GraphQL を始めるきっかけとなれば幸いです。
フレームワークに備わっているようなクエリビルダや ORM、便利ですね。
一方で「この SQL 文はクエリビルダの機能では表現できないな」「長年使われてきた秘伝の SQL 文があってな......」といったケースで生の SQL 文を使わざるを得ない、というケースがあるかもしれません。
そこで今回は以下の 3 つの手段で生 SQL を扱う方法を説明します。
Web アプリケーションフレームワークを使ったプロジェクトを新規作成し、自動生成されるファイル郡の中にある config というファイルまたはディレクトリ。
いったいこいつは何なのか?
どうやら項目を自分でも追加できるようだが、一体何を追加してよくて、何を追加すべきでないのか。
本トークはそんな疑問にお答えします。
不具合が確認され、丸一日かけて調査したら原因はうっかりミスによる構文エラーだった.......そんな経験ありませんか?
「そんなうっかりミスを実行する前に気づけたらいいな」そう思ったあなたにお勧めするのが静的解析です!
本トークでは PHP 静的解析ツールの一例として PHPStan を取り上げて、それが使えるとどんなことがいいのかをお話します。
フレームワークのドキュメントに従って、あるいはプロジェクトの既存のコードに従ってファイル上部に書いた「namespace」「use」といったキーワード。
この意味、正しく理解していますか?
「ディレクトリ名と対応させて書くやつ」「他の言語でいう import みたいなやつでしょ?」みたいな認識をしていませんか?
実は PHP の機能としては namespace(名前空間)とディレクトリ名、ファイル名には一切の関係はありません!
「じゃあ、なんで require とかを書かずに他のファイルに定義したクラスを使えているの?」と思ったあなたに、その仕組みと、それらを支えている存在をお教えします。
コードで扱われる関数の分け方の基準として凝集度と結合度というものがあります。
これらは構造化プログラミングの文脈において提唱されている概念であり、オブジェクト指向プログラミングにおける様々なデザインパターンやSOLID原則を理解する上でも重要なものです。
このトークではPHPで書かれた具体例をもとに、凝集度と結合度についてお話します。
入社して2年経った際に初めてのPLを任されました。
それまではプロジェクトの開発のみだったり、プロジェクトに満たない作業だったりのみしか経験していなかったのですが、
初めてプロジェクトのPLをやることになりました。
自分での振り返りも含めて、その際の失敗談や学びを共有したいと思います。
PHPerの皆さんなら、不意にLaravel触りたいな〜と思うことありますよね。
そんな時、どのような方法で環境構築を行いますか?
上記どの方法でも、環境構築をすることは可能ですが、結構時間かかるはずです。
このトークでは、以下の制約を基に"5分"でLaravelを使ったWebアプリケーションを作成してみます。
制約
「Laravel開発を始めるのって簡単だな!」と思ってもらえるように頑張ります。