- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- GoodSpeed: AOMEI Backupper Professional Edition: Lifetime Subscription
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sh4d0w: Netflix? Ugyan, VW előfizetés!
- LordAthis: AI Kérdés érkezett - 3600 soros Spagetti kód refaktorálása és budget
- Elektromos rásegítésű kerékpárok
- eBay-es kütyük kis pénzért
- Tutti Georg: A Microsoft 2025. augusztusi biztonsági frissítései hibásak
-
LOGOUT
Új hozzászólás Aktív témák
-
akrobet
tag
Sziasztok!
Tanácsot szeretnék kérni egy üzleti szabálymotor (business rule engine) megtervezésével kapcsolatban.
Angol leírás: [link] - szerintem sokkal érthetőbb annak aki tud angolul mint az én alábbi fordításom
A szabálymotor egy rendelés feldolgozó rendszer része lenne, ehhez hasonló funkciókkal:
- ha egy rendelés érkezik egy fizikai termékért, generáljon egy csomagolási szelvényt (packaging slip) a küldéshez
- ha egy rendelésérkezik egy könyvért, hozzon létre egy másolatot a csomagolási szelvényről a jogdíj osztály részére
- ha egy rendelés érkezik egy tagságért, aktiválja a tagságot
- ha egy rendelés érkezik egy tagság előléptetéséért (upgrade) , érvényesítse az előléptetést (apply the upgrade)
- ha egy rendelés érkezik a "Síelni tanulunk" nevű filmért, addjon hozzá egy "Elsősegély" nevű videót a csomagolási szelvényhez.
...
A rendszernek ehhez hasonló szabályok százait kell hogy tudja feldolgozni, és a szabályok folyamatosan bővülnek és változnak a rendszer élettartama alatt.
Tehát a feladat egy olyen rendszer megtervezése ami elég flexibilis hogy kezelni tudja a bonyolult szabályokat, úgy hogy minél kevesebb karbantartást igényeljen a rendszerfejlesztőtől.
A feladatban előírják, hogy az egyszerűséget előnynek tekintik az rendszer architekturában. Tehát bonyolult design patternek használata nélkül, ha nincs létjogosultsága.
A kódnak teszelhetőnek és könnyen olvashatónak kell lenni.
Nah, ez lenne a feladat leírása (fordítása).
Két megoldás között vacilálok, mivel a feladatban (gondolom direkt) nem utaltak rá, hogy pontosan milyen gyakran változnak ezek a szabályok és hogy a rendszer felhasználói (webshop tulaj) tudjanak-e maguk változtatni / hozzáadni új szabályokat.
1. megoldás - lényegében hardcodeolni a szabályokat termék típus szerint
előnyök: nem igényel bonyolult programozási "trükköket" mint reflection, expression trees, stb..
hátrányok: minden szabályvátloztatás programozót igényel és egy új rendszer verzió beüzemelését (deploy)2. megoldás - a szabályok dinamikusan létrehozhatók a felhasználók által, pl definiálva a termék típusát (class name) és paramétereit (property) és a szabályokat adatbázisba menteni, és vizsgálásnál kiolvasni, majd reflectionnel megvizsgálni hogy az adott megrendelés, stb. megfelel-e a szabályoknak és aszerint végrehajtani az utasítást.
előnyök: rugalmas rendszer, a szabályok létrehozása nem igényel programozót
hátrányok: bonyolultabb implementáció, nem túl elegáns kód (reflectionnel), ha megváltozik egy utasítás neve a kódban, az adatbázisban tárolt szabályok nem működnek többéÉn személy szerint a második megoldás felé hajlanék, mert szabályok százainak karbantartása szerintem túl költséges lenne. A problémám csak az hogy sokan írják a reflectionről pl. stackoverflow-n, hogy lassú és nem alkalmazható olyan helyeken ahol utasítások millióit kell végrehajtani.
Valakinek esetleg lenne ötlete/tapasztalata ilyen rendszer fejlesztésével esetleg a két megoldás közül melyik lenne helytállóbb?
Programozási nyelv: C#
Bocsi a hosszú postért, de szerintem szükséges a feladat megérteséhez. Ha furcsa magyar megfogalmazást használok az azért van mert csak angolul tanultam programozást és nem tudom a magyar kifejezéseket.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- DJI Mini 4 pro Fly More Combo FMC RC2 drón új állapotban
- DJI Mini 4 pro Fly More Combo RC2 drón 6 akkumulátorral - Garancia, Care Refresh
- DJI Mini 4 pro - Fly More Combo - RC2 drón szett - Garancia, Care Refresh
- DJI Mavic 3 Fly More Combo RC Pro drón szett - 4/3" Hasselblad + 7x-es zoom kamera
- Asus ROG Strix Flare II Animate Gamer Billentyűzet - Magyar kiosztás
- HIBÁTLAN Apple Watch Ultra 2 Natural Titanium 49mm -1 ÉV GARANCIA - 100% Akkumulátor, MS3219
- Apple iPhone 15 128GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone 12 64GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3052, 96% Akkumulátor
- 122 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 - 4 év garancia
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: FOTC
Város: Budapest