Web配信の技術―HTTPキャッシュ・リバースプロキシ・CDNを活用する
2026年1月5日Web配信の技術―HTTPキャッシュ・リバースプロキシ・CDNを活用するを読んだ。 Webのコンテンツ配信におけるキャッシュについて網羅的に書かれている。キャッシュ最適化を考える際に手元に置いておきたい。 ...
Web配信の技術―HTTPキャッシュ・リバースプロキシ・CDNを活用するを読んだ。 Webのコンテンツ配信におけるキャッシュについて網羅的に書かれている。キャッシュ最適化を考える際に手元に置いておきたい。 ...
ソフトウェア設計の結合バランス 持続可能な成長を支えるモジュール化の原則を読んだ。 この本は結合をテーマにした珍しい本で、アーキテクチャ設計の複雑性をどう管理するかを理論的に学べる本。 複雑性をどう管理するかはアーキテクチャの寿命を決めるようなものだと思っているが、そのための分析観点として結合について深く学ぶことができる。 一回読んだだけでは頭に入り切らなかったので、設計するときなど辞書的に参照で...
システム設計面接の傾向と対策を読んだ。 面接対策というテーマではあるが、システム設計のパターンを学ぶにもちょうど良い。 作問する側にとっても参考になると思う。 システム設計の勘所を抑えた質問のパターンについても参考になる部分があるので、システム設計面接ではない技術面接の面接官にとっても役立ちそう。 この手の本は少ないが、アーキテクチャの設計事例やパターンについて実例に近い形で学ぶことができる本はも...
セッションベースとトークンベースの認証方式について 概要 Webアプリケーション開発において、認証方式の選択は システムのスケーラビリティ、セキュリティ、保守性に大きな影響を与える設計判断である。この記事では、セッションベース認証とトークンベース認証について、技術的な詳細から実装上の考慮事項まで包括的に比較・解説する。 認証の基礎知識 認証とは? 認証(Authentication)とは、システム...
LTで簡単にまとめた資料もあるので、要約を知りたい場合は以下を参照してほしい。 cf. AAPについて調べてみた アーキテクチャアドバイスプロセスとは何か 現代のソフトウェア開発では、チームの自律性と開発速度が重要視される一方で、アーキテクチャの一貫性も求められる。この相反する要求に応えるのが、アーキテクチャアドバイスプロセス(Architecture Advice Process, AAP)であ...
技術選定や設計判断を行う際には、制約やトレードオフを明示することが極めて重要である。 意思決定とは、常に限られた条件のもとで、複数の選択肢から最適なものを選ぶ行為である。したがって、その判断がどのような前提や制限の中で行われたのかを明文化しない限り、後から見て「なぜこの選択がされたのか」を理解することは困難となる。 意思決定の前提を明示できる 技術的な意思決定は、「その時点での状況」「与えられた制...
Webアプリケーションや分散システムでパフォーマンスを高めるために不可欠なのが「キャッシュ」の基本的な活用パターンについて書く。 キャッシュアサイド(Cache Aside) リードスルー(Read Through) ライトスルー(Write Through) ライトバック(Write Back) ライトアラウンド(Write Around) キャッシュアサイド(Cache Aside) 概要...
トランザクションモデルであるACIDとBASEについて述べる。 ##ACIDとは ACIDは、主にリレーショナルデータベース(RDB)で用いられるトランザクションの4つの性質を表す。 特性 意味 概要 Atomicity(原子性) トランザクションはすべて成功するか、すべて失敗する All or Nothing - 中途半端な状態は残らない Consistency(一貫性) データ...
この記事では、Webアプリケーションの代表的な処理モデルについて書く。 イベントループ スレッド プロセス 各処理モデルの概要 イベントループモデル(非同期・シングルスレッド) 特徴:1つのスレッドで、イベント(非同期IOなど)を順に処理 代表例:Node.js、Deno、JavaScript(ブラウザ) [ イベントキュー ] → [ イベントループ ] → [ 実行 ] メリット ...