記事一覧
技術記事・日々の学びをまとめています。
凝集度と結合度とは|良い設計を支える2つの指標
ソフトウェア設計の指標である凝集度と結合度を解説。凝集度の7段階(偶発的〜機能的)と結合度の6段階(内容〜データ)を、具体例とともに整理します。
最新記事
OPAを利用したアクセス制御のパターン
Open Policy Agent(OPA)を利用したアクセス制御の代表的なパターンを整理した記事。Allow/DenyやSQL生成、ASTを用いたアプローチなど複数のパターンを、特徴・適した用途・実装負荷の観点から比較し、責務分離をふまえて解説する。
Go製Git操作ツール『ggc』の紹介
ggcの全機能解説。CLI/インタラクティブ分離アーキテクチャ、Fuzzyサーチエンジンの実装、Workflow Mode内部構造、カスタマイズ可能なエイリアス、階層型キーバインドプロファイルシステム。
Goの並行・並列処理モデル|goroutineスケジューリング
Goの並行処理と並列処理の違いを解説。goroutineのスケジューリング、GOMAXPROCS、GMPモデル、OSスレッドとの関係、プリエンプションの仕組みをシーケンス図つきで紹介します。
OPAにおけるページネーションへの影響と解決策に関する検討
OPA(Open Policy Agent)を使ったアクセス制御において、ページネーションがもたらす影響とその解決策を検討した記事です。Regoで記述したポリシーによる許可・拒否の判定と、オフセットやカーソルによるページネーション、アクセス制御でのフィルタリングをどう両立させるかを整理します。
PostgreSQLのメモリ設定|shared_buffers・work_memの考え方
設定するPostgreSQLメモリ管理。shared_buffers、work_mem、maintenance_work_memの指針からOOM回避、性能向上まで段階的に解説します。
RubyとRailsのIO・CPU特性について
Ruby・RailsのI/O特性とパフォーマンスチューニングについて整理した記事です。RubyのGVL(Global VM Lock)による制約や、Pumaサーバのスレッド・プロセス設計、見かけのI/O待ちの実態、IO/CPUバウンドの捉え方をふまえ、計測にもとづいた適切な最適化の方針を示します。
設計の賞味期限を考える
システム設計に「正解」はなく、状況に応じた「最適な妥協」があるだけだという前提に立ち、「設計の賞味期限」という観点から設計の寿命をどう見積もるかを考えます。ビジネス・組織・プロダクト・技術の変化と制約、トレードオフを踏まえた意思決定のヒントを整理します。
スケーラビリティを計測する
スループット・レイテンシ・効率といった指標やアムダールの法則などの数理モデル、実践的なベンチマークで、システムのスケーラビリティを計測する方法を解説します。
クラウドネイティブ・アーキテクチャ 可用性と費用対効果を極める次世代設計の原則
クラウドネイティブ・アーキテクチャ 可用性と費用対効果を極める次世代設計の原則について、設計原則とトレードオフ、実践的な適用方法を詳しく解説します。
資産推移シミュレーターを作った
個人の資産形成を考えるためのツールとして開発した「資産推移シミュレーター」を紹介する記事。積立や運用による資産の推移をシミュレーションできるツールをつくった経緯や、その使い方・考え方を整理する。
アーキテクチャドキュメントを書くときに気をつけること
システム設計において重要な役割を果たすアーキテクチャドキュメントを書くときに、気をつけることをまとめた記事です。単なる設計情報の羅列ではなく、関係者に設計の妥当性を説明して合意を形成し、読者の理解と納得を導くための資料として、どう書くべきかを解説します。
PostgreSQL 論理レプリケーションの仕様まとめ
理解するPostgreSQL論理レプリケーション。パブリッシャー・サブスクライバー構成、WAL設定、DML操作の複製メカニズムをDocker環境で実装するメモ。
PostgreSQLのRow Level Security(RLS)|行単位のアクセス制御
適用するRow Level Security。PERMISSIVEポリシーとRESTRICTIVEポリシー、USINGとWITH CHECKの動作原理をSQL例で詳解。
境界付けられたコンテキストとは
ドメイン駆動設計における「境界づけられたコンテキスト」を、開発者以外にも伝わるように説明を試みた記事。なぜそのように切り分けるのか、言葉の意味を明確にし責務を整理することがシステム設計をどう改善するのかを、わかりやすく解説する。
自分的システムの仕様書の構成
システムの仕様をドキュメントに書き出す際、どのような構成であるべきかを考えてまとめた、自分なりのシステム仕様書の構成を記した記事です。概要・アーキテクチャ・データモデル・API・技術詳細といった階層構成を、mermaidでの図のコード化も交えて運用する方法を紹介します。
Open Policy Agent (OPA)とは?ポリシー・アズ・コードの実践ガイド
Open Policy Agent (OPA) とは何か、ポリシー・アズ・コードの仕組み、インフラの認可ロジックを一元管理する実践的な使い方を解説します。
開発者とアーキテクトのためのコミュニケーションガイド ―パターンで学ぶ情報伝達術
「開発者とアーキテクトのためのコミュニケーションガイド ―パターンで学ぶ情報伝達術」のまとめと読書メモ。重要なポイントと実践的な知見を整理します。
マルチテナントSaaSアーキテクチャの構築 ―原則、ベストプラクティス、AWSアーキテクチャパターン
『マルチテナントSaaSアーキテクチャの構築』の書評。コントロールプレーンとアプリケーションプレーンの二層構造、テナント認証やルーティング、データパーティショニング、ノイジーネイバー対策など、SaaS特有の勘所を網羅的に解説する一冊。特定ドメインに依らず汎用的に読める。
OPAを使用したマイクロサービスのアクセス制御システムの実装
OPA(Open Policy Agent)を採用したマイクロサービスのアクセス制御システムのPOCに取り組んだ内容をまとめた記事です。Rego言語によるポリシー記述やポリシーエンジンの活用、リソースレベルでの細粒度なアクセス制御を実装するためのパターンを、公開リポジトリとあわせて紹介します。