A capacidade de sintetizar um conceito é uma habilidade necessária para qualquer desenvolvedor. Vamos a um pequeno desafio:
Q: Defina o conceito de Próximo e Anterior em uma lista de qualquer tipo de elementos ordenados.
😖 Você pensa : “Poxa, você está de brincadeira, para que serve isso? Isso é mais uma daquelas questões que leva a lugar nenhum….” Então… vamos por partes (Tipo Jack – O estripador).
Próximo : É o menor elemento maior que o último.
Anterior: É o Maior elemento menor que o primeiro.
Simples né… Mas para que me serve isso ? Contexto é sempre o “Rei” do problema:
⚡ Você precisa entregar uma funcionalidade de pesquisa sequencial com muitos elementos contidos em uma base de dados de forma mais rápido possível sem comprometer o sistema, Como exemplo um extrato com período parametrizado.
O Problema aqui é que isso pode conter um número significativo de linhas não mesuráveis. Nesta hora você pensa em paginação, uma boa opção! Mas como faço ?
- As páginas devem ter uma quantidade máxima de linhas.
- Para avançar é só buscar pelo menor elemento maior que o último.
- Para voltar buscar pelo Maior elemento menor que o primeiro.
Continua simples né ? E Qual a dica para continuar performático ?
Mantenha índices adequado ascendentes e descendentes para facilitar ter o número de elementos desejados por página.
Agora é só escolha a sua linguagem preferida e escreva a solução. Reservar um tempo para sintetizar conceitos de um problema pode ser a chave para implementações eficientes e rápidas. Nem sempre é possível chegar à simplicidade, mas devemos sempre tentar obter a essência do que queremos resolver antes de executá-la.
Tenham um excelente dia! Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável.






