責務の分離は概念レベルで高度
プログラミング初見の人に、ウェブページを見せて、
「大雑把にいくつの構造がある?」のような問いをした時に、
骨格(HTML)と、見た目(CSS)と、動き(JS)かなあ、と答えられる人は少ないと思う
これは、先人がそのように構造を分離したのを我々は知識で知っているに過ぎない
他の例だと、
JSの配列操作の、reduceとmapを見比べた時に、
reduceは抽象度が高く、ある意味で責務が多い。mapの上位概念である。
と答えるのも難しい
あなたはこれを1つの責務と捉えているようですが、AとBの2つの責務を含んでいるとは考えられませんか?という指摘は有効
人によって世界の見方は異なる
荒いだけの場合もあれば、根本的に別の切り口で見てる場合もある
その中から最も適切だと思うものを選択する必要がある
プログラミングの場合は、それをデータ構造などで示しながら、意図を共有する
人間のモデル化をする際に、人体模型としても、棒人間としてもモデル化できる その問題に対し、最も最適なモデル化を目指す
知識としても良い構造化は役立つ
センスも必要(?)
ロシアでは虹を4色と捉える、みたいなやつと近い気がする