GitHubが提供するCI/CDサービス 「GitHub Actions」。
ドキュメントが充実していて簡単に使い始められる反面、ジョブが終わらなくてキャパを食い尽くしてしまったり、GitHub Actionsが障害中でCI/CDが出来ない、などのトラブルも耳にします。
本トークでは数多のプロジェクトでGitHub Actionsと戯れときに事故に向き合ってきた体験をもとに、GitHub Actionsを使うときにやっておくと良い設定をご紹介します。
Laravelは良くも悪くも雰囲気で書けてしまう反面、実は予期せぬ振る舞いをしていたり、パフォーマンスの悪いコードを書いてしまう恐れがあります。
本トークではLaravelでやりがちな間違いを取り上げて「これは」「こうすると良い」という話をします。
PHP を含む、クラスベースのオブジェクト指向プログラミング機能を持つ言語(あるいはそれ以外の言語でも)インターフェースを利用できます。
アプリケーションの実装上の設計を考えたことがある人は、インターフェースが使えると何が嬉しいのか?どんな場面で使えばよいのか?と思ったことがあるのではないでしょうか。
本トークでは、また設計の文脈で聞いたことがあるかもしれない「腐敗防止層」というワードとともにインターフェースの使い方、ひいては設計全般に通用する考え方をお話します。
以下を満たす方が聴講することを想定します。
みなさんはシステム障害が起きた時、どのように調査を行いますか?
根拠となるデータを元に仮説を立てて検証するというのがセオリーですが、時に必要なデータが無くて行き詰まったり、経験則や自身の勘に頼ってしまいがち、という事もあると思います。
ログ・メトリクス・トレースはシステムの状態を可視化するデータ(テレメトリーデータ)の代表格で、これらを上手く活用することにより事実に基づいて仮説・検証プロセスを回すことができます。このようにして、どれだけ複雑なシステムであっても理解しやすい状態にすること、いわゆるオブザーバビリティを高めることが近年注目されています。
OpenTelemetryはこれらのデータを収集するためのツールとして登場し、これによってオブザーバビリティを高めやすくなってきています。そして、OpenTelemetry PHPが最近GAされ、PHPにもオブザーバビリティの波がやってきました。
本セッションではまずOpenTelemetryについて紹介し、サンプルアプリケーションを通じてPHPでテレメトリーデータを収集・分析する方法を見ることで、オブザーバビリティを体感する場にできればと思っています。
オブザーバビリティ入門したい方
オブザーバビリティは知っているが、PHPでの実践方法について知りたい方
アプリケーションのパフォーマンス改善目的で、データベースのカラムにインデックスを作成することはよくあるでしょう。
でも、インデックスにはいくつかの種類があることをご存知でしたか?
本トークでは MySQL の公式リファレンスをベースに、インデックスの種類とその使い方をおさらいしていきます。
知っているインデックスの種類が増えると、データベースのパフォーマンスをより引き出せるようになる、かもしれません。
少し前にパスワードにまつわる「ハッシュ」と「ソルト」という言葉が話題になりました。
また「平文で保存していたパスワードが流出する」といった事件もたびたび耳にします。
パスワードの扱いについては、Web アプリケーションフレームワークを使っていればあまり意識することは無いかもしれません。
実際、意識しなくてもフレームワークがよしなにしてくれます。
でも、いったい「ハッシュ」や「ソルト」とは何なのか?
上述のような事件を起こさないよう、アプリケーション開発者としてしっかり押さえておくべきポイントをお話します。
フレームワークに備わっているようなクエリビルダや ORM、便利ですね。
一方で「この SQL 文はクエリビルダの機能では表現できないな」「長年使われてきた秘伝の SQL 文があってな......」といったケースで生の SQL 文を使わざるを得ない、というケースがあるかもしれません。
そこで今回は以下の 3 つの手段で生 SQL を扱う方法を説明します。
このLTは初参加・初スタッフしたらカンファレンスの運営で工夫している点を見れて、人見知りが色んな人と話せて良かった話をします。
PHP カンファレンス 2023に興味があり、所属している会社がシルバースポンサーをしていたため、参加しました。
スタッフとして参加することで、会場の設営・司会・スケジュールの組み方・人員配置・会場のネットワーク構成等の大規模カンファレンスの裏側を経験しました。
初参加する前は人見知りでカンファレンスのスタッフになることに躊躇していましたが、スタッフをやったことが無い人も参加して見て、スタッフの良さを体験してみてください。
Laravelで出来たアプリケーションの本番環境まだEC2使ってませんか?
OSのEOL対応、PHPのバージョンアップ、サーバ障害対応などEC2で管理していると保守するだけでも色々やらないといけない事が多いです。
Laravelアプリケーションをコンテナ化してECSにデプロイすることで、辛いサーバ管理から解放されましょう。
このトークでは、EC2で管理していたLaravelアプリケーションをECSに移行するために考える必要があるポイントや移行のために必要な手順、デプロイの仕組み、ECSで運用する際に便利だったツール(ecspresso)などをお話します。
想定聴講者は、EC2でLaravelアプリケーションを運用、移行検討してる方はもちろん、インフラとかよく分からないけど分かるようになりたいという方にもおすすめです。
Web アプリケーションフレームワークを使ったプロジェクトを新規作成し、自動生成されるファイル郡の中にある config というファイルまたはディレクトリ。
いったいこいつは何なのか?
どうやら項目を自分でも追加できるようだが、一体何を追加してよくて、何を追加すべきでないのか。
本トークはそんな疑問にお答えします。
不具合が確認され、丸一日かけて調査したら原因はうっかりミスによる構文エラーだった.......そんな経験ありませんか?
「そんなうっかりミスを実行する前に気づけたらいいな」そう思ったあなたにお勧めするのが静的解析です!
本トークでは PHP 静的解析ツールの一例として PHPStan を取り上げて、それが使えるとどんなことがいいのかをお話します。
フレームワークのドキュメントに従って、あるいはプロジェクトの既存のコードに従ってファイル上部に書いた「namespace」「use」といったキーワード。
この意味、正しく理解していますか?
「ディレクトリ名と対応させて書くやつ」「他の言語でいう import みたいなやつでしょ?」みたいな認識をしていませんか?
実は PHP の機能としては namespace(名前空間)とディレクトリ名、ファイル名には一切の関係はありません!
「じゃあ、なんで require とかを書かずに他のファイルに定義したクラスを使えているの?」と思ったあなたに、その仕組みと、それらを支えている存在をお教えします。
PHPにも多種多様なフレームワークがあります。
LaravelやCakePHPなどを思い浮かべる方が多いと思いますが、弊社では「BEAR.Sunday」を使用してシステム開発を行っております。
私はPHP/Laravelについては多少知識がありましたが、入社するまでBEAR.Sundayについて知りませんでした。
実務である程度触れてみて他のフレームワークとの違いについて意識するようになり、
MVCパターンではなく、リソース指向という考え方があることを知りました。
LaravelなどのMVCフレームワークとは異なり、
BEAR.SundayはAPI中心のRESTfulアプリケーションのフレームワークを提供することを目標としており、
リソース指向のResource-Method-Representationパターンを採用しています。
本LTではBEAR.Sundayの特徴や設計思想、実際のコードの書き方の違い等をLaravelと比較して解説します。
リソース指向の概念を初学者の立場から、どのように掴んだかまとめることで、
MVCで書く時との具体的な違いについてお話できたらと思います。
本LTを通じて一般的なMVCフレームワークとは一味違う考え方や視点をお届けします。
対象者
【概要】
Unityはゲーム開発者でなくても知ってる人も多いプラットフォームで、高いカスタマイズ性と豊富な機能を備えています。
実はLaravelとUnityはとてもよく似ていることをご存じですか?
この二つは全く異なる用途に使われますが、設計思想や開発アプローチには共通しているものが多くあるのです!
このLTではこの二つを比較し、言語・フレームワークを超えて使える技術・設計についてお話します。
【想定視聴者】
・設計思想や開発アプローチなど、言語にとらわれず使えるスキルに興味があるlaravelユーザー
「君の担当プロダクト、圧倒的に障害発生率が高いよねえ」
誕生から5年が経過し、新機能の追加に焦点を当ててきた結果、社内で一番障害が発生してしまっているプロダクトがありました。
このセッションでは、テストコードが(ほぼ)存在しない状態のプロダクトに、どのようにテストコードを導入していったかについて、実践的な視点からお話しします。
下記どれかに当てはまる点がある方にご視聴をお勧めします。
・機能追加の圧が強すぎてテストコードなんて書いてられない
・既存のコードを大きく変更するのが怖い
・なぜか毎日障害の問い合わせがくる
今では新機能を不安なくリリースできていますが、これもテストコードを導入したおかげです。
テストコードを無理なく導入してみんなで幸せな開発ライフを送りましょう。
私が開発を担当しているサービスでは Laravel をフレームワークとして採用しています。
Laravel が提供している認証機構は、通常ほとんどのニーズを満たせるほど充実しています。
しかし、現場では「独自の認証方法を追加したい!」というニーズが発生することも多々あると思います。
私はつい最近、そのようなニーズに合わせて Laravel の認証機能を探求し、独自の UserProvider を作成しました。認証機能を探求して分かったことやカスタマイズのプロセス、全体を通しての気づきについて共有したいと思います。
みなさん、PHPを初めて学んだ時に感じた「?」を覚えていますか?
私の所属する開発チームでは、PHPマニュアルの精読を始めました。
精読してみて改めて感じたPHP独自の魅力について、皆さんに共有したいと思います。
このセッションでは、PHPの特殊な機能、他のプログラミング言語との比較、その機能ができた背景について、私なりに調べた結果や考察を発表します。
対象者:
みなさん、PHPを初めて学んだ時に感じた「?」を覚えていますか?
私の所属する開発チームでは、PHPマニュアルの精読を始めました。
精読してみて改めて感じたPHP独自の魅力について、皆さんに共有したいと思います。
このセッションでは、PHPの特殊な機能、他のプログラミング言語との比較、その機能ができた背景について、私なりに調べた結果や考察を発表します。
対象者:
Apache Solr(以後Solr)という名前を聞いたことがある人は全文検索用に使うやつでしょ?というイメージが強いのではないかと思います。
Solrは全文検索だけではありません。なかなかイケてる検索もできます。
ただRDBとは違うので導入時に気をつけなければいけないこともあります。
Solrを使うとこんな検索が簡単にできるよというお話と、導入時のハマりどころについてお話できればと思います。
ちなみにSolrの読み方は「ソーラー」です。
話さないこと(LTでは話しきれないので・・・)
・Solrへのデータ登録方法
・Solrを運用するインフラ構成について
みなさんは、PHPでOfficeファイルを取り扱いと思ったことはありますか?
もちろん、ありますよね?
このLTでは、PHPでOfficeファイルを取り扱う方法と、実際にどのようにプロダクトに使用しているかをお伝えします!
このLTで話すこと
・PHPOfficeライブラリの基本的な使い方
・読み込んだOfficeファイルをどのように利用したか
・PHPOfficeライブラリの難点
話さないこと
・Officeファイルの仕様
・PHPOfficeの細かい使い方
このLTを聞いて、みなさんもPHPでOfficeファイルを扱えるようになりましょう!