[so] [Tema1] Coding Style - Conditii lungi
Teodor Popescu
teodor.popescu99 at gmail.com
Thu Feb 27 20:31:28 EET 2020
Bună ziua,
Putem întâlni situații în care avem suficient de multe condiții
într-un if încăt linia să depășească un prag de bun simț (să spunem,
100 de caractere).
Presupunem următoarea secvență de cod:
if (CONDIȚIE_1 || CONDIȚIE_2 || CONDIȚIE_3 || CONDIȚIE_4 || CONDIȚIE_5) {
instr;
}
Nu am găsit în standardul pentru Linux Kernel o soluție pentru aceste
situații, dar am identificat 3 metode prin care am putea aborda aceste
cazuri:
1) Refactorizarea codului prin adăugarea unei funcții (care nu va
apărea și în fișierul .h) astfel:
int my_function()
{
return CONDIȚIE_1 ||
CONDIȚIE_2 ||
CONDIȚIE_3 ||
CONDIȚIE_4 ||
CONDIȚIE_5;
}
if (my_function()) {
instr;
}
Dezavantaj: Nu este imediat evidentă condiția, fiind nevoie să
cauți funcția pentru a înțelege codul.
2) "Spargerea" condiției pe mai multe linii, astfel:
if (CONDIȚIE_1 ||
CONDIȚIE_2 ||
CONDIȚIE_3 ||
CONDIȚIE_4 ||
CONDIȚIE_5) {
instr;
}
Dezavantaj: Indentarea instrucțiunilor este identică celei a
condițiilor, și nu este imediat clar unde se termină condițiile și
unde încep instrucțiunile.
3) "Spargerea" condiției pe mai multe linii, astfel:
if (CONDIȚIE_1 ||
CONDIȚIE_2 ||
CONDIȚIE_3 ||
CONDIȚIE_4 ||
CONDIȚIE_5)
{
instr;
}
Dezavantaj: Nu se respectă recomandarea generală de a avea acolada
deschisă pe aceeași linie cu închiderea condiției unui 'if'.
Aveți vreo recomandare legată de acest aspect?
Mulțumesc frumos.
O seară plăcută
Teodor Popescu
+40 770 498 496 | teodor.popescu2005 | 335CB
More information about the so
mailing list