Она нарушит single responsibility только если реализует
некоторую функциональность отличную от контракта не бросать эксепшены
Я писал примерно про такой шаблон:
Провал не всегда исключительная ситуация. Функция например отправляет метрики на удаленный сервер. В случае недоступности оного отбрасывает их так как они все равно на момент того как оный подымется будут неактуальны. Мы не хотим тут бросать исключение так как в целом мы ожидаем, что сервер может быть недоступен и мы можем продолжить работу и без него. Или ситауция мы хотим почистить свои временные файлы и не смогли их удалить т.к. была перезагрузка и tmpfs пуст. Функция чистки завершилась провалом, но он ожидаемый и исключительной ситуацией не является и исключение не покинет функцию очистки временных файлов.
Исключение должны бросаться в исключительной ситуации. Тут ИМХО автор пытался продвинуть код стайл:
1. Если в функции допустим провал и она ничего не возвращает верни True в случае успеха и False в случае провала.
2. Если нечего вернуть отрапортуй об успехе
Мне кажется основной посыл не малое количество уязвимостей в C# проектах, а их плохое оформление. То есть одно дело когда уязвимостей в базе мало, но те, что есть оформлено хорошо, другое дело когда уязвимостей в базе мало, а те что есть оформлены абы как.
Достаточно известен миф о том, что станция «Мир» была затоплена якобы из-за какого-то жуткого микроба, грибка или вируса, который всюду расплодился и стал поедать корпус станции и прилетавших на нее космонавтов.
Где логика? Затопив станцию чтото жуткое притащили на Землю. Куда логичней было бы оставить станцию на орбите где вирус/микроб/грибок изолирован от нас.
Если у них хранится пароль предустановленный в прошивку то это не страшнее стандарного root:admin который стоит на многих роутерах и вообщемто обязателен к смене. Если же у них этот пароль обновляется при смене то это стремный бэкдор
Да, Xiaomi хранит пароль на своих серверах.
Если у вас есть зачатки паранойи, стоит подумать, хотите ли вы делать копию вашего Mac'а на устройство, к которому китайский разработчик теоретически имеет прямой доступ. Либо хорошенько покопайтесь в системе и закройте подобные дыры.
Прям хранит пароль или выдает пароль предустановленный в прошивку?
Там фильтры тоже боль если нужна возможность фильтровать по нескольким столбцам. Когда работал то пришлось их реализовывать на стороне данных до Qtшной модели. Да и сами модели были не очень хорошо документированы в случае если данные произвольно меняются или вообще выкидываются из модели. Впрочем в целом Qt оставил скорее хорошие впечатления
А потом вы решаете зарелизиться в какой нибудь стране из этого списка:
en.wikipedia.org/wiki/Legal_recognition_of_non-binary_gender
В оригинале
И это важно потому что:
Concurrency is not parallelism
некоторую функциональность отличную от контракта не бросать эксепшены
Я писал примерно про такой шаблон:
Провал не всегда исключительная ситуация. Функция например отправляет метрики на удаленный сервер. В случае недоступности оного отбрасывает их так как они все равно на момент того как оный подымется будут неактуальны. Мы не хотим тут бросать исключение так как в целом мы ожидаем, что сервер может быть недоступен и мы можем продолжить работу и без него. Или ситауция мы хотим почистить свои временные файлы и не смогли их удалить т.к. была перезагрузка и tmpfs пуст. Функция чистки завершилась провалом, но он ожидаемый и исключительной ситуацией не является и исключение не покинет функцию очистки временных файлов.
1. Если в функции допустим провал и она ничего не возвращает верни True в случае успеха и False в случае провала.
2. Если нечего вернуть отрапортуй об успехе
Типа того. Получают цифровой и засчет дешевого ЦАПа выдает хреновенький аналоговый ;)
Двухэтапная — SMS с кодом
Двухфакторная — TOTP
Где логика? Затопив станцию чтото жуткое притащили на Землю. Куда логичней было бы оставить станцию на орбите где вирус/микроб/грибок изолирован от нас.
Прям хранит пароль или выдает пароль предустановленный в прошивку?
Очень важное уточнение т.к. записи по умолчанию идут только тем кого ты добавил в круги.
Вон у дебиана как раз чтобы не заморачиваться с торговой маркой испольуется свой форк:
ru.wikipedia.org/wiki/Iceweasel