A importância da Arquitetura Aplicacional



O Romil é especialista em desenvolvimento de software em Outsystems…
O constante crescimento tecnológico ao longo dos últimos anos conduz a uma acentuada necessidade de desenvolvimento de software tornando as aplicações cada vez mais completas e complexas. Surge, neste sentido, uma questão muito importante: Como conseguimos garantir uma manutenção e custo reduzidos com aplicações maiores? A resposta é com uma atenção especial à importância da arquitetura aplicacional e a sua correta definição!
Parece simples, mas durante muitos anos este conceito não estava bem assente na maioria das empresas. Era privilegiada a rapidez da entrega não sendo tida em conta a evolução do produto. Quando se tornou imperativo adicionar novas funcionalidades percebeu-se que a rapidez não trouxe vantagens quanto ao desempenho, manutenção evolutiva e escalabilidade das aplicações.
Conseguem imaginar um livro todo escrito na mesma página? Não? É exatamente isso que acontece em muitas aplicações com vários conceitos misturados na mesma “página” tornando a sua leitura bastante complicada e impossibilitando o seu crescimento. Numa aplicação estruturada desta forma não conseguirmos ter sequer uma clara perceção da quantidade de funcionalidades que podem deixar de funcionar caso se altere apenas uma linha.
A grande parte das aplicações desenvolvidas em OutSystems, têm uma aplicação com vários módulos e a separação das camadas lógicas existentes no modelo proposto (4 Layer Canvas) é efetuado dentro da mesma aplicação. Esta abordagem funcionando, rapidamente percebemos que a aplicação se começa a tornar mais lenta a publicar e mais lenta a efetuar passagens entre os diferentes ambientes, causando um decréscimo da produtividade.
É por isso necessário fazer uma reflexão e análise prévia acerca do que pretendemos construir, quais são os conceitos funcionais e como podemos agrupar os nossos módulos em diferentes aplicações. Esta reflexão prévia permitirá que o desenvolvimento seja efetuado de forma progressiva, sem impactos no trabalho da restante equipa e tornando-o passível de ser ampliado futuramente.

Numa primeira impressão, vemos uma estrutura de aplicação que não aparenta problemas a nível de arquitetura, mas será que conseguimos responder concretamente em que é que consiste cada módulo desta aplicação? Será que conseguimos estimar a quantidade de ecrãs necessários para cada módulo? E a quantidade de tabelas que iremos ter num único módulo da camada Core?

Uma correta abstração dos conceitos funcionais, a separação das aplicações monolíticas em diferentes aplicações e módulos e uma análise constante à implementação são as chaves para que, a longo prazo, uma aplicação possa ser mantida e evoluída sem que exista um custo acrescido para cada novo requisito que seja necessário implementar. Desta forma, iremos ter várias aplicações, com ciclos de vida diferentes e uma gestão independente entre elas, podendo até, ter equipas específicas para cada uma das soluções, minimizando o número de dependências, o tempo necessário a cada implementação e aumentando, assim, a produtividade.
Em suma, um refletido e empenhado trabalho de arquitetura aplicacional é fundamental para garantir a flexibilidade e qualidade da aplicação, garantindo a sua escalabilidade, alto desempenho e possível adaptação de forma ágil.
Mais de Romil Naggi:
What's Your Reaction?

O Romil é especialista em desenvolvimento de software em Outsystems na Affinity. Licenciado em engenharia informática, é completamente apaixonado por aquilo que faz. Além de ser um profissional dedicado o Romil gosta de partilhar conhecimento e nunca diz que não a um desafio!