カテゴリ

プログラミング

PHPやJavaScript、Pythonなどの実装メモやエラー対応、書き方の整理をまとめます。

まず押さえたいこと

言語や構文だけでなく、エラーの読み方、データの流れ、保守しやすい書き方まで含めて見ると理解が残りやすくなります。

よくある入口

API、データベース、認証、フレームワーク、開発環境まわりの記事から読むと、実務で出会いやすい問題につながります。

実務で見るポイント

動くコードだけで満足せず、例外時の挙動、ログ、テスト、あとから直す人が読めるかまで確認するのが大事です。

DBのdry run(ドライラン)とは?本番でUPDATE・マイグレーションを流す前の確認方法

DBのdry run(ドライラン)は、実際には変更せずに「実行したら何が起きるか」だけを確認することです。本番のUPDATE・DELETE・マイグレーション事故の多くは、実行前の数分で防げます。同じWHERE句でSELECTして件数を数える基本から、BEGIN→ROLLBACK、Laravelの migrate --pretend、pt-online-schema-changeやgh-ostのdry run、バックアップから復元してのリハーサルまで、確実さと手間の順に5段階で整理。MySQLのDDLは暗黙コミットでROLLBACKできないという重要な落とし穴も公式マニュアルの記述とあわせて解説します。

RDBMSパフォーマンスチューニングの基礎|SQL・索引・キャッシュの順で考える

RDBMS(MySQL・PostgreSQL・Oracleなど)のパフォーマンスチューニングの基礎を、共通する考え方として整理します。鉄則は「安くて効果の大きい順」に手を打つこと。まず推測せず実行計画やスロークエリで測り、次にSQLと呼び出し側のプログラム(N+1や取りすぎ)を疑い、それから索引(インデックス)を付け、どうしてもダメなら非正規化・マテリアライズドビュー・キャッシュを検討します。なぜこの順番なのか、なぜ主要RDBMSで共通なのか(コストベース最適化・統計情報・B-treeインデックス)まで、初心者にも分かるように解説します。

テレメトリとは?ソフトウェアの自動データ収集を初心者向けに解説

テレメトリとは何かを、ソフトウェアの自動データ収集という観点で初心者向けに解説します。テレメトリは「遠隔(tele)+測定(metron)」が語源で、離れた場所のデータを自動で集めて送る仕組みのこと。ソフトウェアでは、アプリやサーバーの状態・使われ方を自動収集することを指し、主にメトリクス・ログ・トレースの3種類のデータが柱になります。これが可観測性(observability)や監視の土台で、標準化の仕組みがOpenTelemetryです。もう一つの文脈である「製品の利用データ収集とプライバシー(オプトアウト)」まで整理します。

OSSライセンスの種類とは?寛容型とコピーレフトの違いを一覧で解説

OSSライセンスの種類を、寛容型(permissive)とコピーレフト(copyleft)の違いを軸に一覧で解説します。大きく分けると、MIT・Apache 2.0・BSDのような「改変も商用利用も自由で、自分のコードは公開しなくてよい」寛容型と、GPL・LGPL・MPL・AGPLのような「改変版を配布するなら同じ条件で公開する」コピーレフト型があります。各ライセンスの特徴、Apacheの特許条項、AGPLとSaaSの落とし穴、商用プロダクトで使うときの選び方まで、初心者にも分かるように整理します。

Better Authとは?自前で持つTypeScript認証フレームワークとAuth.jsとの関係

Better Authとは何かを、自前で持つTypeScript認証フレームワークという観点と、Auth.jsとの関係から整理します。Better Authは、認証を外部サービスに預けず、自分のコードとデータベースの中に実装するためのフレームワーク非依存なライブラリです。2要素認証・パスキー・組織・SSO・レート制限などが最初から揃い、MITライセンスで無料。長年定番だったAuth.js(旧NextAuth)がBetter Authチームの管理下に入り、新規はBetter Authが推奨される流れになりました。Clerkとの違いや向いている場面まで解説します。

Tursoとは?SQLite互換の分散データベースと埋め込みレプリカ

Tursoとは何かを、SQLite互換の分散データベースと埋め込みレプリカという観点で解説します。Tursoは、SQLiteをベースに、レプリケーションやエッジ配置、大量の小さなDBの作成を可能にしたデータベースです。ユーザーごとにDBを分ける「埋め込みレプリカ」でローカル並みに速い読み取りを実現し、ベクトル検索も内蔵するためAIエージェント時代の用途に向きます。SQLiteフォークのlibSQLと、Rustで書き直された新しいTurso Databaseという2つの柱、SQLiteとの関係、向いている場面まで整理します。

Neonとは?サーバーレスPostgresの特徴(ブランチング・scale-to-zero)

Neonとは何かを、サーバーレスPostgresの特徴(ブランチング・scale-to-zero)から整理します。Neonは、ストレージとコンピュートを分離した設計により、使っていないときは自動で止まって料金がゼロになる「scale-to-zero」や、Gitのようにデータベースを分岐できる「ブランチング」を実現したPostgreSQLサービスです。2025年にDatabricksが約10億ドルで買収したことでも注目されました。特徴や向いている場面、Supabaseとの違いまで、AIにNeonを含む構成を渡された人にも役立つよう解説します。

Vercel AI SDKとは?プロバイダを問わずAIアプリを作るTypeScriptツールキット

Vercel AI SDKとは何かを、プロバイダを問わずAIアプリを作るTypeScriptツールキットという観点で解説します。OpenAI・Anthropic Claude・Google Geminiなど複数のLLMを、ほぼ同じコードで呼び出せる統一APIが特徴で、テキスト生成・ストリーミング・チャットUI・ツール呼び出し・構造化出力を型安全に扱えます。Next.jsの開発元による無料のオープンソースで、AIチャットやエージェントを素早く作れます。主要なAPIやAI SDK 7の新機能、向いている場面まで、AIにAI SDKを含む構成を渡された人にも役立つよう整理します。

Clerkとは?UIまで用意された認証サービスと、認証の選び方

Clerkとは何かを、UIまで用意された認証サービスという観点と、認証の選び方から整理します。Clerkは、サインイン画面やユーザー管理画面、ソーシャルログイン、多要素認証、組織機能などを、コンポーネントを置くだけで導入できるマネージド認証サービスです。自前で作ると重い認証まわりを一気に省けるため、MVPやSaaSの立ち上げで人気です。無料枠や料金の考え方、Auth.js(NextAuth)やBetter Auth、Supabase Authとの選び分け、データの持ち方やロックインの注意点まで、AIに認証を含む構成を渡された人にも役立つよう解説します。