One class has one reason to change
Clean Code says
One function processes one task
Observation that Apps on iOS
One app intents to provide one functionality. FB/FB Messager/Yahoo Weahter/Google Map/Google Doc/Google spreadsheets/Dropbox/Dropbox's Photo manager - Carousel/Amazon Shopping/Amazon Kindle/
Why exception is made for.
Normal flow logic handle normal case, let
exception error case
Exceptional C++ says
For exceptional-safe. Process the data first, then use non-throw swap to exchange result and data member. Make the function to be a transaction.
UnitTest Books say
One test should test one thing.
One url/page handle one kind of request(get/list/new/edit)
One change one commit.
One new feature one branch