Catalogo per l'applicazione professionale di Access | ||
Version 1.01 (2014-05-24) di Karl Donaubauer (traduzione di Salvino Crucitti) | ||
Che cosa rende professionale un'applicazione di Access? A causa della diversità delle esigenze e stili non vi è un'assoluta evidenza ma indicazioni o il migliore utilizzo. Formalmente questo non è un altro manuale ma una lista di controllo di parole chiavi con riferimenti che richiedono conoscenze di base. Da un lato può servire come riferimento per l'auto-valutazione dei propri progetti e per la valutazione da parte di terze parti tecnicamente informate (colleghi, clienti, consulenti informatici). Dall'altro lato fornisce orientamenti per il lavoro di singoli sviluppatori e di cooperazione nei team. All'AEK15 (15° Conferenza degli Sviluppatori Tedeschi di Access, Ott. 2012), io introdussi una bozza, discussa con 200 colleghi e raccolsi i loro commenti in un questionario. L'elenco ed i link saranno aggiornati dopo nuove discussioni ecc. |
||
1. Database | 2. Applicazione | 3. Programmazione |
1.1 Normalizzazione | 2.1 Frontend e backend | 3.1 VBA precede le macro |
1.2 Chiavi Primarie | 2.2 Nomi | 3.2 Nomi |
1.3 Indicizzazione | 2.3 Versione | 3.3 Dichiarazione variabili |
1.4 Relazioni ed RI | 2.4 Ergonomia | 3.4 Riferimenti |
1.5 Nomi | 2.5 Interfaccia utente dedicata | 3.5 SQL precede DAO/ADO |
1.6 Query ottimizzate | 2.6 Provvedimenti per la prestazione | 3.6 Gestione dell'errore |
1.7 Lavoro ottimizzato con backend ODBC | 2.7 Compattazione | 3.7 Commenti |
2.8 Oggetti morti | 3.8 Formattazione | |
1. Database | ||
1.1 Normalizzazione Sono rispettate almeno le forme normali da 0 a 3. 0 = nessun calcolo viene salvato motivi: consistenza dei dati |
||
1.2 Chiavi Primarie Ogni tabella ha una chiave primaria. motivi: identificazione in ogni occasione, aggiornabilità |
||
1.3 Indicizzazione Ogni tabella è adeguatamente indicizzata. - indici per ogni campo e combinazione di campi che si usa per join, filtri, ordinamenti
motivi: prestazione |
||
1.4 Relazioni ed RI
- vengono applicate le relazioni tra le tabelle motivi: consistenza dei dati, supervisione, verifica della struttura delle tabelle |
||
1.5 Nomi Riguardo tabelle, query, campi, alias: - nessun parola chiave di SQL/VBA/Access nei nomi definiti dall'utente lista positiva, cioè accettabile/ragionevole: dalla A alla Z, dalla a alla z, da 0 a 9, trattino basso
motivi: manutenzione, prevenzione degli errori |
||
1.6 Query ottimizzate
- gli indici vengono utilizzati, laddove possibile motivo: le prestazioni |
||
1.7 Lavoro ottimizzato con backend ODBC
- le query per prestazioni critiche sono posizionate/eseguite sul server
- Query ODBC non vengono eseguite a livello locale da JET/ACE motivi: le prestazioni |
||
2. Applicazione | ||
2.1
Frontend e backend L'applicazione è separata in frontend e backend.
- le tabelle si trovano nel backend (o in tanti backend), tutto il resto in frontend motivi: evitare la corruzione sia del file che dei dati, efficace manutenzione dei frontend, ridotto traffico di rete risorse: FAQ 1.35 |
||
2.2 Nomi Riguardo oggetti di Access, controlli: - nessuna parola chiave di Access/VBA/SQL nei nomi definiti dall'utente lista positiva, cioè accettabile/ragionevole: dalla A alla Z, dalla a alla z, da 0 a 9, trattino basso
motivi: manutenzione, prevenzione degli errori |
||
2.3 Versione L'applicazione ha un sistema della versione che la rende possibile per lo sviluppatore e l'utente di distinguere da differenti release.
- requisiti minimi: numero di versione principale e secondario per il frontend motivi: manutenzione risorse: Wikipedia - Software versioning |
||
2.4 Ergonomia L'ISO 9241 per l'ergonomia del software è fondamentalmente soddisfatta:
- idoneità per l'attività risorse: Wikipedia - ISO 9241 |
||
2.5 Interfaccia utente dedicata
L'utente lavora sempre in una interfaccia specificatamente configurata per lui:
motivo: utilizzo amichevole, stabilità |
||
2.6 Provvedimenti per la prestazione
Sono prese i provvedimenti per la prestazione importanti e ben conosciuti:
risorse: siti di prestazioni di
FMS e
Tony Toews |
||
2.7 Compattazione
Backend di JET/ACE sono compattati con regolarità. Frontend sono compattati o sostituiti almeno di tanto in tanto.
motivi: eliminazioni di oggetti e dati spazzatura, tabelle deframmentate, aggiornate le statistiche delle query
risorse: Microsoft Jet Database Engine Programmer's Guide - Chapter 4 |
||
2.8 Oggetti morti
- oggetti che non vengono più usati sono eliminati
motivi: manutenzione |
||
3. Programmazione | ||
3.1 VBA precede le macro
- VBA prende la precedenza
motivi: miglior portata di servizi, flessibilità, efficienza di VBA |
||
3.2 Nomi Riguardo procedure, variabili, costanti: - nessuna parola chiave di VBA/Access/SQL nei nomi definiti dall'utente lista positiva, cioè accettabile/ragionevole: dalla A alla Z, dalla a alla z, da 0 a 9, trattino basso motivi: manutenzione, prevenzione degli errori risorse: Lista delle parole riservate di Allen Browne, Convenzione nomi di Reddick |
||
3.3 Dichiarazione variabili
Tutte le variabili sono dichiarate con il loro tipo dati. motivi: manutenzione, prevenzione dell'errore |
||
3.4. Riferimenti I riferimenti sono limitati a quelli realmente usati nell'applicazione. motivi: prevenzione dell'errore, prestazione |
||
3.5 SQL precede DAO/ADO Query/SQL utilizzato per operazioni di dati, ad eccezione della programmazione con DAO/ADO realmente necessaria, ad es. per cicli con memorizzazione intermedia o calcoli ecc. motivi: prestazione di operazioni di grande quantità di dati, blocchi da recordset, prevenzione dell'errore – il codice è potenzialmente propenso ad errore |
||
3.6 Gestione dell'errore
È presente una sufficiente gestione dell'errore motivi: stabilità, utilizzo amichevole risorse: MZ-Tools, vbWatchdog |
||
3.7 Commenti
Il codice sia sufficientemente commentato motivi: manutenzione |
||
3.8 Formattazione
Il codice è formattato per una facile lettura motivi: manutenzione |
||