Thursday Feb 03, 2022

Ohjelmistojen suunnitteluperiaatteet DRY ja KISS

Tässä artikkelissa aion tutustua ohjelmistojen suunnitteluperiaatteisiin ja niiden hyötyihin, miksi suunnitteluperiaatteet ovat meille hyödyllisiä ja miten toteuttaa niitä päivittäisessä ohjelmoinnissa. Tutustumme DRY- ja KISS-ohjelmistojen suunnitteluperiaatteisiin.

DRY-periaate: Don’t Repeat Yourself

DRY tulee sanoista ”Älä toista itseäsi”, joka on ohjelmistokehityksen perusperiaate, jolla pyritään vähentämään tiedon toistoa. DRY-periaate ilmaistaan seuraavasti: ”Jokaisella tiedolla tai logiikalla on oltava yksi, yksiselitteinen esitys järjestelmässä.”

DRY:n rikkomukset

”Me nautimme kirjoittamisesta” (tai: ”Kaikkien ajan tuhlaamista.”): ”Nautimme kirjoittamisesta” tarkoittaa saman koodin tai logiikan kirjoittamista uudelleen ja uudelleen. Koodia on vaikea hallita, ja jos logiikka muuttuu, joudumme tekemään muutoksia kaikkiin niihin paikkoihin, joihin olemme kirjoittaneet koodia, ja näin tuhlaamme kaikkien aikaa.

Miten DRY

Välttääksesi DRY-periaatteen rikkomisen, jaa järjestelmäsi osiin. Jaa koodisi ja logiikkasi pienempiin uudelleenkäytettäviin yksiköihin ja käytä tuota koodia kutsumalla sitä missä haluat. Älä kirjoita pitkiä metodeja, vaan jaa logiikka ja pyri käyttämään olemassa olevaa palaa metodissasi.

DRY:n hyödyt

Vähän koodia on hyvä asia: se säästää aikaa ja vaivaa, on helppo ylläpitää ja vähentää myös virheiden mahdollisuutta.

Yksi hyvä esimerkki DRY-periaatteesta on yrityskirjastojen apuluokka, jossa jokainen koodinpätkä on ainutkertainen kirjastoissa ja apuluokissa.

KISS: Keep It Simple, Stupid

KISS-periaatteella kuvataan koodin pitämistä yksinkertaisena ja selkeänä, jolloin se on helppo ymmärtää. Loppujen lopuksi ohjelmointikielet on tarkoitettu ihmisten ymmärrettäväksi – tietokoneet ymmärtävät vain 0 ja 1 – joten pidä koodaus yksinkertaisena ja suoraviivaisena. Pidä metodit pieninä. Kukaan metodi ei saisi koskaan olla yli 40-50 riviä.

Kunkin metodin tulisi ratkaista vain yksi pieni ongelma, ei monia käyttötapauksia. Jos metodissa on paljon ehtoja, jaa ne pienempiin metodeihin. Se on paitsi helpompi lukea ja ylläpitää, myös auttaa löytämään virheet paljon nopeammin.

KISSin rikkominen

Me kaikki olemme todennäköisesti kokeneet tilanteen, jossa saamme projektissa töitä tehtäväksi ja löydämme sotkuista koodia kirjoitettuna. Se saa meidät kysymään, miksi näitä turhia rivejä on kirjoitettu. Katsokaa vain alla olevia kahta koodinpätkää, jotka näkyvät alla. Molemmat menetelmät tekevät saman asian. Nyt sinun on päätettävä, kumpaa käytät:

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;}

How to Achieve KISS

Välttääksesi KISS-periaatteen rikkomisen yritä kirjoittaa yksinkertaista koodia. Mieti monia ratkaisuja ongelmaasi, valitse sitten paras, yksinkertaisin ja muuta se koodiksesi. Aina kun löydät pitkää koodia, jaa se useisiin metodeihin – klikkaa hiiren oikealla painikkeella ja refaktoroi editorissa. Yritä kirjoittaa pieniä koodilohkoja, jotka tekevät yhden tehtävän.

KISS:n hyöty

Jos meillä on jokin toiminnallisuus, jonka yksi kehittäjä on kirjoittanut ja joka on kirjoitettu sotkuisella koodilla, ja jos pyydämme toista kehittäjää tekemään muutoksia koodiin, hänen on ensin ymmärrettävä koodi. On selvää, että jos koodi on kirjoitettu yksinkertaisesti, koodin ymmärtämisessä ei ole vaikeuksia, ja sitä on myös helppo muokata.

Yhteenveto

Kirjoittaessasi mitä tahansa koodia tai moduulia pidä ohjelmistosuunnittelun periaatteet mielessäsi ja käytä niitä viisaasti, tee niistä tapasi, jotta sinun ei tarvitse muistaa niitä joka kerta. Se säästää kehitysaikaa ja tekee ohjelmistomoduulista vankan, jota voi olla helppo ylläpitää ja laajentaa.

Vastaa

Sähköpostiosoitettasi ei julkaista.

Back to Top