ominaisuusmappeja
Ominaisuusmappeja on ohjelmistokehityksessä käytettävä hakemistorakenne, jossa projektin tiedostot järjestetään ominaisuuksien mukaan sen sijaan että ne jaettaisiin teknisten kerrosten mukaan. Jokaiselle ominaisuudelle luodaan oma kansionsa, ja sen sisälle kerätään kaikki kyseiseen ominaisuuteen liittyvät tiedostot, kuten käyttöliittymäkomponentit, liiketoimintalogiikka, tiedonhaku, API-rajapinnat sekä testit. Rakenne tukee tiimien vastuukokonaisuuksia ja helpottaa ominaisuuksien kehittämistä ja refaktorointia.
Toteutuksessa tavoite on vähentää riippuvuuksia ominaisuuksien välillä ja parantaa modulaariutta. Ominaisuuskansioiden sisäinen rakente voi vaihdella, mutta
Esimerkki hakemistorakenteesta: src/ominaisuudet/käyttäjä/components, src/ominaisuudet/käyttäjä/hooks, src/ominaisuudet/käyttäjä/services, src/ominaisuudet/käyttäjä/tests; src/ominaisuudet/tilaukset/components, hooks, services, data, tests.
- Parantaa ylläpidettävyyttä, kun koodi pysyy ominaisuuskohtaisesti koossa
- Helpottaa tiimityöskentelyä ja uusien ominaisuuksien haltuunottoa
- Edistää nopeampaa refaktorointia ja eristää ominaisuudet toisistaan
- Voi lisätä tiedostojen määrää ja johtaa toistorakentamiseen
- Yleiskäyttöisiä utiliteetteja voi olla vaikea jakaa keskitetysti
- Pienissä projekteissa rakenne voi tuntua raskaalle ja monimutkaiselle
Käyttö kannattaa harkita suurissa tai monipuolisesti laajenevissa projekteissa sekä tiimivetoinen kehitys, jossa ominaisuudet ovat jaettuina tiimien
See also: projektin rakenne, feature-driven kehitys, monolith- versus modular-arkkitehtuuri.