yujiro's blog

「インターネット上で正しい答えを得る最善の方法は、質問することではない。間違った答えを投稿することだ」by ウォード・カニンガム

クロスサイト・スクリプティング(XSS)

はじめに

この記事の内容は 「体系的に学ぶ 安全なWebアプリケーションの作り方 第2版」 の第4章3節の要点をまとめたものです。

www.sbcr.jp

※ 基本的に引用は避けています。

続きを読む

DTO を用意してドメインオブジェクトの流出を防ぐ

先月発売された「ドメイン駆動設計入門」を読んでいる。

www.shoeisha.co.jp

ドメイン駆動設計においては、ドメインオブジェクトを利用するのはアプリケーションサービスに留めるべきで、それより外の世界にドメインオブジェクトを流出させるべきではない、とされる。

続きを読む

オープン・クローズドの原則(OCP)について

Robert C. Martin のCleanArchitecture にはSOLID原則について記載があるが、どの原則もアーキテクチャの観点から論じられている。

「単一責任の原則(SRP)」をコンポーネント向けに言い換えたものが「閉鎖性共通の原則(CCP)」にあたり

「インターフェース分離の原則(ISP)」ををコンポーネント向けに言い換えたものが全再利用の原則(CRP) にあたるのは以前書いた記事でも少し述べた。

bamboo-yujiro.hatenablog.com

「オープン・クローズドの原則」もアーキテクチャの単位で述べられているのだけれど、 まずは理解を深めるために、ここでは一般的なオープン・クローズドの原則(OCP)についてまとめてみようと思う。


続きを読む

CleanArchitecture - 「コンポーネントの凝集性」についてまとめる

CleanArchitecture 第13章「コンポーネントの凝集性」を簡単にまとめる。

コンポーネントとは

CleanArchitecture に簡潔に記載されているので、そのまま引用する。

コンポーネントとは、デプロイの単位のことである。システムの一部としてデプロイできる、最小限のまとまりを指す。Javaならjarファイル、Rubyならgemファイル、.NETならDLLなどがそれにあたる。コンパイル型言語ならバイナリファイル、インタプリタ型言語ならソースファイルになる。

CleanArchitecture 達人に学ぶソフトウェアの構造と設計 第12章「コンポーネント

続きを読む