Thursday Feb 03, 2022

Szoftvertervezési elvek DRY és KISS

Ebben a cikkben a szoftvertervezési elveket és azok előnyeit fogom megvizsgálni, hogy miért hasznosak számunkra a tervezési elvek, és hogyan alkalmazzuk őket a mindennapi programozásban. Megvizsgáljuk a DRY és a KISS szoftvertervezési elveket.

A DRY elv: Don’t Repeat Yourself

A DRY a “Don’t Repeat Yourself” rövidítése, a szoftverfejlesztés egyik alapelve, amelynek célja az információk ismétlődésének csökkentése. A DRY elvet a következőképpen fogalmazzák meg: “Minden tudásnak vagy logikának egyetlen, egyértelmű reprezentációval kell rendelkeznie egy rendszeren belül.”

A DRY megsértése

“Élvezzük a gépelést” (vagy: “Mindenki idejét pazaroljuk.”): “Élvezzük a gépelést”, azt jelenti, hogy ugyanazt a kódot vagy logikát írjuk újra és újra. Nehéz lesz a kódot kezelni, és ha a logika változik, akkor minden olyan helyen változtatnunk kell, ahol a kódot írtuk, ezzel mindenki idejét pazarolva.

Hogyan érjük el a DRY

Hogy elkerüljük a DRY elvének megsértését, osszuk fel a rendszerünket darabokra. Oszd fel a kódodat és a logikádat kisebb újrafelhasználható egységekre, és használd ezt a kódot úgy, hogy ott hívod, ahol akarod. Ne írjon hosszú metódusokat, hanem ossza fel a logikát, és próbálja meg a meglévő darabot felhasználni a módszerében.

DRY előnyei

A kevesebb kód jó: időt és energiát takarít meg, könnyen karbantartható, és a hibák esélyét is csökkenti.

A DRY elv egyik jó példája a vállalati könyvtárak segédosztálya, amelyben minden kódrészlet egyedi a könyvtárakban és a segédosztályokban.

KISS: Keep It Simple, Stupid

A KISS elv leíró jellegű, hogy a kód egyszerű és világos legyen, így könnyen érthető. Végül is a programozási nyelvek az emberek számára érthetőek – a számítógépek csak a 0-t és az 1-et értik -, ezért tartsuk a kódolást egyszerűnek és egyértelműnek. Tartsd kicsiben a metódusaidat. Egy-egy módszer soha ne legyen több 40-50 sornál.

Minden módszer csak egy kis problémát oldjon meg, ne sok felhasználási esetet. Ha sok feltétel van a módszerben, bontsa ezeket kisebb módszerekre. Így nem csak könnyebb lesz olvasni és karbantartani, de a hibákat is sokkal gyorsabban megtalálhatjuk.

A KISS megsértése

Valószínűleg mindannyian megtapasztaltuk már azt a helyzetet, amikor munkát kapunk egy projektben, és rendetlenül megírt kódot találtunk. Ez arra késztet minket, hogy megkérdezzük, miért írták ezeket a felesleges sorokat. Nézzük csak meg az alább látható két kódrészletet. Mindkét módszer ugyanazt a dolgot végzi. Most el kell dönteni, hogy melyiket használjuk:

public String weekday1(int day) { switch (day) { case 1: return "Monday"; case 2: return "Tuesday"; case 3: return "Wednesday"; case 4: return "Thursday"; case 5: return "Friday"; case 6: return "Saturday"; case 7: return "Sunday"; default: throw new InvalidOperationException("day must be in range 1 to 7"); }}public String weekday2(int day) { if ((day < 1) || (day > 7)) throw new InvalidOperationException("day must be in range 1 to 7"); string days = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; return days;}

Hogyan érjük el a KISS

A KISS elv megsértésének elkerülése érdekében próbáljunk egyszerű kódot írni. Gondolj sokféle megoldást a problémádra, majd válaszd ki a legjobbat, a legegyszerűbbet, és azt alakítsd át a kódodba. Ha hosszú kódot talál, ossza azt több metódusra – kattintson a jobb gombbal és refaktorálja a szerkesztőben. Próbáljon kis kódblokkokat írni, amelyek egyetlen feladatot végeznek el.

A KISS előnyei

Ha van valamilyen funkció, amelyet egy fejlesztő írt, és azt kusza kóddal írta, és ha megkérünk egy másik fejlesztőt, hogy módosítsa ezt a kódot, akkor először is meg kell értenie a kódot. Nyilvánvaló, hogy ha a kód egyszerűen van megírva, akkor nem lesz nehéz megérteni azt a kódot, és könnyű lesz módosítani is.

Összefoglaló

Minden kód vagy modul írása közben tartsa szem előtt a szoftvertervezési elveket, és használja őket okosan, tegye szokásává, hogy ne kelljen minden alkalommal emlékeznie rájuk. Ezzel fejlesztési időt takaríthat meg, és a szoftvermodulja robosztus lesz, ami könnyen karbantartható és bővíthető.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

Back to Top