Spero che questa domanda non sia troppo ampia. In futuro potrei dover aggiungere alcuni sistemi di contabilità e monitoraggio finanziario ad alcune applicazioni (principalmente applicazioni basate sul Web, ma le mie domande riguardano anche le app desktop).
Ora, la creazione di un semplice registro delle transazioni finanziarie è teoricamente facile. Una tabella di database con alcune colonne potrebbe fare il lavoro. Anche MS Access, Excel o anche solo un semplice file di testo ASCII potrebbero essere utilizzati per memorizzare date di transazione, ID account e importi in dollari. Tuttavia, ritengo che anche una tabella SQL con backup frequente con integrità transazionale potrebbe non essere abbastanza solida per un serio monitoraggio finanziario.
Sento termini come "contabilità in partita doppia" e ho la sensazione che la maggior parte delle app di tracciamento finanziario (ad esempio, Mint.com o GnuCash) abbia una struttura o un processo di dati molto più complicati per garantire che tutto sia doppio si somma perfettamente, esattamente come dovrebbe, e che nessun dato viene mai perso o danneggiato.
La mia domanda è: quando si progetta un'app per tenere traccia delle transazioni finanziarie, quali speciali considerazioni di progettazione dovrebbero essere fatte? Sembra che potrebbero esserci così tanti potenziali problemi ... problemi con precisione di arrotondamento, controlli di parità, qualche tipo di processo di controllo, backup speciali, sicurezza / crittografia, modi extra per proteggere i dati in caso di crash durante l'immissione dei dati. ... Non so davvero cosa dovrei chiedere in modo specifico, ma ho la sensazione che l'industria della programmazione abbia una serie di migliori pratiche di cui non so nulla. Quali sono?
Modificare:
Sembra che abbia aperto una lattina di vermi più grande di quanto mi aspettassi. Per chiarire, sto pensando specificamente a due tipi di app:
- App di tipo "Controlla registro" come GnuCash o Quicken che mantengono un registro delle transazioni individuali per uso personale.
- App che tengono traccia della fatturazione / credito / o "punti" per fornitori e clienti che trattano con un'azienda.
Probabilmente non farò alcuna attività di direct banking o (AFAIK) qualsiasi cosa che abbia un sacco di regolamenti governativi relativi alla finanza collegati.