Вся неопределенность возникает из-за контекста, в котором находится код. Некоторые принципы могут быть нарушены или не нарушены в зависимости от контекста. Давайте рассмотрим пример псевдокода:
конфиг = прочитать_конфиг_из_файла()
соединение = открыть_соединение_с_бд(конфиг.строка_подключения)
соединение.сохранить(данные)
соединение.закрыть()
Если контекстом является большое приложение, разработанное в стиле объектно-ориентированного программирования, тогда принцип единственной ответственности (SRP) явно нарушен. Здесь нужно выделить отдельные функции для чтения конфигурации, открытия соединения и сохранения данных. Такое разделение повысит надежность кода, упростит его разработку и поддержку, уменьшив дублирование кода.
Однако, если контекстом является небольшой скрипт для резервного копирования данных, который является самодостаточным, то здесь нет нарушений принципа SRP. Попытка разделить этот скрипт на отдельные модули приведет только к усложнению кода.
Важно помнить, что если выделение отдельных ответственностей влечет за собой снижение качества кода и увеличение сложности поддержки, то, возможно, изначально принцип SRP не был нарушен, либо при попытке выделить ответственности были допущены ошибки.