Espero que essa pergunta não seja muito ampla. No futuro, talvez eu precise adicionar alguns sistemas de contabilidade e rastreamento financeiro a alguns aplicativos (principalmente aplicativos baseados na Web, mas minhas perguntas também se aplicam a aplicativos de desktop).
Agora, criar um registro simples de transações financeiras é teoricamente fácil. Uma tabela de banco de dados com algumas colunas pode fazer o trabalho. Até o MS Access, Excel ou apenas um arquivo de texto ASCII simples pode ser usado para armazenar datas de transação, IDs de contas e valores em dólares. No entanto, eu sinto que mesmo uma tabela SQL com backup com freqüência e integridade transacional pode não ser suficientemente robusta para rastreamento financeiro sério.
Ouço termos como "contabilidade de entrada dupla" e sinto que a maioria dos aplicativos de rastreamento financeiro (por exemplo, Mint.com ou GnuCash) possui uma estrutura ou processo de dados muito mais complicado para garantir que tudo se soma perfeitamente, exatamente como deveria, e que nenhum dado é perdido ou corrompido.
Minha pergunta é: ao projetar um aplicativo para rastrear transações financeiras, que considerações especiais de design devem ser feitas? Parece que pode haver muitos problemas em potencial ... problemas com precisão de arredondamento, verificações de paridade, algum tipo de processo de auditoria, backups especiais, segurança / criptografia, maneiras extras de proteger os dados no caso de uma falha no meio da entrada de dados. ... Eu realmente não sei o que devo perguntar especificamente, mas sinto que o setor de programação tem um conjunto de práticas recomendadas sobre as quais não sei nada. O que eles são?
Editar:
Parece que abri uma lata de vermes maior do que eu esperava. Para esclarecer, estou pensando especificamente em dois tipos de aplicativos:
- Aplicativos do tipo "Verificar registro", como GnuCash ou Quicken, que mantêm um registro de transações individuais para uso próprio.
- Aplicativos que rastreiam faturamento / crédito / ou "pontos" para fornecedores e clientes que lidam com uma empresa.
Provavelmente, não farei nenhum banco direto ou (AFAIK) qualquer coisa que tenha uma tonelada de regulamentos governamentais relacionados a finanças.