Ի լրումն իմ վերջին գրառման՝ Clean Code Made Simple — Part 1, այս գրառման մեջ ես պատրաստվում եմ շարունակել ներկայացնել տեխնիկան Robert C. Martin-ի Clean Code գրքից:
#6 Թաքցնել տվյալները
Ստորև բերված կոդի հատվածներից ո՞ր մեկն է ավելի լավ մշակված:
1)
interface Vehicle {
public function getFuelTankCapacityInGallons();
public function getGallonsOfGasoline();
}
2)
interface Vehicle {
public function getPercentFuelRemaining();
}
Վերոնշյալ երկու դեպքում էլ նախընտրելի է երկրորդ տարբերակը։ Մենք չենք ցանկանում հնարավորինս բացահայտել մեր տվյալների մանրամասները: Ավելի շուտ մենք ուզում ենք մեր տվյալները արտահայտել վերացական ձևով։ Պետք է լուրջ մտորումներ մտցնել օբյեկտի պարունակած տվյալները ներկայացնելու լավագույն ձևով: Ամենավատ տարբերակն այն է, որ կամայականորեն ավելացնել ստացողներ և սեթերներ:
Այսպիսով, ցանկացած իրավիճակում, որտեղ հարմար է թաքցնել օբյեկտի տվյալները, դուք կարող եք դա անել:
#7 Դիզայնի պարզ կանոններ
Քենթ Բեքը ներկայացրեց այս 4 կանոնները որպես ծրագրեր ավելի լավ մշակելու հիմնական չափանիշներ.
- Կատարում է բոլոր թեստերը
- Չի պարունակում կրկնօրինակում
- Արտահայտում է ծրագրավորողի մտադրությունը
- Նվազագույնի է հասցնում դասերի և մեթոդների քանակը
Մեր դասերը և մեթոդները փոքրացնելու համար մենք կարող ենք ստեղծել չափազանց շատ փոքր դասեր և մեթոդներ: մենք պետք է նաև ցածր պահենք մեր գործառույթների և դասերի քանակը: սա kent-ի պարզ դիզայնի կանոնների չորրորդ կանոնն է, որն ավելի կարևոր է, քան մյուսները:
#8 մտադրությունների բացահայտման գործառույթներ
Ձեր կարծիքով, ինչպե՞ս կարող է այս կոդի հատվածը ավելի լավանալ:
public function getFlaggedCells() {
$flaggedCells = new List();
foreach ($cells as $cell) { if ($cell[STATUS_VALUE] == 1) { $flaggedCells->add($cell); } }
return $flaggedCells; }
Կախարդական թվերը թաքցնելու համար մենք կարող ենք գրել մտադրությունների բացահայտման ֆունկցիա (կոչել isFlagged
): Դա հանգեցնում է գործառույթի նոր տարբերակի.
public function getFlaggedCells() {
$flaggedCells = new List();
foreach ($cells as $cell) { if ($cell->isFlagged()) $flaggedCells->add($cell);
return $flaggedCells; }
#9 Գրելու թեստերը հանգեցնում են ավելի լավ դիզայնի
Համակարգերը, որոնք ստուգելի չեն, ստուգելի չեն: Կարելի է ասել, որ համակարգը, որը չի կարող ստուգվել, երբեք չպետք է տեղակայվի: Բարեբախտաբար, մեր համակարգերը ստուգելի դարձնելը մեզ մղում է դեպի դիզայն, որտեղ մեր դասերը փոքր են և մեկ նպատակ: Թեստեր գրելը հանգեցնում է ավելի լավ դիզայնի:
#10 մտահոգությունների տարանջատում
Ինչպիսի՞ն խորհուրդ կտաք սլաքների ուղղությունը՝ construction
use
-ից առանձնացնելու համար:
Main Application
Builder
Ուղղությունները պետք է լինեն հետևյալը.
run
Main ---------> Application
|
| build and construct
\|/
Builder
Դա պարզապես նշանակում է, որ մեր հավելվածի construction
-ը պետք է առանձին լինի using
ից: Այս երկու քայլերը սկզբունքորեն առանձնացված են, և դրանց անջատումը մեզ ավելի լավ դիզայն և կառուցվածք է տալիս:
Լավ. Սա այս մասի համար է: Դուք կարող եք միանալ իմ Telegram ալիքին՝ վերջին գրառումների մասին տեղեկանալու համար։ Նաև կարող եք հետևել ինձ Twitter-ում և LinkedIn-ում: