DDDにおけるエンティティと値オブジェクトの構造と実装(TypeScript)
TypeScriptのコード例に解説コメントを添え、エンティティと値オブジェクトの構造的違いと役割を整理する。
日本語で書いた記事は全てこのカテゴリにまとめています。
TypeScriptのコード例に解説コメントを添え、エンティティと値オブジェクトの構造的違いと役割を整理する。
ARPによるMACアドレス解決のフローと、192.168帯のIP重複によって発生する通信トラブルの回避策についてのメモです。
未マージブランチからの切り替えミスにより、異なるタスクのコミットが同一PRに混入した問題の備忘録。原因と再発防止策としてのトピックブランチ運用のルールをまとめました。
GitHubのプルリク、Vercelのデプロイ、そして自動テスト。これらがどう連携して本番へリリースされるのか。Gitのブランチ構造や、コンフリクト(衝突)が発生した際の自動テストの挙動を踏まえ、リリースに至る一連のプロセスを論理的に解説します。
Next.jsでlocalStorageやwindow、documentを使おうとしてエラーに直面したことはありませんか?その原因は、サーバー側(SSR)とブラウザ側の「HTML組み立ての仕組み」の違いにあります。SSRの本質と、なぜClient Componentにする必要があるのかを論理的に解説します。
仮想化における3つの方式(ハイパーバイザー型・ホスト型・コンテナ型)の本質的な違いと、それぞれの導入目的を構造的に整理。あわせてWSL2の通信構造の仕組みについても論理的に解説。
Riverpod や Flutter Hooks を使う前に理解しておきたい、StatefulWidget の内部構造と State・Element・Widget ツリー・setState の関係をわかりやすく整理した解説記事です。
Flutter Web を本番サーバーに安全デプロイする方法を解説。SSH・rsync・vim を使った実務的なベストプラクティスをまとめました。ローカルから本番へ安全に反映したい人向けの完全ガイドです。
普段使っているターミナルから離れずにAIにサクッと質問できたら便利だな、と思いGemini CLIをインストールしてみました。 インストール要件を調べるとNode.js v20以降が必要とのこと。そこで、最新LTS版であるv22をインストールすることにしました。ただ、Ubuntu標準のNode.jsはバージョンが古いため、リポジトリを追加してバージョンアップする必要がありました。 今回はその手順をブログに残しておきます。 手順1:古いNode.jsのアンインストール まず、競合を避けるために、Ubuntuに標準で入っている古いNode.jsをアンインストールしておきましょう。 あわせて sudo apt autoremove を実行して、不要な依存パッケージも掃除しておくとクリーンな状態になります。 手順2:NodeSourceリポジトリの追加 Node.jsの最新版は、NodeSourceというリポジトリからインストールするのが一般的です。公式サイトの手順はこちらです: https://nodesource.com/products/distributions リポジトリ追加用のスクリプトをダウンロードするために、curlコマンドを使います。入っていない場合は、先にインストールしておきましょう。 続いて、curlでセットアップスクリプトを実行し、Node.js v22のリポジトリをシステムに追加します。 手順3:Node.js v22のインストール リポジトリの準備ができたので、aptコマンドでNode.js v22をインストールします。 インストール後、node -v コマンドを打って、バージョンが “v22” で始まっていれば成功です。 手順4:Gemini CLIのインストール いよいよGemini CLI本体をインストールします。npmを使い、グローバル(-g)にイン ストールするためsudoを付けて実行します。 最後に – 使ってみた感想 これまでは、AIにちょっとしたことを聞きたいだけでも、いちいちブラウザに移動するのが地味にストレスでした。Gemini CLIを導入してからは、そのストレスから解放され、すべての作業がターミナル上で完結するようになり、とても快適になりました。返答がターミナルに表示されるだけでなく、テキストファイルとして出力してもらうこともできるので、ブラウザ上のチャットAIを使用するよりも便利です。
Vimにおける「U」アンドゥコマンドの挙動について カーソルを別の行に移動すると「U」の挙動が変わる Vimtutorのアンドゥに関するレッスンで練習していたとき、「U」を押しても何も起こらないことがあり、困惑しました。調べてみると、「U」コマンドは、カーソルがその行に移動してから行った変更のみを元に戻すことがわかりました。 つまり、誤って「j」や「k」を押して別の行に移動し、すぐに戻ってきた場合でも、「U」は期待通りに動作しません。カーソルが一度でもその行を離れると、変更履歴がリセットされてしまうのです。 慎重なタイピングを心がけることで、「U」が意図通りに動作するようになります。Vimの操作に慣れていくことで、こうした問題に遭遇することも少なくなるでしょう。