Как разработчик JS, я часто сталкиваюсь с вопросом о том, следует ли перемещать определенные «процедуры» на свой собственный уровень. Например:
const localStorageUser = jwtService.userExistsInStorage();//Returns a user object if available
if (localStorageUser) {//If so, "login" from it
// debugger;
store.dispatch(userActions.setUserData(localStorageUser))//Set the user object in the Redux store.
AjaxService.setHeader('token', localStorageUser.data.token);//Set the token header for every ajax request.
if (localStorageUser.data.shortcuts) {
store.dispatch(navigationActions.setNavigation(localStorageUser.data.shortcuts));
} else {
store.dispatch(navigationActions.resetNavigation());
}
}
Это некоторый код из файла верхнего уровня в приложении React. Как вы можете видеть, он вызывает различные функции при инициализации, когда приложение загружается.
Допустим, я однажды смогу повторить этот код в другой части приложения (некоторые автоматическиавторизоваться). «Привычно» ставить такой код в своем классе? Я имею в виду, что это полностью нарушит принцип Единой ответственности , так как этот класс / модуль будет тесно связан со многими другими классами и обязанностями.
Это всего лишь один пример (возможно, нелучший), но эта дилемма возникает часто. Как опытные разработчики подходят к этой проблеме?