JavaScriptシングルトンパターン入門:クラス版とES Modules版を比較する

JavaScriptシングルトンパターン入門:クラス版とES Modules版を比較する GoFのデザインパターンはオブジェクト指向言語(Java/C++)を前提に設計されています。 JavaScriptに持ち込むとき、「クラスで書くべきか」「もっとJSらしい書き方があるか」は悩みど…

Node.js LTS 版の選び方とインストール:Current との違いまとめ

Node.js LTS 版の選び方とインストール:Current との違いまとめ Node.js には LTS(長期サポート版) と Current(最新版) の2種類があります。インストールするときにどちらを選べばよいか迷うことがありますが、基本的には LTS を選んでおけば問題ありま…

git worktree コマンド入門:ブランチを並行して作業する方法

git worktree コマンド入門:ブランチを並行して作業する方法 git worktree は複数のブランチを同時にチェックアウトして作業できるコマンドです。通常はブランチを切り替えると作業中のファイルも変わりますが、worktree を使うと別ディレクトリに別ブラン…

Hono + Zod + OpenAPI で Swagger UI を自動生成する

Hono + Zod + OpenAPI で Swagger UI を自動生成する Hono は軽量な TypeScript 向け Web フレームワークです。@hono/zod-openapi を使うと、Zod スキーマを書くだけで OpenAPI 仕様(Swagger)が自動生成されます。APIドキュメントを手書きする必要がなくな…

tRPC + Zod でフロントとバックエンドの型を共有する

tRPC + Zod でフロントとバックエンドの型を共有する tRPC は TypeScript のフルスタックフレームワークで、Zod でAPIの入出力スキーマを定義するとフロントエンドに型が自動で伝わります。APIクライアントを手書きせず、型安全なAPI呼び出しができます。 早…

t3-env + Zod で .env を型安全にする設定方法

t3-env + Zod で .env を型安全にする設定方法 t3-env は環境変数を Zod スキーマで定義して型安全に使えるようにするライブラリです。.env の読み忘れや型ミスマッチをビルド時に検出できます。 早わかりまとめ 問題 t3-env + Zod で解決 process.env.FOO …

Next.js Server Actions + Zod でサーバーサイドバリデーション

Next.js Server Actions + Zod でサーバーサイドバリデーション Next.js の Server Actions でフォームデータを受け取るとき、Zod でバリデーションを入れると型安全に処理できます。クライアント・サーバーで同じスキーマを共有できるのが強みです。 早わか…

react-hook-form + Zod でフォームバリデーション入門

react-hook-form + Zod でフォームバリデーション入門 react-hook-form と zod を組み合わせると、フォームのバリデーションとエラーメッセージ表示を型安全に実装できます。zodResolver がスキーマとフォームをつなぐ役割を担います。 早わかりまとめ 役割 …

Zod 入門:z.object・z.infer・safeParse の使い方

Zod 入門:z.object・z.infer・safeParse の使い方 zod は TypeScript のバリデーションライブラリです。スキーマを定義するだけでバリデーションと型定義を同時に管理できるため、型の二重管理が不要になります。 早わかりまとめ メソッド 役割 z.object() …

TypeScript の interface と type:使い分けと実践パターン

TypeScript の interface と type:使い分けと実践パターン TypeScript でオブジェクトの型を定義するとき、interface と type のどちらを使えばいいか迷うことがあります。どちらも似たことができますが、できないことと得意な場面が違います。 早わかりま…

anyenv から mise に移行:Node.js・Ruby・Python の管理方法

anyenv から mise に移行:Node.js・Ruby・Python の管理方法 anyenv は nodenv・rbenv・pyenv などを一括管理するツールです。mise は anyenv と同じ役割を1ツールでこなせる上に高速で、現在の主流になりつつあります。この記事では anyenv 環境から mise …

uv 入門:pip より速い Python パッケージマネージャーの使い方

uv 入門:pip より速い Python パッケージマネージャーの使い方 uv は Rust 製の高速 Python パッケージマネージャーです。pip・pip-tools・venv の機能をまとめて置き換えられ、インストール速度は pip の 10〜100 倍とされています。 早わかりまとめ 操作 …

Ruby メソッドチェーン実践:select・map・inject の活用パターン

Ruby メソッドチェーン実践:select・map・inject の活用パターン Ruby の Enumerable メソッドはチェーンでつなぐことで、複雑な処理を宣言的かつ簡潔に書けます。実際のコードでよく登場するパターンをまとめます。 カートの合計金額を計算する 在庫あり・…

JavaScript 配列の実践:filter・map・reduce のチェーン活用例

JavaScript 配列の実践:filter・map・reduce のチェーン活用例 filter・map・reduce は単体でも使いますが、メソッドチェーンで組み合わせると複雑な処理を簡潔に書けます。実際のコードでよく登場するパターンをまとめます。 カートの合計金額を計算する …

Ruby 配列のソート:sort と sort_by の使い分け

Ruby 配列のソート:sort と sort_by の使い分け Ruby で配列を並べ替えるには sort と sort_by を使います。単純な並べ替えは sort、オブジェクトの特定の値でソートするなら sort_by が便利です。 早わかりまとめ メソッド 向いている用途 sort 要素を直接…

Ruby ハッシュの繰り返し:each・map・select の使い方

