Criar uma app requer muito mais do que conhecer uma linguagem de programação e ter uma boa ideia. É preciso planejar, definir as ferramentas a serem utilizadas, como os frameworks que melhor se adaptam ao projeto.
É provável que o rascunho inicial da app ou do programa não seja o melhor e, com certeza, não será o plano definitivo, porém, deste primeiro desenho dependerá o sucesso ou o fracasso do seu projeto. É aqui onde é preciso ter um conceito de arquitetura de software.
O que é Arquitetura de Software?
De forma simples, podemos dizer que a arquitetura de software é o conjunto de padrões e orientações que ajudam na construção de um programa ou app. Esses padrões permitem ter uma guia para os desenvolvedores, analistas e demas profissionais relacionados no processo de criação da app.
Por que é importante a arquitetura de software?
A arquitetura de software serve para desenhar uma rota para cumprir os requerimentos de uma app, por tanto, temos que analisar cada um deles para definir o que deve ser feito e como deve ser feito. Neste ponto começamos a definir os servidores, as tecnologias, bases de dados, entre outros.
A definição das tecnologias é um dos aspectos mais importantes da arquitetura de software, mas, isso não quer dizer que uma decisão feita seja definitiva ou que não exista chance de ser modificada no futuro. Por exemplo, a função realtime dos mapas da Uber usava node.js, essa foi a primeira implementação. Porém, num momento determinado, o node.js parou de funcionar da forma correta e por isso o aplicativo migrou para o uso de go.
Um dos objetivos da arquitetura de software é criar uma estrutura do programa ou aplicativo que permita executar mudanças de forma simples. A arquitetura de software define as estruturas básicas de como o software deve ser; quais elementos devem existir e como se comunicam entre eles.
Definição da estrutura
Temos 4 etapas principais para a definição da estrutura de uma app, baseada na arquitetura de software:
Requerimentos: esta é a etapa da coleta da informação. Os requerimentos para a arquitetura da app são documentados. Por exemplo, a escolha de uma cor para o menu não é determinante na estrutura da arquitetura, e sim a escolha de uma forma específica de salvar a informação.
Desenho: é a etapa mais importante da definição das tecnologias necessárias para solucionar problemas. Cuidado de escolher tecnologias só porque estão na moda. Também devem ser considerados padrões como o MVC (Modelo, Vista, Controlador) ou a arquitetura de micro serviços.
Documentação: uma vez definido o desenho, é preciso comunicá-lo de maneira eficaz a toda a equipe. É importante criar documentação que funcione como referência e que seja a base do trabalho da equipe.
Verificação: após a documentação é importante fazer uma avaliação do processo. Isto pode ser feito inclusive sem uma linha de código e ver com toda a equipe se tem uma novidade no desenho que não esteja funcionando para reformá-la e corrigi-la. Esta verificação deve ser feita de forma posterior, com métricas, por exemplo, da eficiência da app e saber se com uma mudança essa eficiência melhora ou não.
Aprenda mais sobre Arquitetura de Software no curso avançado da Platzi e, lembre-se, #Nunca pare de aprender!