software-ul de configurare
De ce am nevoie pentru a configura?
programatori profesioniști, această întrebare poate părea ciudată. Pentru început, ori de câte ori există o lipsă clară de înțelegere a importanței această oportunitate. În acest caz, se pare că programul, ca un bloc de piatră cu inscripții sculptate pe ea - dacă doriți să schimbați eticheta, trebuie să facă o nouă piatră.
Există o altă extremă - când aproape totul este dus în setările. Aceste programe seamănă cu debordare și pentru a face să funcționeze, ar trebui să citiți descrierile tolmud și configura sute de parametri, în afară de mod nenatural de multe ori interdependente.
Ca întotdeauna, aveți nevoie pentru a găsi o cale de mijloc - pe de o parte, trebuie să încercăm să satisfacă bunul plac al diverșilor utilizatori, pe de altă parte, este necesar să se asigure că majoritatea utilizatorilor nu trebuie să configurați nimic.
Ce anume ar trebui să fie ajustate.
De exemplu, o situație destul de comună - Setați conexiunea bazei de date. Novice programatori de multe ori scrie ceva de genul:
Astfel, programul este legat de un driver JDBC specific. Utilizați un alt șofer, de exemplu, pentru a înlocui un pod pe RMI-proxy sau, în cazul Oracle, OCI pe subțire nu mai este posibilă fără recompilare.
Modalități de a stoca setările.
În orientat pe obiect de programare tot reprezentate ca obiecte. Setările sunt cel mai bine luate în considerare în același timp proprietățile anumitor obiecte care sunt stocate în fișiere de configurare. Modul în care setările sunt citite și scrise este strâns legată cu formatul de fișier și strategia de management selectată. Luați în considerare o opțiune ideală:- obiect personalizate nu trebuie să conțină cunoștințe despre formatul de fișier și a citit modul / scriere. Acest lucru ar permite, dacă este necesar, înlocuiți-un fel la altul.
- Cele mai multe dintre setările ar trebui să fie efectuate de către program (sub-meniu sau un program de configurare separat). Acest lucru facilitează foarte mult durata de viață a unei persoane care este angajată în administrare. Cele mai multe „yuniksoidov“ poate provoca neînțelegere :-), dar editarea de fișiere text în lumea de azi nu se poate face în multe cazuri.
- implicite rezonabile pentru parametrii care lipsesc trebuie să fie setat. Cu alte cuvinte - este necesar ca majoritatea utilizatorilor să ruleze programul ar trebui să facă un minim de setări. De obicei, lasă o primă impresie bună a programului, ori de câte ori este - cel mai important lucru.
Din păcate, acest ideal este destul de dificil de făcut în practică. Prima cerință implică dezvoltarea unui mecanism universal pentru păstrarea obiectelor. Astfel de sisteme sunt deja gata, dar de multe ori ele nu sunt potrivite pentru unii parametri. Elaborarea unui sistem de aceeași - nu este puterea tuturor.
Rezonabile ca implicit pentru multe ori este pur și simplu imposibil de imaginat. De exemplu, ceea ce pentru a pune ca numele SMTP-server? În cazul sistemelor bazate pe Unix, puteți încerca să pună localhost, dar pentru lume bazată pe Windows este rareori oricine va face.
Luați în considerare cele mai comune opțiuni sunt:
Numele fisierul .ini.
Numele fisierul .ini - a fost varianta cea mai comună în epoca de Windows 3.x. Acum, de programe Windows a devenit înlocuit prin stocarea setărilor în registru. Cu toate acestea, ini - aceasta este una dintre cele mai simple configurația de opțiuni de stocare. Din păcate, destul de des, această simplitate face ca recurgeau la diferite trucuri. Un exemplu tipic fisierul .ini:
În Java, nu există nici o clasă standard pentru a citi .ini fișiere, dar nu este o problemă. pentru că Formatul este foarte simplu, este ușor să o faci singur:
fișiere de proprietăți.
Acest format este comun în Unix-lume. El chiar mai ușor .ini fișiere, deoarece nu există nici un concept de secțiuni - totul este alcătuit din chei și valori. Un exemplu de fișier tipic:
În Java, există o clasă gata de citire / scriere aceste fișiere (java.util.Properties), dar are unele probleme. În prima lectură este imposibil de a seta codificarea fișierului, ceea ce înseamnă probleme cu litere românești. În al doilea rând funcția standard de înregistrare stochează datele în ordinea tastelor valorilor hash, ceea ce înseamnă - cum va dori. Dar este, de asemenea, ușor de rezolvat - suficient pentru a scrie un cititor / pisalku.
XML-fișiere.
Acest format este potrivit pentru mai multe scopuri, inclusiv pentru stocarea setărilor. format bazat pe XML se concentrează pe structura de copac, care este destul de mod natural este afișat pe obiecte. Un exemplu de fișier tipic:
Pentru citirea și scrierea astfel de fișiere sunt biblioteci speciale - așa-numitele XML-analizatorilor. Astfel de Derivatoare făcut deja destul de mult, așa că scrie-l singur nu există nici un punct - alege doar dreptul. două interfață software-ul standard a fost proiectat pentru interpretoare - eveniment (SAX) și ierarhic (DOM). Există, de asemenea, parsers cu interfața sa. Dimensiunea borcan cu un parser poate varia de la câteva kilobyți la un megabyte - în funcție de interfețele și capacitățile acceptate.
Pentru XML este, de asemenea, scris de mai multe biblioteci pentru a salva universal (serializarea) obiecte în fișiere XML. Aceste biblioteci permit algoritmul să se separe păstrarea obiectului însuși, care, după cum sa menționat deja, are multe avantaje.
Serializare.
Baze de date.
Utilizarea scripturilor - aceasta este una dintre modalitățile cele mai extreme de configurare. Acestea permit o flexibilitate maximă este atinsă în program ca urmare a emiterii de logica afară. Utilizarea de script-uri trebuie să știe, de asemenea, atunci când să se oprească - clientul final te plătește pentru program, o sarcină crucială, și nu pentru un alt interpret sau compilator pentru care ar trebui să pună un alt programator. Și se pare că, la fel ca în acea glumă - ce program nu începe să scrie, totul pare compilator.
Dar, de multe ori fără script-uri foarte greu. Exemple tipice - algoritmi import / export, algoritmi, cecuri de date. Puteți pregăti un set standard, și pentru a personaliza script-ul pentru a se potrivi cerințelor specifice ale clienților.
Configurarea programului Exemplu XML.
Un exemplu de conținutul fișierului de configurare:
Ca un XML parser este utilizat interpretor Sun-ovsky la modul DOM. Pe acest exemplu simplu, nu putem vedea nici un avantaj XML peste același fișier de proprietăți. Ele devin vizibile numai în programe destul de complexe, în cazul în care devine necesar pentru a stoca liste de parametri similari, sau conținutul de obiecte cu niveluri imbricate de două sau mai multe.