7.OOP alapelvek Flashcards

(8 cards)

1
Q

DRY elv

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

KISS elv

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Statikus kódelemzés fogalma és példák

A

A programkód elemzése mely a végrehajtás nelkül történik
pl:
InferSharp -C#
Cppcheck -c++
Checkstyle -java
Prospector - python

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

YAGNi elv

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Csatoltság laza / szoros

A

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á.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

GoF alapelvek

A

-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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

SOLID

A

● 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Függőség befecskendezés

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly