data-driven programming (tsz. data-driven programmings)
Ahelyett, hogy a vezérlési logikát kódba „égetnénk be”, az alkalmazás viselkedése adatként van reprezentálva (pl. konfigurációk, szabályok, eseménytáblák), és a program ezek alapján hajtódik végre.
Terület | Példa |
---|---|
🧩 GUI rendszerek | Az eseménykezelés a felhasználói interakciók (adatok) alapján történik |
🔁 Állapotgépek (FSM) | Az átmeneteket és viselkedést adatok (táblák, gráfok) írják le |
📄 Konfigurációalapú rendszerek | A működést YAML, XML, JSON fájlok határozzák meg |
🧠 AI/ML rendszerek | A viselkedés teljesen adatfüggő (tanítóadatok vezérlik a döntést) |
📚 Sablonrendszerek | Pl. weblapok dinamikus generálása adatokból (templating engines) |
🎮 Játékok | Játékelemek, pályák, NPC viselkedések JSON/XML/DB alapján töltődnek |
struct Rule {
std::string condition;
std::function<void()> action;
};
std::vector<Rule> rules = {
{"LOW", (){ std::cout << "Low priority action\n"; }},
{"HIGH", (){ std::cout << "High priority action\n"; }},
};
std::string input = "HIGH";
for (auto& rule : rules) {
if (rule.condition == input) {
rule.action();
}
}
Itt a viselkedést az input
adat határozza meg – nem a kódstruktúra.
Előny | Részletezés |
---|---|
♻️ Rugalmasabb | Könnyen módosítható működés adatok megváltoztatásával |
🧪 Jobban tesztelhető | Viselkedés elválik a kódtól – tesztadatokkal lefedhető |
🔌 Könnyebb integráció | Alkalmas plugin- vagy modulrendszerekhez |
🧍 Nem programozók is konfigurálhatják | Pl. szabályokat módosító rendszergazdák vagy üzleti szakemberek |
A data-driven programming olyan programozási módszer, amelyben az adatok határozzák meg a program működését, nem pedig előre definiált, kódolt vezérlési struktúrák. Alkalmas dinamikus rendszerekre, konfigurálható alkalmazásokra és automatizált döntéshozatalra.