Nerds-On

Informações, novidades e curiosidades. Tudo e mais um pouco sobre tecnologia da informação

Construindo uma aplicação à prova do tempo

Quando iniciamos o desenvolvimento de uma aplicação, ainda no papel, nos deparamos com várias dúvidas e uma delas é  ‘Quais tecnologias utilizar?’. Essa pergunta não é fácil de responder, cada cenário leva a uma (ou muitas!) respostas diferentes. Com a alta volatilidade das tecnologias que vivenciamos atualmente, o essencial para uma aplicação é que ela esteja preparada para evoluir, acompanhando o que há de melhor surgindo no mercado, e para isso, a melhor carta na manga é uma boa arquitetura.

Nesse artigo abordarei um pouco de uma arquitetura na qual trabalhei recentemente e que na minha opinião exemplifica bem a flexibilidade que necessitamos: SOFEA (também conhecida como Thin Server).

Service Oriented Front-End Architecture (ou Arquitetura Front-End Orientada a Serviço) é um padrão de arquitetura que tem como objetivo desacoplar toda a lógica de apresentação de uma aplicação do servidor, ou seja, nenhuma lógica de como mostrar os dados na tela ficará no servidor, deixando a responsabilidade para quem realmente tem o dever de fazer: a aplicação cliente do usuário.

Tradicionalmente o servidor, quando requisitado, costuma reunir todas as informações necessárias (inclusive muitas repetidas) e agrega-las a uma página (htmljsp, …) que é retornada ao browser, que por sua vez necessita parsear todo o conteúdo a cada nova requisição.

d-arqcomum

O Problema desse tipo de arquitetura é o alto grau de dificuldade em evoluir a aplicação, especialmente em uma época onde a cada dia surge uma nova necessidade (como por exemplo, um site mobile ou um app) e para adaptar-se acaba gerando muito retrabalho, engessando todo o processo e deixando-a obsoleta.

Seguindo os princípios da SOFEA, definimos uma API (um contrato de comunicação) e expomos as funcionalidades  através de webservices (REST é altamente recomendado aqui), essa API será consumida por todas suas aplicações de apresentação (seu site, seu aplicativo para smartphone, etc…) – ou até mesmo por outros sistemas.

Assim você fica livre para evoluir qualquer parte da aplicação (tanto no servidor como nas diferentes aplicações que consomem os dados), com qualquer tecnologia, apenas respeitando aquele contrato definido originalmente e o melhor: não gerando qualquer retrabalho em outro ponto da aplicação.

d-arqsofea

Esse tipo de abordagem também gera outros benefícios, como uma interface rica e ágil, sem códigos com lógica para diferentes interfaces – deixando tudo mais organizado, uma menor transferência de dados (só será feito o download dos dados requisitados, e não uma nova pagina a cada requisição), um maior índice de cache, além de termos uma arquitetura cloud e mobile-friendly, ambos requisitos essenciais nos dias atuais.

Estar pronto para mudanças, esse é o tipo de postura que temos que buscar, passar meses procurando a solução para todos os futuros problemas nem sempre tem resultado positivo, seja flexível, tenha antes de tudo uma arquitetura (independente de qual seja!) que permita evoluir gradualmente, em diferentes direções, sem gerar impacto e esteja preparado para o que esta por vir na hora que surgir!

Para saber mais sobre a arquitetura abordada nesse artigo, confira o site oficial dedicado a esse conceito.

Qualquer dúvida, xingamento, elogio ou sugestão, deixe aqui nos comentários do blog ou então no meu twitter @whatsupjean ou no twitter do @nerds_on.

Até o próximo!

Referências:
http://sofea.net/
http://www.smart-soft.com/downloads/articles/sofea.html

Autor: Jean Pereira

Blumenauense, estudande de computação e Palmeirense fanático!