Kódtörlés
A Kódtörlő CLI alkalmazás arra szolgál, hogy a projektek indulásakor a szükségtelen funkciókhoz tartozó kód egyszerűen törölhető legyen.
1. Használat
1.1 Funkciók törlése
- Checkoutoljuk a CLI repositoryt a gépünkre, ugyanabba a mappába ahová a többi repositoryt (
api,frontend,backendstb.) is checkoutoltuk. - Nyissuk meg a
cli/src/main/resources/config/wizard-config.ymlfájlt. - A
codeDeleteConfigurationsszekcióban a megfelelő alkalmazások, feature-ök, csatornák esetén adeleteproperty értékét állítsuktrue-ra, amennyiben szeretnénk azt törölni. -
Ez után adjuk ki az alábbi parancsot:
-
Végül az alábbi paranccsal futtassuk az alkalmazást:
Manuális feladatok
Miután lefutott az alkalmazás, az alábbi manuális lépések szükségesek:
-
A
frontend/package.jsonésbackend/backend-service/websrc/package.jsonfájlokból manuálisan töröljük ki, a CLI alkalmazás által törölt alkalmazásokhoz és funkciókhoz kapcsolódó scripteket. -
Amennyiben kódformázásra vonatkozó validációs hibát tapasztalunk, formázzuk a kódot.
1.2 Kódtörlő marker kommentek törlése
Fontos, hogy miután kitöröltük a marker kommenteket a kódból, már nem tudunk funkciókat törölni, így ezt csak akkor hajtsuk végre, ha már minden funkció törlésével végeztünk.
Marker komment törlés visszavonása
A marker commentek törlését célszerű külön commitban elvégezni, így ha mégis kimaradt valamely funkció törlése, egyszerűen visszaállíthatók a marker commentek.
- Checkoutoljuk a CLI repositoryt a gépünkre, ugyanabba a mappába ahová a többi repositoryt (
api,frontend,backendstb.) is checkoutoltuk. - Nyissuk meg a
cli/src/main/resources/config/wizard-config.ymlfájlt. - A
deleteMarkerCommentsproperty értékét állítsuktrue-ra. -
Ez után adjuk ki az alábbi parancsot:
-
Végül az alábbi paranccsal futtassuk az alkalmazást:
2. Működés
A törlés úgynevezett jelölő kommentek alapján működik. Ezekkel a kommentekkel a Semi csapat látja el a kódot.
A kódtörlő alkalmazás a futása során:
- Törli a
wizard-config.ymlfájlban törlésre jelölt funkciók, alkalmazások, stb. kódját, a marker kommentek alapján. - Amennyiben a
wizard-config.ymlfájlban adeleteMarkerCommentsproperty értéketrue, akkor a nem törölt funkciók esetén eltávolítja a kódból a marker kommenteket. Ezt csak akkor hajtsuk végre, ha már minden funkció törlésével végeztünk.
A fentiekből következik, hogy a kódtörlés mindaddig újrafuttatható (azaz akár egyesével is törölhetők a funkciók), amíg nem töröltük a marker kommenteket a kódból.
3. Marker kommentek használata
Ahogy azt korábban is említettük, a marker kommentek használata a fejlesztés során kizárólag a Semi csapat feladata, így az itt leírt lépések csak az ő számukra relevánsak.
3.1 A kommentek felépítése
-
A kommenthez az adott nyelvnek és kiterjesztésnek megfelelő komment szimbólumot kell használni. Pl.:
//,#,<!--, stb. -
A törlő kommenteknek tartalmaznia kell az alábbi kulcsszavak valamelyikét (jelentésüket lásd részletesebben lent):
WIZARD_DELETE_STARTWIZARD_DELETE_ENDWIZARD_DELETE
-
Végezetül pedig azt a funkciót/funckiókat/alkalmazást/csatornát, amit a jelölő kommenttel törlésre megjelölünk.
Logikai kifejezések a kommentekben
A Kódtörlő CLI alkalmazás támogatja a logika kifejezéseket, ugyanis lehetnek olyan kódrészletek, amiket bizonyos feltételek
teljesülése esetén kell törölni. Például az "Alkalmazás verziók kezelése" funkciót akkor kell törölni, ha vagy maga a
funkció vagy a teljes Mobil csatorna esetén true a delete property értéke a wizard-config.yml fájlban.
Példa
A fenti kommenttel megjelölt sor törlésre kerülne a Kódtörlő CLI alkalmazás által, amennyiben az Alkalmazás verziók kezelése, vagy a Mobil csatorna esetén a delete property értéke true a wizard-config.yml fájlban.
3.2 Kódtörlés opciók
3.2.1 Egy sor törlése
Egy sor törléséhez az adott kódsor mögé kell a WIZARD_DELETE kulcsszóval ellátott törlő kommentet kitenni.
Pl.:
public static final String COMMENTS_SWITCH = "project.feature.comments.enabled"; // WIZARD_DELETE COMMENTS
3.2.2 Több sor kód törlése
Több sor törlése nyitó- és zárókommentekkel. Nyitó- és zárókommentek a WIZARD_DELETE_START, és WIZARD_DELETE_END kulcsszavakkal adhatók meg.
Pl.:
// WIZARD_DELETE_START APPLICATION_PARTNER
public static final String PARTNER_USER_MANAGEMENT_SWITCH = "project.feature.partner-user-management.enabled";
public static final String PARTNER_ORGANIZATION_MANAGEMENT_SWITCH = "project.feature.partner-organization-management.enabled";
// WIZARD_DELETE_END APPLICATION_PARTNER
A nyitó- és a zárókomment közötti kód törlődni fog, beleértve magát a kommentet is.
Amennyiben a nyitókomment a fájl első sora, a zárókomment a fájl utolsó sora, úgy a fájl is törlődni fog.
Amennyiben adott package-en belül az összes fájl törlődött, akkor a package is törlésre kerül.
3.2.3 Soron belüli kód törlése
Előfordulhat olyan eset, amikor szükséges, hogy adott sor vagy sorok csak egy részét tudjuk törölni.
Ez is megoldható a WIZARD_DELETE_START, és WIZARD_DELETE_END kulcsszavak segítségével az alábbi módon:
@Override
public ResponseEntity<Void> registrationWeb(
ClientRegistrationRequest clientRegistrationRequest/* WIZARD_DELETE_START CAPTCHA */,
CaptchaRequest captchaRequest /* WIZARD_DELETE_END CAPTCHA */
) {
// some code
}
A fenti példában a /* WIZARD_DELETE_START CAPTCHA */ és /* WIZARD_DELETE_END CAPTCHA */ kommentek közötti kód törlődni fog.
Fontos, hogy a törlendő kód és a lezáró kommentet 1 szóköz karakter válassza el.
Példa
Helyes soron belüli lezáró komment használat:
Helytelen használat:
Értelemszerűen olyan programnyelvek és fájlkiterjesztések esetén tudjuk ezt használni, amelyek támogatnak valamilyen "multi-line" kommentezést.
Fontos
Értelemszerűen ez a kommentezés is használható nem csak soron belül, hanem több sor törlésére is. Azonban ezzel a módszerrel nagyobb eséllyel maradnak kódformázási hibák a kódtörlés után, így csak akkor használjuk, ha az első két módszerrel nem tudjuk törlésre megjelölni a szükséges kódot.