【MySQL】インデックスの仕組みと設計方法|EXPLAIN・複合インデックス・パフォーマンス改善の実践
MySQL のクエリが遅いとき、とりあえずインデックスを追加していませんか。
インデックスは検索を速くするための重要な仕組みですが、貼り方を間違えると期待したほど効かなかったり、書き込みやストレージの負担が増えたりします。 ...
【Laravel】マイグレーションの書き方完全ガイド|カラム型一覧・インデックス・外部キー設定
Laravel で機能を追加するとき、「どのカラム型を選ぶべきか」「インデックスはどこで貼るのか」「外部キーは foreignId と constrained だけでよいのか」で迷う場面があります。
マイグレーションは、デ ...
【Laravel】Facadeとは何か|仕組み・使い方・独自Facadeの作成方法
Cache::get() や Log::info() のような書き方を見ると、「Laravel は static メソッドだらけなのか」「テストしづらくならないのか」と不安になることがあります。見た目は static 呼び出しでも、L ...
【Laravel】テストの書き方入門|Feature Test・Unit Test・FactoryとFakerの使い方
動いている画面を少し直しただけのつもりが、ログイン後の導線や保存処理を壊してしまうことがあります。手元でブラウザを開いて確認しても、毎回同じ手順を漏れなく試すのは難しく、修正が増えるほど不安が残りがちです。
Laravel ...
【Laravel】キューとジョブの使い方入門|Queue・Job・Workerの仕組みと実装方法
HTTP リクエストの中でメール送信、帳票生成、外部 API 呼び出しを抱え込むと、ユーザーは画面の完了を待たされます。処理が伸びたときはタイムアウトや二重送信も起きやすくなり、失敗時の再実行もコントローラ内だけでは扱いづらくなります ...
【PHP】trait(トレイト)の使い方|コードの再利用と多重継承の代替パターン
複数の Eloquent モデルに同じローカルスコープやミューテータをコピペしていませんか。筆者も、共通条件を複数モデルへそのまま写したあと、片方だけ修正漏れがあり、本番では期待と異なる挙動になった経験があります。チーム開発でも同様の ...
【Laravel】ミドルウェアの作成と使い方|認証・ログ・レート制限の実装パターン
「ログインチェックをコントローラの先頭に書いていたら、気づけば10本以上のコントローラに同じコードが散らばっていた」──実務でよく見る状況です。認証・ログ出力・レート制限は要件としては別々でも、HTTP の入口では必ず組み合わさって現 ...
【AWS】S3の静的ウェブサイトホスティング完全ガイド|CloudFrontとの組み合わせ設定
「EC2でサーバーを動かし続けるのはコストがもったいない」「静的サイトならもっと安く運用できるはず」
そう思って S3 の静的ホスティングを調べ始めたものの、S3 単体の設定だけでは HTTPS が使えない、ディレクトリ形 ...
【MySQL】EXPLAINの読み方とSLOW QUERYの改善方法|インデックスチューニング実践
「このクエリ、なんでこんなに遅いんだろう…」
本番で突然レスポンスが遅くなり、ログを漁っていたら数秒かかっているSQLを発見した、という経験は誰でも一度はあるはずです。
MySQLのチューニングで最初に使うのが ...
【PHP】例外処理(try-catch-finally)の使い方|カスタム例外クラスの作り方も解説
PHP でプログラムを書いていると、ファイル読み込みや外部 API 呼び出しなど「失敗する可能性のある処理」を扱う場面が必ずあります。こうした処理を安全に扱うための仕組みが例外(Exception)であり、try・catch・fina ...