Doctrine ORM vs Eloquent:PHPのORM設計思想を比較する新着!!
PHPで代表的なORMといえば、Symfony圏で標準的に使われる Doctrine ORM と、Laravelに標準搭載される Eloquent の2つです。どちらもデータベースアクセスを抽象化する道具ですが、その設計思想は正反対と言って…
React Router v7 のルーティング設計:入門から実践まで新着!!
React Router v7 は、これまで Remix が担っていたフルスタック機能を取り込み、「ライブラリとしても」「フレームワークとしても」使えるルーターへと進化しました。本記事では React Router をはじめて触る方に向けて…
AIにコードを生成させる際のプロンプト設計パターン
AIコーディングアシスタント(LLMベースのコード生成)を日常的に使うなかで、「どう書くか」以上に「何をどう指示するか」で成果物の質が決まることを強く実感するようになりました。本稿では、コード生成を依頼するときのプロンプトを、その場の思いつ…
PredisとRedisではじめるPHPアプリのキャッシュ設計入門
PHPアプリケーションでデータベースへのアクセスが増えると、同じクエリを繰り返し実行してレスポンスが遅くなる、という課題に直面します。本記事では、PHP向けのRedisクライアント Predis を使って、Redisをキャッシュ層として組み…
Python の例外設計 — カスタム例外クラスの作り方
Python でアプリケーションを書いていると、ValueError や RuntimeError といった組み込み例外をそのまま投げる場面が増えてきます。小さなスクリプトならそれで十分ですが、規模が大きくなると「この例外はどこから来たのか…
Monologでログ設計:ハンドラとチャンネルを使いこなす
PHPのデファクトなロギングライブラリ Monolog は、「ハンドラ(Handler)」「フォーマッタ(Formatter)」「プロセッサ(Processor)」「チャンネル(Channel)」という4つの部品の組み合わせで動きます。この…
複合インデックスの設計とカーディナリティ入門
テーブルにインデックスを張ったのにクエリが速くならない。あるいはインデックスはあるのにスキャン行数が減らない。こうした状況の多くは、「複合インデックスの列順」と「カーディナリティ」への理解不足から生まれます。
インデックスの仕組みと設計原則:入門
「SELECT が遅い」「件数が増えたら急に重くなった」——こうした悩みの多くはインデックス設計で解決できます。本記事では、RDB(MySQL / PostgreSQL を想定)のインデックスがどう動くのかを、B-Tree の仕組みから設計…
レガシー移行を「読み取り範囲を絞ったAIエージェント編成」で回す設計
10年もののレガシーモノリス(旧世代の PHP / Laravel)を、複数のマイクロサービス(Laravel 12)+ Vue 3 フロントエンドへ移行する案件を担当している。移行対象は数百エンドポイント、共有モデルは600超。人間ひとり…
外部キーと参照整合性の設計:入門から実務判断まで
リレーショナルデータベースでは、複数のテーブルが「参照」で結びついています。注文テーブルの userid はユーザーテーブルの誰かを指し、注文明細の orderid はどこかの注文を指します。この「指す・指される」の関係が壊れると、どのユー…
