Простыми словами
Разные задачи лучше разделять так, чтобы изменение одной не требовало переписывать остальные. Например, расчёты, хранение данных и внешний вид сайта имеют разные причины меняться. Поэтому явные границы уменьшают путаницу и делают изменения безопаснее.
Механизм действия
Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.
Пример в работе
В задаче «API» сразу применить привычное решение и назвать происходящее «Разделение ответственности», не проверив, действительно ли работает этот механизм. Так можно улучшить один симптом и пропустить основную причину.
Использовать «Разделение ответственности» как гипотезу: сначала определить границы ситуации и исходное состояние, затем менять только то, что связано с проверяемым механизмом, и смотреть на результат.
Ограничения
Разделение снижает когнитивную связанность, но слишком мелкие границы создают координационные издержки и разбрасывают одну функцию по многим слоям.
Источник
Edsger W. Dijkstra, “On the Role of Scientific Thought”, 1974.