Ruby ハッシュの繰り返し:each・map・select の使い方 ハッシュのキーと値を繰り返し処理するには each・map・select などを使います。配列とほぼ同じメソッドが使えます。 早わかりまとめ メソッド 戻り値 向いている用途 each self キーと値を繰り返し処…

Ruby 配列の変換・集計:map・inject・flat_map の使い方

Ruby 配列の変換・集計:map・inject・flat_map の使い方 配列を別の形に変換したり、合計・グループ化したりするには map・inject・flat_map を使います。 早わかりまとめ メソッド 戻り値 向いている用途 map / collect 配列 各要素を変換した新しい配列を…

Ruby 配列の絞り込み:select・reject・find の使い方

Ruby 配列の絞り込み:select・reject・find の使い方 配列から「条件に合う要素だけ取り出す」には select・reject・find などを使います。 早わかりまとめ メソッド 戻り値 向いている用途 select / filter 配列 条件に合う要素をすべて取り出す reject 配…

Ruby の繰り返し処理:each・times・map の使い分け

Ruby の繰り返し処理:each・times・map の使い分け Ruby の繰り返し処理は each・times・map などのメソッドで書きます。for 文より簡潔で Ruby らしい書き方になります。 早わかりまとめ メソッド 向いている用途 each 配列・ハッシュの全要素を処理する t…

JavaScript Promise の並列処理:all・allSettled・race の使い方

JavaScript Promise の並列処理:all・allSettled・race の使い方 複数の非同期処理を並列で実行するには Promise.all・Promise.allSettled・Promise.race・Promise.any を使います。 早わかりまとめ メソッド 解決タイミング 失敗時の挙動 Promise.all 全件…

JavaScript オブジェクトをループする:keys・values・entries

JavaScript オブジェクトをループする:keys・values・entries オブジェクトのキーや値を繰り返し処理するには Object.keys()・Object.values()・Object.entries() を使います。 早わかりまとめ メソッド 返す内容 向いている用途 Object.keys() キーの配列 …

JavaScript 配列の変換・集計:map・reduce・flatMap の使い方

JavaScript 配列の変換・集計:map・reduce・flatMap の使い方 配列を別の形に変換したり、合計・グループ化したりするには map・reduce・flatMap を使います。 早わかりまとめ メソッド 戻り値 向いている用途 map 新しい配列 各要素を変換した配列を作る r…

JavaScript 配列の絞り込み:filter・find・some の使い方

JavaScript 配列の絞り込み:filter・find・some の使い方 配列から「条件に合う要素だけ取り出す」には filter・find・findIndex・some・every を使います。何を確認したいかによって使い分けます。 早わかりまとめ メソッド 戻り値 向いている用途 filter …

JavaScript 配列の繰り返し:forEach・map・for...of の使い分け

JavaScript 配列の繰り返し:forEach・map・for...of の使い分け 配列の各要素に対して処理するには forEach・map・for...of がよく使われます。何をしたいかによって使い分けます。 早わかりまとめ メソッド 戻り値 向いている用途 forEach なし(undefined…

環境変数をインラインで指定する:KEY=value コマンドの使い方

環境変数をインラインで指定する:KEY=value コマンドの使い方 KEY=value command の形式でコマンドの前に環境変数を書くと、そのコマンドだけに環境変数を渡せます。アプリの起動オプションを切り替えるときによく使います。 PORT=8080 npm run dev NODE_EN…

.nvmrc の書き方:nvm use の自動化とチームでのバージョン固定

.nvmrc の書き方:nvm use の自動化とチームでのバージョン固定 # .nvmrc の中身:バージョン文字列を1行書くだけ echo "20.11.0" > .nvmrc # .nvmrc のバージョンに切り替える nvm use # Now using node v20.11.0 .nvmrc はプロジェクトで使う Node.js バー…

nvm の使い方:Node.js のインストールとバージョン切り替え手順

nvm の使い方:Node.js のインストールとバージョン切り替え手順 nvm(Node Version Manager)は複数の Node.js バージョンをコマンド一つで切り替えられるツールです。プロジェクトごとに異なるバージョンを使い分けるときに役立ちます。 インストール macO…

cargo run --bin の使い方:複数バイナリの実行と指定方法

cargo run --bin の使い方:複数バイナリの実行と指定方法 Rust プロジェクトに複数のバイナリがある場合、cargo run --bin で実行するバイナリを指定します。 基本的な使い方 # バイナリ名を指定して実行 cargo run --bin バイナリ名 # 引数を渡す場合は --…

ps コマンドの使い方:Linux でプロセス一覧を確認・絞り込む方法

ps コマンドの使い方:Linux でプロセス一覧を確認・絞り込む方法 ps(process status)は実行中のプロセスを一覧表示するコマンドです。どのプロセスが動いているか、CPU やメモリをどれだけ使っているかを確認できます。 基本:よく使う2パターン # BSD ス…

Linux・Mac のリソース確認コマンド:free・df・uname・lscpu まとめ

Linux・Mac のリソース確認コマンド:free・df・uname・lscpu まとめ サーバーや開発環境の状態を把握するときに使うコマンドをまとめます。メモリ・ディスク・CPU・アーキテクチャの情報を素早く確認できます。 OS・アーキテクチャを確認する(uname) まず…