アーキテクチャ

なぜ・いつアーキテクチャ戦略を書くべきか

アーキテクチャ

戦略や戦術が明確に定義されていないケースは多い。その有用性や必要性が十分に認識されていないことが一因かもしれない。 「戦略を書く時間があるなら手を動かしたい」「書いても読まれない」という意見もあるかもしれない。しかし、戦略がないまま進めると、様々な問題が発生する。 この記事では、戦略がないとどうなるか、いつ戦略を書くべきかを整理する。 戦略がないとどうなるか 戦略がないまま進めると、以下のような問...

アーキテクチャ戦略 アーキテクチャ 設計

良いアーキテクチャ戦略・悪いアーキテクチャ戦略

アーキテクチャ

アーキテクチャ戦略を書いても、機能しないケースがある。形だけの戦略になってしまったり、実行に移されなかったりする。 この記事では、良い戦略と悪い戦略の違いを整理する。 良い戦略の要点 良い戦略は、課題分析→方針→施策の3要素を持つ。これは良い戦略、悪い戦略で定義されている「カーネル(戦略の核)」を、アーキテクチャ戦略の文脈で解釈したものである。 課題分析:現状の課題を分析し、何が問題かを明確にす...

アーキテクチャ戦略 アーキテクチャ 設計

アーキテクチャ戦略・戦術・設計の書き分け

アーキテクチャ

アーキテクチャに関するドキュメントを書く際、「これは戦略に書くべきか、戦術に書くべきか、それとも設計ドキュメントに書くべきか」と迷うことがある。 それはおそらく、戦略・戦術・設計の定義が曖昧であることや、書き分けに明確な基準がないことが原因だろう。 この記事では、戦略・戦術・設計の3層構造と、5W1Hを使った書き分けの指針を紹介する。 戦略・戦術・設計の3層構造 アーキテクチャに関するドキュメント...

アーキテクチャ戦略 アーキテクチャ 設計

SAML 2.0 仕様まとめ

アーキテクチャ

OASIS Security Assertion Markup Language (SAML) 2.0 に基づく要点整理。 概要 SAML(Security Assertion Markup Language)は、XMLベースの認証・認可データ交換標準。 異なるセキュリティドメイン間で、ユーザーの認証情報や属性情報を安全にやり取りするためのフレームワーク。主にエンタープライズ環境でのSSO(シン...

SAML 認証 認可

OpenID Connect 1.0 仕様まとめ

アーキテクチャ

OpenID Connect Core 1.0 に基づく要点整理。 RFC用語(RFC 2119) 用語 意味 MUST / REQUIRED / SHALL 絶対的な要求事項 MUST NOT / SHALL NOT 絶対的な禁止事項 SHOULD / RECOMMENDED 推奨(特別な理由がない限り従うべき) SHOULD NOT / NOT RECOMMENDED...

OIDC 認証 認可

OAuth 2.0 仕様まとめ

アーキテクチャ

RFC 6749(OAuth 2.0 Authorization Framework)およびRFC 6750(Bearer Token Usage)に基づく要点整理。 RFC用語(RFC 2119) 用語 意味 MUST / REQUIRED / SHALL 絶対的な要求事項 MUST NOT / SHALL NOT 絶対的な禁止事項 SHOULD / RECOMMENDED...

OAuth 認証 認可

ADRを書くときに抑えておくべきポイント

アーキテクチャ

ADR(Architecture Decision Record)は、ソフトウェアアーキテクチャに関する重要な意思決定を記録するためのドキュメントである。 ADRを書く内容が決まっていても実際書いてみると人によって内容がバラついたり、そもそも何を書けば良いのか分からなかったりして、形骸化してしまうことがある。 私の経験上大事だと思うことを4つにまとめた。 1:意思決定を一つに絞る(Atomicit...

Architecture Decision Record 設計 アーキテクチャ

要件と制約の違い

アーキテクチャ

ソフトウェア開発の現場で、「要件(Requirements)」と「制約(Constraints)」の違いに悩んだことはないだろうか。 私は設計を考える際に、この2つの概念を混同してしまうことがあった。 適切な設計を行うために、これらの違いを明確に理解することが大事であると感じたので、これらの違いについてシステム工学の国際標準である ISO/IEC/IEEE 29148 の定義をベースに整理してみた...

制約 要件 要求 設計 アーキテクチャ

Web配信の技術―HTTPキャッシュ・リバースプロキシ・CDNを活用する

アーキテクチャ

Web配信の技術―HTTPキャッシュ・リバースプロキシ・CDNを活用するを読んだ。 Webのコンテンツ配信におけるキャッシュについて網羅的に書かれている。キャッシュ最適化を考える際に手元に置いておきたい。 ...

キャッシュ リバースプロキシ CDN

ソフトウェア設計の結合バランス 持続可能な成長を支えるモジュール化の原則

アーキテクチャ

ソフトウェア設計の結合バランス 持続可能な成長を支えるモジュール化の原則を読んだ。 この本は結合をテーマにした珍しい本で、アーキテクチャ設計の複雑性をどう管理するかを理論的に学べる本。 複雑性をどう管理するかはアーキテクチャの寿命を決めるようなものだと思っているが、そのための分析観点として結合について深く学ぶことができる。 一回読んだだけでは頭に入り切らなかったので、設計するときなど辞書的に参照で...

設計