Többszintű verziózás - Pattern?
2020-02-15T12:54:26+01:00
2020-02-17T17:01:09+01:00
2022-07-20T16:41:57+02:00
  • De mit leírni? A karbantartását? A strukturáját? Milyen kontextusban?

    Az általad leírtnál kicsit bővebben kéne specifikálni a feladatot mert így olyan szaga van mint amikor egy hülye vizsgáztató, aki szintén nem érti a GOF patterneket, felteszi a teljesen értelmetlen kérdést hogy hogy lehet GOF patternekkel leírni egy amúgy teljesen triviális dolgot (egy olyan dolgot, amit hozzáteszem nincs értelme saját kútfőből megoldani), amit egyébként nem érdemes tervezési sarokpontnak használni, hanem be kell illeszteni a fontosabb kritériumok által eldöntött architektúrába.
    Mutasd a teljes hozzászólást!
  • Köszi, a technikai implementáció igazából ebben az esetben mellékes, a feladat kimondottan az, hogy lehet ezt az esetet gof patterneket felhasználva UML-ben leírni :)
    Mutasd a teljes hozzászólást!
  • Valóban. Ezt benéztem..
    Mutasd a teljes hozzászólást!
  • Amennyiben valami ORM eszközt használsz ezen komponensek tárolására, akkor azok általában ezt alapból támogatják:

    1. Van 3 entitás osztályod: komponens, csomag, termék
    2. Minden entitás osztálynak van egy verzió attribútuma (aminek a verzió jellegű viselkedését az ORM magától kezelni szokta, csak meg kell neki mondani melyik a verzió attribútum).
    3. A termék-csomag és a csomag-komponens one-to-many kapcsolatokat lemappeled az ORM-ban
    4. A parent entitás verziójának növelését a child entitás verziójának növekedésekor szintén az ORM-nek be lehet konfigurálni (valószínűleg a one-to-many kapcsolat konfigurációjánál fogod találni).



    Amennyiben korábbi verziókat is meg kell tartani (tudnod kell X csomagból 25-öset meg 27-es verziót is megmutatni hogy mit tartalmaz, akkor kell egy history ami a verzió váltáskor elavult entitás verziók sorait a history-ba bemásolja... erre pedig szintén van rengeteg kész eszköz, mind ORM-ekbe integrálva, de akár adatbázis triggerként megvalósítva is lehetséges)
    Mutasd a teljes hozzászólást!
  • A kérdésben szó nincs package management-ről vagy azzal ekvivalens problémáról. 

    A package management azzal fogalkozik, hogy különböző komponens verziók és köztük lévő ismert (rögzített) elvárt (dependál valamin) vagy tilos (nem jó egy komponensből olyan verzió ami korábbi mint egy bizonyos verzió) relációk közül kihoz egy olyan komponensverzió kombinációt ami nem tartalmaz tilos rész-kombinációkat viszont tartalmazza az elvárt relációkat minden definiált élen.

    A kérdésben szó nem volt arról, hogy ilyen relációk lennének komponensek között, és szó nem volt arról, hogy valamilyen kombinációt kellene keresni.
    Mutasd a teljes hozzászólást!
  • Package management amit keresel. C# nuget
    Java maven
    Javascript npm
     ....
    Mutasd a teljes hozzászólást!
  • Sziasztok, 

    A problémám a következő: Van egy többszintű termék-struktúra: Vannak komponensek, a csomagok komponensekből épülnek fel, a termékek pedig csomagokból. Ezeknek az adatai folyamatosan változhatnak, ezt le kell követni verziózással. (És természetesen biztosítani kell a revert lehetőséget is.) Verzióváltás történhet szimplán azáltal, hogy valamelyik elem leíró adatai változnak, de azáltal is, hogy az alatta levő struktúra változik. Pl, ha egy csomagot megváltoztatunk, az verziót ugrik, ennek hatására az őt tartalmazó termék is verziót fog váltani, viszont az alatta levő komponensek maradnak úgy ahogy van. Vagy ha egy termékből kiveszünk egy csomagot, vagy új csomagot teszünk be, az is verzióváltást triggerel a termék szintjén.

    A kérdésem az lenne, hogy tudtok-e valami design patternt, ami ezt kezelnél? Egyelőre egy observer + memento kombinációban gondolkodom, de igazság szerint nem vagyok túl járatos ezekben, szóval némileg bizonytalan vagyok.
    Mutasd a teljes hozzászólást!
abcd