I miei creatori di azioni e riduttori sembrano quasi tutti uguali: è un odore di codice?

-1

La maggior parte delle mie azioni redux sono 'recupera alcuni dati dal database, ecco il token di autenticazione', e per la maggior parte sembrano uguali, come questo:

creatore di azioni

export const fetchDashboard = jwt => async dispatch => {
  dispatch(fetchDashboardRequest());
  try {
    const response = await axios.get(
      DASHBOARD_ENDPOINT,
      {
        headers: {
          Authorization: 'Bearer ${jwt}',
        },
      }
    );

    dispatch({
      type:
        Action.FETCH_DASHBOARD_SUCCESS,
      payload: response.data.dashboard,
    });
  } catch (error) {
    dispatch({
      type:
        Action.FETCH_DASHBOARD_FAILURE,
      payload: flatmapErrors(
        error.response.data
      ),
    });
  }
};

reducer

export default (
  state = initialState,
  action
) => {
  switch (action.type) {
  case Action.FETCH_DASHBOARD_SUCCESS:
    return {
      ...state,
      ...action.payload
    };

  case Action.FETCH_DASHBOARD_FAILURE:
    return {}

  case Action.DASHBOARD_CLEAR_DATA : {
    return {}; 
  }
  default:
    return state;
  }
};

Questo è un bel po 'di codice, e alla fine utilizzo gli snippet di VSCode per generarlo.

Finisco per modificare la costante dell'endpoint, per alcuni le intestazioni potrebbero cambiare e potrebbe esserci qualche parsing sulla struttura dei dati, ma per la maggior parte, l'API mi fornisce i dati di cui ho bisogno.

Ma su un numero sempre maggiore di azioni, sono preoccupato che questo non sia ASCIUTTO, e che un refactoring possa essere più tardi un dolore.

È una questione che vale la pena, o dovrei considerare questo solo il boilerplate necessario?

    
posta dwjohnston 17.10.2018 - 06:43
fonte

1 risposta

0

Questo è che viola il principio di DRY, ma se dovresti correggerlo o meno dipende in ultima analisi dal fatto che pensi di dover aggiungere altro in futuro, altrimenti è YAGNI (You Aren ne avrò bisogno)

Una buona regola generale è che se hai tre pezzi di codice virtualmente duplicati, è probabile che avrai probabilmente bisogno di un quarto, quindi dovresti fare uno sforzo per trovare gli aspetti in comune e il comportamento astratto in un singolo comune metodo.

Se sei un purista come me, potresti volerlo comunque fare per salvarti dai problemi, ma sappi che non è strettamente necessario finché pensi che il comportamento sia generalizzabile.

    
risposta data 17.10.2018 - 08:46
fonte

Leggi altre domande sui tag