Skip to content

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

  1. Checkoutoljuk a CLI repositoryt a gépünkre, ugyanabba a mappába ahová a többi repositoryt (api, frontend , backend stb.) is checkoutoltuk.
  2. Nyissuk meg a cli/src/main/resources/config/wizard-config.yml fájlt.
  3. A codeDeleteConfigurations szekcióban a megfelelő alkalmazások, feature-ök, csatornák esetén a delete property értékét állítsuk true-ra, amennyiben szeretnénk azt törölni.
  4. Ez után adjuk ki az alábbi parancsot:

    ./mvnw clean package -DskipTests
    
  5. Végül az alábbi paranccsal futtassuk az alkalmazást:

    java -jar target/cli-1.0.0-SNAPSHOT.jar
    

Manuális feladatok

Miután lefutott az alkalmazás, az alábbi manuális lépések szükségesek:

  • A frontend/package.json és backend/backend-service/websrc/package.json fá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.

  1. Checkoutoljuk a CLI repositoryt a gépünkre, ugyanabba a mappába ahová a többi repositoryt (api, frontend , backend stb.) is checkoutoltuk.
  2. Nyissuk meg a cli/src/main/resources/config/wizard-config.yml fájlt.
  3. A deleteMarkerComments property értékét állítsuk true-ra.
  4. Ez után adjuk ki az alábbi parancsot:

    ./mvnw clean package -DskipTests
    
  5. Végül az alábbi paranccsal futtassuk az alkalmazást:

    java -jar target/cli-1.0.0-SNAPSHOT.jar
    

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:

  1. Törli a wizard-config.yml fájlban törlésre jelölt funkciók, alkalmazások, stb. kódját, a marker kommentek alapján.
  2. Amennyiben a wizard-config.yml fájlban a deleteMarkerComments property értéke true, 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_START
    • WIZARD_DELETE_END
    • WIZARD_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

// WIZARD_DELETE APPLICATION_VERSION_MANAGEMENT || CHANNEL_MOBILE

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:

CaptchaRequest captchaRequest /* WIZARD_DELETE_END CAPTCHA */

Helytelen használat:

CaptchaRequest captchaRequest/* WIZARD_DELETE_END CAPTCHA */

CaptchaRequest captchaRequest   /* WIZARD_DELETE_END CAPTCHA */

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