O que é Ledger e por que você precisa aprender?
Um ledger é essencial para manter o controle financeiro de qualquer negócio. Ele registra todas as transações de forma organizada e cronológica.
O que é Ledger Série
Um ledger, ou razão contábil, livro contabilidade, é um registro financeiro que contém todas as entradas de débito e crédito de uma empresa. Seja um estoque, seja um almoxarifado, ou então uma conta bancária. Um ledger, essencialmente, ele é o livro onde todas as transações financeiras ou movimentos são documentadas de maneira organizada e cronológica. Cada entrada no ledger é chamada de lançamento contábil, que pode incluir diversas transações, como vendas, compras, pagamentos e recebimentos.
Como surgiu?
Os primeiros registros de contabilidade surgiram em civilizações antigas como a Mesopotâmia, onde tábuas de argila eram usadas para registrar transações comerciais. Durante a Idade Média, a contabilidade evoluiu significativamente na Europa, culminando com o monge e matemático italiano Luca Pacioli, que documentou o revolucionário sistema de partidas dobradas em seu livro "Summa de Arithmetica, Geometria, Proportioni et Proportionalità" em 1494. Esse sistema, que registra cada transação em duas contas (débito e crédito), formou a base da contabilidade moderna. Com a era digital, os ledgers tradicionais foram substituídos por sistemas automatizados, e mais recentemente, a tecnologia de blockchain introduziu ledgers distribuídos, oferecendo maior segurança e transparência. Hoje, os ledgers são fundamentais para a integridade das transações financeiras e a gestão eficiente de recursos em todo o mundo.
Como funciona?
O funcionamento de um ledger é relativamente simples. Cada transação financeira é registrada em uma entrada dupla - isso significa que para cada débito, há um crédito correspondente. Por exemplo, se uma empresa faz uma venda a crédito, ela debita a conta de clientes (ativo) e credita a conta de receitas (receita). Esse método garante que a contabilidade esteja sempre equilibrada, com a soma dos débitos igualando a soma dos créditos.
Como instituições financeiras/bancárias utilizam o ledger?
As instituições financeiras e bancárias utilizam ledgers para registrar todas as transações que ocorrem diariamente. Esses registros incluem depósitos, saques, transferências, pagamentos de empréstimos e juros, entre outros. Os ledgers ajudam a manter a transparência, rastreabilidade e integridade dos registros financeiros, facilitando auditorias e garantindo a conformidade com regulamentações.
Calculando o saldo bancário com JavaScript e MongoDB
Para calcular o saldo bancário de forma rápida e eficiente, e também levando consideravelmente a palavra resumidamente, uma abordagem comum é manter o saldo atualizado na última entrada do ledger. Vamos ilustrar isso com um exemplo em JavaScript e MongoDB.
Definir a estrutura do ledger no MongoDB:
{
_id: ObjectId("60c72b2f9b1d8e4d2f507d3a"),
date: ISODate("2023-06-13T12:00:00Z"),
description: "Depósito",
amount: 1000.00,
balance: 1000.00
}
Função para adicionar uma nova entrada no ledger e calcular o saldo:
const { MongoClient } = require('mongodb');
async function addTransaction(description, amount) {
const url = 'mongodb://localhost:27017';
const client = new MongoClient(url);
try {
await client.connect();
const database = client.db('finance');
const ledger = database.collection('ledger');
const lastEntry = await ledger.find().sort({ date: -1}).limit(1).toArray();
const lastBalance = lastEntry.length > 0 ? lastEntry[0].balance : 0;
const newBalance = lastBalance + amount;
const newEntry = {
date: new Date(),
description: description,
amount: amount,
balance: newBalance
};
await ledger.insertOne(newEntry);
console.log('Transaction successfully added:', newEntry);
} finally {
await client.close();
}
}
addTransaction('Deposit', 500.00);
O que estamos fazendo no exemplo acima:
conecta no DB
Busca a connection Ledger
Busca a última entrada
Pega o primeiro item do array ordenado pela mais recente
Calcula o saldo
Insera a nova entry na collection
É claro que o código acima é somente uma representação simples de como realizar um Ledger e esta longe da ideal, pois no mundo real você precisa lidar com problemas como:
Consistência eventual
Concorrência
Idempotência
Entre diversos outros clássicos da TI
Conclusão
Tendo isso em mente, para desenhar um bom ledger indico no mínimo saber lidar com os três tópicos acima.
E ai, acha que consegue escrever um Ledger?
O que melhoraria no exemplo, resumido, acima?
Como ficaria débitos? Reembolsos? Lançamentos futuros?
Todos esses desafios são ótimos e existem diariamente em qualquer frente que iremos trabalhar. Por isso, na minha opinião, você deveria aprender Ledger.
Aprender Ledger te força aprender inúmeros outros conceitos que irão te ajudar a encontrar a solução para diversos problemas diferentes e com certeza te destacar na sua carreira.
Sigam-me no Twitter
Se gosta e quer apoiar o meu trabalho seja meu patreon
Quer alavancar sua carreira? Comece agora com minha mentoria pelo link
https://mentor.daniloassis.dev
Veja mais em https://linktr.ee/daniloab