Artigos Internos

Pensamento de Desempenho em OutSystems

Plataformas low-code, como a OutSystems, são populares por permitirem um desenvolvimento de aplicações mais rápido e fácil em comparação com a codificação tradicional.

No entanto, alguns desenvolvedores e organizações levantam preocupações sobre o seu desempenho e robustez, especialmente à medida que as aplicações crescem.

Não é incomum que uma aplicação OutSystems passe em todos os testes durante o desenvolvimento, apenas para encontrar problemas mais tarde em produção. Os fluxos começam a abrandar, os utilizadores experienciam atrasos e alguns processos podem até exceder o tempo limite. Estes problemas muitas vezes surgem de implementações ineficientes que passam despercebidas durante o desenvolvimento.

A boa notícia é que muitos destes problemas podem ser evitados. Ao planear antecipadamente e realizar testes de performance antes de lançar uma aplicação, as equipas podem garantir uma experiência mais fluida em produção. A performance deve ser uma consideração chave desde o início do projeto — não algo abordado apenas após o surgimento de problemas.

Procura formas de prevenir estes problemas? Aqui estão algumas práticas recomendadas para otimizar o desempenho nas suas aplicações OutSystems.

  • Conceção do Modelo de Dados

Projetar um modelo de dados limpo e eficiente é essencial para o desempenho e a manutenibilidade a longo prazo:

  • Utilize chaves estrangeiras para definir relações entre entidades em vez de se basear em campos de texto para pesquisas.
  • Evite criar entidades com demasiados atributos, pois tornam-se mais difíceis de manter ao longo do tempo.
  • Tenha em mente que os requisitos da aplicação podem mudar e o seu modelo de dados pode crescer em complexidade, pelo que deve projetar com escalabilidade em mente.
  • Agregados vs. Consultas SQL

Embora os agregados sejam mais fáceis de usar e gerenciem otimizações automaticamente, as consultas SQL podem oferecer mais controlo e benefícios de desempenho em alguns cenários.

  • Evite junções desnecessárias e retorne apenas os atributos de que realmente precisa. As agregações tratam disto por defeito, mas com consultas SQL, terá de o fazer manualmente.
  • Prefira joins em vez de subconsultas para melhor desempenho.
  • Crie índices em colunas usadas frequentemente em filtros ou junções para acelerar a recuperação de dados. No entanto, tenha cuidado — demasiados índices podem abrandar as modificações de dados (por exemplo, inserções, atualizações).
  • Minimize pesquisas baseadas em texto; confie em chaves estrangeiras indexadas sempre que possível.
  • Utilize sempre paginação ao lidar com grandes conjuntos de dados para evitar carregar demasiados dados de uma só vez.
  • Evite colocar agregações ou consultas SQL dentro de ciclos. Em vez disso, recupere todos os dados necessários numa única consulta bem estruturada, utilizando junções. Mesmo que seja mais complexa de escrever, terá melhor desempenho.

Lembre-se sempre que o que funciona com 100 registos pode falhar com 10.000. Pense no futuro e construa para escalabilidade.

  • Processos Assíncronos

Quando um processo síncrono desencadeado por um utilizador demora demasiado tempo e causa timeouts, considere movê-lo para um processo assíncrono. Pode utilizar temporizadores ou processos em segundo plano como BPT (Business Process Technology).

  • Use execução assíncrona para operações pesadas ou demoradas que não precisam de bloquear a experiência do utilizador (por exemplo, gerar relatórios, enviar emails, processar grandes conjuntos de dados).
  • Certifique-se de que os seus temporizadores e processos em segundo plano estejam otimizados e não executem mais tempo do que o necessário. Implemente sempre uma gestão de tempo limite adequada para lidar com cenários em que os processos falhem ou demorem mais do que o esperado. Lógica assíncrona mal concebida pode afetar negativamente o desempenho do sistema.
  • Para tarefas programadas, execute-as durante as horas de menor movimento, quando a atividade do utilizador é menor para reduzir a carga do sistema.

As suas solicitações demoram muito e não consegue perceber porquê à primeira vista? Utilize o Service Center para resolver problemas. Verifique os registos, mensagens de erro e consultas lentas. Frequentemente, uma única consulta ineficiente pode afetar o desempenho geral – a correção pode ser um pequeno ajuste, como adicionar um índice ou filtrar menos registos.

OutSystems é uma plataforma low-code poderosa que suporta desenvolvimento rápido sem sacrificar o desempenho, quando usada criteriosamente. Com as práticas corretas, pode potenciar aplicações de alto desempenho, escaláveis e fiáveis.

Para melhorar como programador, incorpore a performance na sua mentalidade desde o início. O que funciona bem hoje com um pequeno conjunto de dados pode ter dificuldades amanhã com milhões de registos. Pergunte-se sempre: “Isto continuará a ter um bom desempenho à medida que o sistema cresce?”

Ao construir com escalabilidade e desempenho em mente desde o primeiro dia, evita refações dispendiosas mais tarde — e entrega aplicações melhores e mais rápidas que os utilizadores adoram.

 

Marisa Serrano 

Programador de Software

Artigos Internos

Artigos Relacionados