Nel mio codice, a volte c'è una lunga funzione, per evitare di incasinare le variabili locali, vorrei usare un paio di parentesi per abbracciare i dettagli in modo che le variabili locali non siano visibili al resto del codice, ad esempio:
bool pricing_deals()
{
//prepare deal type lookup table
vector<DealType> deal_types; // deal type lookup table
{
vector<DealType> deal_types_TRF;
vector<DealType> deal_types_DCI;
...
// code that prepare deal_types by merging deal_types_TRF and deal_types_DCI etc
}
// from now on deal_types_TRF and deal_types_DCI are invisible
//prepare ccy pair lookup table
vector<CcyPair> ccy_pairs; // ccy pair lookup table
{
// code that prepare ccy_pairs;
}
// from now on local variables preparing ccy_pairs are invisible
// real computation starts
...
}
Mi chiedo se questa è una buona pratica, o ci sono altri modi per farlo?
P.S. Preferisco non suddividerlo in funzioni più piccole in questo caso, poiché la sub-logica non è suscettibile di essere riutilizzata da altri, e il refactoring causerà il passaggio di molti parametri, il che aumenterebbe la complessità.