Mappák struktúrálása
1. Koncepció
A backend projekt mappastruktúrája a funkció alapú packagelést veszi alapul.
Ez azt jelenti, hogy a legfelső szinten funkciók szerint van csoportosítva a kód.
Ennek legfontosabb előnye, hogy a funkcióhoz tartozó kódbázis teljes egészében az adott funkció package alatt található. Így a fejlesztők számára is áttekinthetőbbek a funkciók listája és egyértelmű lesz hol található a hozzájuk tartozó kód.
Funckiók törlése
Képzeljünk el egy olyan szituációt ahol az accounting funkció törlése a feladatunk.
Ebben az esetben ha a legfelső rétegben például a szerepkörök szerint van csoportosítva a kód:
admin -> accounting, client-> accounting stb. akkor ha nem ismerjük a kódbázist minden szerepkör alatt meg kell néznünk, található-e még kód az accounting funkcióhoz.
Ellenben ha a funkció szerint lenne szervezve a kód, akkor elég lenne az accounting package-t törölni a funkcióhoz tartozó összes kód törléséhez.
2. Struktúra
A struktúra az alábbi módon épül fel:

Az src/main/java/io/gbsolutions/project könyvtárszerkezet minden projekten adott.
A project package alatt található a feature és techcore package. Melyek közül a techcore a fejlesztői eszközkészletet,
míg a feature a feature-öket tartalmazza.
A feature package alatt találhatóak az egyes featureök packagjei.
Fontos, hogy a nagyobb (több részre bontható) feature-ök esetén (featureA) további alfeature packagek (subfeature1, subfeature2) bevezetése szükséges.
Például
Ha van egy számlázás funkciónk ahol szétválasztható a lakossági és a vállalati számlázási folyamat, akkor az alábbi struktúra a javasolt:

Az adott feature (featureB) vagy alfeature (subfeature1) package-ek alatt a rétegek szerint bontsuk további package-ekre (controller, service, repository stb.) a kódot.