7.OOP alapelvek Flashcards
(8 cards)
DRY elv
Dont Repeat yourself:
Az ismétlések fajtái:
– Kényszerített ismétlés (imposed duplication): a fejlesztők úgy érzik, hogy nincs választásuk, a környezet láthatólag megköveteli az ismétlést.
– Nem szándékos ismétlés (inadvertent duplication): a fejlesztők nem veszik észre, hogy információkat duplikálnak.
– Türelmetlen ismétlés (impatient duplication): a fejlesztők lustaságából fakad, az ismétlés látszik a könnyebb útnak.
– Fejlesztők közötti ismétlés (interdeveloper duplication): egy csapatban vagy különböző csapatokban többen duplikálnak egy információt
A kódismétlés (duplicate code) azonos (vagy
nagyon hasonló) forráskódrész, mely egynél
többször fordul elő egy programban.
KISS elv
Keep it simple, stupid
1960-as évek, amerikai haditengerészet
„Mindent olyan egyszerűen kell csinálni, amennyire csak lehetséges, de
semmivel sem egyszerűbben.
Statikus kódelemzés fogalma és példák
A programkód elemzése mely a végrehajtás nelkül történik
pl:
InferSharp -C#
Cppcheck -c++
Checkstyle -java
Prospector - python
YAGNi elv
You Aren’t Gonna Need It
Csak azt implementáld melyre szükséged lesz
Az extrém programozás (XP) egy alapelve
alapelv csak azon képességekre
vonatkozik, melyek egy feltételezett lehetőség
támogatásához kerülnek beépítésre a
szoftverbe, nem vonatkozik a szoftver
módosítását könnyítő törekvésekre.
Csatoltság laza / szoros
Csatoltság (coupling): egy szoftvermodul
függésének mértéke egy másik szoftvermodultól.
Szoros csatoltság:
– A bonyolultságot növeli, mely megnehezíti a kód módosítását, tehát a karbantarthatóságot csökkenti.
– Az újrafelhasználhatóságot is csökkenti.
Laza csatoltság:
– Lehetővé teszi a fejlesztők számára a nyitva zárt elvnek megfelelő kód írását, azaz a kódot
kiterjeszthetővé teszi.
– Kiterjeszthetővé teszi a kódot, a kiterjeszthetőség pedig karbantarthatóvá.
GoF alapelvek
-Interfészre programozzunk, ne implementációra.
Lásd például a létrehozási mintákat.
– Részesítsük előnyben az objektum-összetételt
az öröklődéssel szemben.
– Öröklődés (fehér dobozos újrafelhasználás)
– Objektum-összetétel (fekete dobozos
újrafelhasználás)
Az öröklődés előnyei:
– Statikusan, fordítási időben történik, és használata egyszerű, mivel a programozási nyelv közvetlenül támogatja.
– Könnyebbé teszi az újrafelhasznált megvalósítás módosítását is
Objektum-összetétel:
– Dinamikusan, futásidőben történik, olyan
objektumokon keresztül, amelyek hivatkozásokat
szereznek más objektumokra.
– Szükséges hozzá, hogy az objektumok figyelembe
vegyék egymás interfészét
SOLID
● Single Responsibility Principle (SRP) – Egyszeres felelősség elve
● Open/Closed Principle (OCP) – Nyitva zárt elv
● Liskov Substitution Principle (LSP) – Liskov-féle helyettesítési elv
● Interface Segregation Principle (ISP) – Interfész szétválasztási elv
● Dependency Inversion Principle (DIP) – Függőség megfordítási elv
Függőség befecskendezés
Olyan szoftvertervezési elvek és minták melyek lazán csatolt kód fejlesztését teszik lehetővé.
Lazán csatoltság kiterjeszthetővé teszi a kódot, a kiterjeszthetőség pedig karbantarthatóvá.
Objektumra olyan szolgáltatásként tekintünk melyet más objektum kliensként használnak.
Függőség: kliens-szolgáltató kapcsolat (tranzitív kapcsolat)