data-driven programming
Megjelenés
Főnév
data-driven programming (tsz. data-driven programmings)
- (informatika) Data-driven programming (magyarul: adatvezérelt programozás) egy programozási paradigma, ahol a program logikája, viselkedése vagy vezérlése dinamikusan az adatok alapján történik – nem kizárólag előre megírt vezérlési struktúrákon (if, switch, stb.) keresztül. Az adatok tehát nemcsak tartalomként, hanem a végrehajtás irányítójaként is szolgálnak.
🎯 Alapgondolat
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.
📦 Jellemző példák
| 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 |
🛠️ Tipikus megközelítések
- Szabályalapú programozás Pl.: egy tábla tartalmazza, milyen bemenetre milyen akciót hajtsunk végre.
- Adatvezérelt vezérlés Események (adatok) határozzák meg a következő lépést, nem fix kódfolyamat.
- Interpreter típusú megvalósítás A program értelmez valamilyen „adatformátumot”, és az alapján hajt végre utasításokat.
💻 Egyszerű példa (C++)
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ök
| 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 |
⚠️ Kihívások
- Nehéz nyomon követni a viselkedést, ha minden „adat mögé van rejtve”
- Debugolás nehezebb lehet, főleg ha adatok hibásak vagy nem jól dokumentáltak
- Teljesítmény: ha az értelmezés nem optimalizált, lehet lassabb, mint kézzel írt logika
🧠 TL;DR
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.
- data-driven programming - Szótár.net (en-hu)
- data-driven programming - Sztaki (en-hu)
- data-driven programming - Merriam–Webster
- data-driven programming - Cambridge
- data-driven programming - WordNet
- data-driven programming - Яндекс (en-ru)
- data-driven programming - Google (en-hu)
- data-driven programming - Wikidata
- data-driven programming - Wikipédia (angol)