「密結合」という形容詞は濫用されている
#ソフトウェアアーキテクチャ(主にReact)について
CSS-in-JS や Tailwind(スタイルとマークアップ)
RSC(サーバー側処理とマークアップ)
を 「密結合(だから悪い)」と言ってる人をたまに見かける。
そもそも「結合度」の定義も目的も理解せず、判断基準として濫用してる人が割といるのでは…
僕の理解:
結合度の定義は「2つのモジュールについて〜」から始まる
→ 1つのモジュールにまとめられた時点で未定義のはず
結合度の目的は「互いに離れた2箇所の記述について、一方の変更がもう一方に与える影響を減らすか検出容易にしたい」
『プリンシプル・オブ・プログラミング』にもそう書かれていた。
結合度とは、モジュール同士の関係の密接さを表す尺度です。ある結合の「太さ」を測るものになります。
上田勲. プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則 (p.271). 株式会社秀和システム. Kindle 版.
そう考えると、「CSS を書くファイルとマークアップを書くファイルを分ける」実装方式って、「一方の変更がもう一方に影響を与えるか」という視点で考えたら、疎結合じゃないどころかむしろ密結合なのでは?
CSS の記述は、(テクニックによって深刻さが軽減できるものの)どうしても要素同士の親子関係に依存してしまうので。
---
スタイル / マークアップのような分離について、
「これは関心の分離である」
「それによって、見た目の分量を軽減して、読む人への負担を減らすという意味では有益」
という主張であれば、それは正しいと思うが、「すなわち疎結合である」というのは早合点だと思う。