Dez Mil Livros Num Único Ficheiro Excel

Paulo Rodrigues5 min de leitura

Dez Mil Livros Num Único Ficheiro Excel

Um colecionador privado tinha reunido uma biblioteca de mais de dez mil livros distribuída por uma residência.

O catálogo inteiro vivia num único ficheiro Excel.

Isto não é uma crítica ao proprietário. Uma folha de cálculo é a ferramenta certa para os primeiros duzentos ou trezentos livros, e continua a ser quase certa durante muito mais tempo do que seria de esperar. É exatamente assim que uma coleção chega às cinco casas decimais dentro de uma só folha.

O que uma folha de cálculo deixa de fazer a esta escala

Tudo, exceto guardar.

Procurar significa Ctrl+F, e o Ctrl+F não sabe que José e Jose são o mesmo autor. Não há forma fiável de perguntar em que prateleira está um livro, a não ser que alguém o tenha escrito numa coluna e o tenha escrito sempre da mesma maneira. Duas pessoas não podem trabalhar no ficheiro ao mesmo tempo. E uma ordenação descuidada, com as colunas destravadas, desalinha silenciosamente dez mil linhas umas em relação às outras. É a falha que ninguém deteta senão meses depois.

O pedido era um catálogo que o proprietário pudesse realmente pesquisar, que continuasse a funcionar, e que não ficasse alojado na plataforma de outra pessoa.

O que construímos

Um catálogo web, alojado por nós, na Europa.

CamadaEscolha
FrontendReact, TypeScript, Vite, Tailwind, TanStack Query, Zod
BackendPocketBase, self-hosted
AlojamentoDocker multi-stage para Nginx, no nosso próprio VPS
Cópias de segurançaDiárias, às 04:30 UTC

Dezanove campos por livro: título, subtítulo, autor, editora, local e data de edição, língua, tema e subtema, tamanho, páginas, encadernação, coleção, tradução, ilustração, observações e, sobretudo, divisão e localização física, porque uma biblioteca privada organiza-se por onde as coisas estão.

A pesquisa ignora acentos e abrange título, autor, editora e tema. Em português, é essa a diferença entre um catálogo que se usa e um catálogo que se abandona.

Três níveis de permissões: administrador, editor e apenas leitura.

O que deliberadamente não faz

Não existe campo de preço. Não existe stock, custo, venda, cliente, encomenda, fatura nem fornecedor.

Estamos a enumerar ausências porque elas são o desenho. Isto é o catálogo de uma coleção que alguém possui, não o inventário de bens que alguém vende. Construir os campos de uma loja que o proprietário não tem acrescentaria superfície para manter e perguntas para responder, sem nada em troca.

Vale a pena dizer que nós próprios errámos nisto. Até esta semana, o nosso site descrevia este projeto como um sistema bibliotecário empresarial construído para instituições de ensino. Não é nem uma coisa nem outra. Corrigimos, nas duas línguas, no dia em que demos por isso.

A parte que interessa mesmo

Qualquer pessoa constrói um catálogo. O teste é conseguir alterar dez mil registos em produção sem estragar nenhum.

Duas operações, ambas sobre dados reais.

Uma importação de 29 livros novos, a partir de um ficheiro pontual que o proprietário enviou oito meses depois do lançamento. Dezanove colunas a mapear no esquema. No fim, lemos 551 campos individuais de volta da base de dados e comparámos cada um com a origem: 0 divergências. Uma comparação da coleção inteira com a cópia de segurança anterior à importação mostrou 29 registos adicionados e 0 registos preexistentes alterados ou removidos.

Uma unificação de grafia em toda a coleção. Duas variantes do nome de uma divisão tinham divergido. Corrigimos 92 registos e verificámos depois que foram exatamente 92 os modificados, que a divisão foi o único campo alterado em todos eles e que houve 0 alterações colaterais. O total manteve-se.

Dois pormenores sobre o método, que importam mais do que os números:

  • Testámos a semântica das atualizações num esquema clonado antes de tocar em registos reais, em vez de assumir que uma atualização parcial deixaria intactos os campos não indicados.
  • A execução em vazio apanhou um erro na nossa própria ferramenta de importação que teria inserido os 29 livros duas vezes. Nunca chegou à coleção real, porque corremos primeiro contra nada.

É este o argumento todo. Não "construímos um catálogo", mas alterámos 10.000 registos em produção e conseguimos mostrar, campo a campo, que só mudámos o que era suposto mudar.

Onde está hoje

No ar, alojado por nós na Europa, com cópias de segurança diárias, e com mais de 10.000 livros.

Se isto lhe soa familiar

O padrão não é sobre livros. É sobre uma folha de cálculo que deixou de ser uma folha de cálculo: várias pessoas a editá-la, sem validação, por isso um erro só aparece meses depois; sem permissões, por isso quem precisa de ver uma linha vê todas; e com uma pesquisa que se resume a abrir o ficheiro e carregar em Ctrl+F.

Se existe algures na sua empresa uma folha que passou discretamente a ser o sistema onde tudo está, vale uma conversa de vinte minutos.

Este caso é publicado de forma anónima. Não é identificado nenhum cliente, coleção ou local.

Perguntas Frequentes

Quando é que uma empresa deve sair de uma folha de cálculo?

Quando mais do que uma pessoa a edita, quando um erro de escrita pode passar semanas sem ser detetado porque nada valida o que é introduzido, quando toda a gente que precisa de ver uma linha vê todas, ou quando procurar significa abrir o ficheiro e usar Ctrl+F. São limites estruturais, não falta de cuidado.

Como se verifica que uma migração de dados correu bem?

Lendo os dados de volta e comparando com a origem campo a campo, não linha a linha. Comparando a coleção inteira com uma cópia de segurança anterior à migração, para provar o que mudou e o que não mudou. Testando a semântica das atualizações num esquema clonado antes de tocar em registos reais, e correndo sempre a importação em vazio primeiro.

Pronto para automatizar o seu negócio?

Construímos ferramentas de IA e sistemas de automação para PMEs europeias — desde MVPs rápidos até sistemas em produção, sempre em conformidade com o GDPR.

it's human stuff

Insights semanais de IA para PMEs europeias. Sem exageros, apenas o que funciona.

Continue a Ler