SOLID原則はプリンシパル(ルールやガイドライン)を定めたものであるのに対し、CUPIDはソフトウェアが持つべき性質・特徴を定めたものです。SOLID原則はOOPやプログラミング言語に依存するところがありますが、CUPIDは基本的にOOPやプログラミング言語に依存しません。
CUPIDは下記の頭文字です。ソフトウェアはこれらの性質・特徴を持つように作るべきだというのがCUPIDが伝えるものです。
- Composable : 他のコンポーネントと組み合わせしやすいこと
- Unix philosophy : ひとつのことをうまくやること
- Predictable : なにをするのか予測できること
- Idiomatic : 自然に感じられること
- Domain-based : ドメイン言語とドメインの構造を使うこと