On yksi asia laittaa muuttujien (alku)arvoja asetustiedosto-tekstitiedostoon ja toinen asia laittaa osa toiminnallisuudesta tekstitiedostoon.
Mitä voidaan sanoa siitä milloin osa toiminnallisuudesta kannattaa olla määriteltynä tekstitiedostossa vaikka joutuisi tekemään luokan tai funktion, joka tulkitsee sellaisia tekstitiedostoja?
Miten vaikuttaa tehokkuuteen kun sitten osa toiminnallisuudesta ei voi olla käännösaikana kääntäjän tiedossa vaan päätetään vasta ajon aikana eli ohjelman alustuksessa? Vai voiko kääntäjä sittenkin jotenkin huomioida sellaisten tekstitiedostojen sisällön?
Tekstitiedostossa siis vaikka joku merkkijono " km yp ev nu ds" tarkoittaa jotain toiminnallisuutta.
Mitä voidaan sanoa siitä milloin osa toiminnallisuudesta kannattaa olla määriteltynä tekstitiedostossa vaikka joutuisi tekemään luokan tai funktion, joka tulkitsee sellaisia tekstitiedostoja?
Miten vaikuttaa tehokkuuteen kun sitten osa toiminnallisuudesta ei voi olla käännösaikana kääntäjän tiedossa vaan päätetään vasta ajon aikana eli ohjelman alustuksessa? Vai voiko kääntäjä sittenkin jotenkin huomioida sellaisten tekstitiedostojen sisällön?
Tekstitiedostossa siis vaikka joku merkkijono " km yp ev nu ds" tarkoittaa jotain toiminnallisuutta.
Vastaukset 2
Vanhimmat
Perinteisesti käännetyn koodin sisältä käytettäviin tekstitiedostoihin ei juuri kannata pistää toiminnallisuutta, pois lukien tietyt tietokantaoperaatiot (prepared statements=missä pärjätään ilman stored procedurea) tai käyttöjärjestelmäkomennot (komentotulkin rivi, mikä mahdollisesti voi vaihdella). Eli yleensä ne on niitä asetuksia. Hidastaa toimintaa muuten.
Erikseen on sitten shelliskriptit, mitkä on erittäin käyttökelpoisia (ainakin unixissa/linuxissa) moniin tehtäviin: housekeeping/archiving/backup/reporting (cronista ajettavat db-operaatiot mm. sqlplus/isql tms kautta) tai dbchanget (samojen sql-toolien kautta).. Näihin skripteihin voi pistää helposti tällaista "kerta-ajotoimintaa".
Voisin kuvitella, että c :n kanssa kannattaa joskus käyttää (vapaasti suomennettuna) päätöstaulukoita:
http://en.wikipedia.org/wiki/Decision_table
Eli sitä varten pitäisi kai olla joku luokka, jonka olio lukee tekstitiedostoon kirjoitetun päätöstaulukon ja sitten erilaisilla rajapintafunktioilla voi kysellä eri asioita siitä päätöstaulukosta. Olisiko tämä hyvä käytäntö? Onko sellaista luokkaa jossain paketissa?