Arquitetura Front-end

— Guilherme Siquinelli 🗓️ 17/09/2022

Atualmente, com necessidades mais complexas e equipes numerosas, problemas e erros difíceis de resolver aparecem. É uma tendência natural que projetos se tornem obsoletos com o passar do tempo e, a dificuldade de mantê-los atualizados aumenta quando temos um número alto de dependências, fazendo com que a entropia do projeto cresça. A pessoa responsável pela arquitetura entra em cena, pois ela vê o software como ponto principal para que o produto consiga gerar o valor esperado, planejando um design de alto nível que será o alicerce, a estrutura sobre a qual o software será desenvolvido.

Fazendo uma analogia entre o desenvolvimento de software e a construção de um prédio, o arquiteto faz o desenho considerando suas necessidades estruturais e o uso que é previsto para ele, tanto em casos de uso como em intensidade. Então entrega aos engenheiros e técnicos que irão trabalhar na construção. Isso é muito importante na engenharia de software, porque diferente de um prédio, o software segue sendo construído e modificado, e não é concluído em 1 ou alguns poucos anos. É muito comum que novos planos apareçam com mudanças no escopo, este mercado é muito mais rápido, não só pelas variações de oferta e demandas no mercado, mas também por evoluções de tecnologias usadas. A arquitetura de software facilita o desenvolvimento de produtos mais robustos e sofisticados, criando diretrizes claras que permitem aos engenheiros saber a todo momento que tipo de código precisam construir para obter os resultados esperados.

Tendo uma visão ampla sobre a vida útil de um software, os arquitetos podem incluir já nos estágios iniciais estruturas chaves que se feitas quando o produto estiver em produção, demandam alto custo de implementação. É muito comum que empresas de tecnologia se concentrem mais na funcionalidade e na entrega de resultados imediatos do que na arquitetura e no ciclo de vida de seus produtos. Isso faz com que elas comecem a usar técnicas que não escalam bem e frameworks fáceis de usar ou que dependem muito de serviços de terceiros, porém quando aparecem milhares ou milhões de usuários e os investidores exigem escalabilidade com estabilidade, as coisas se complicam.

Alterar a estrutura de uma aplicação que ninguém usa e uma mudança global que afeta milhões de usuários ao mesmo tempo são coisas completamente diferentes, assim como não é a mesma coisa alterar a Stack ou framework usado quando apenas algumas pessoas trabalham no projeto, que realizar isso com centenas de colaboradores envolvidos.

A arquitetura de software ajuda na tomada de decisões a tempo de escolher quais riscos desejam ser assumidos ou evitados e, que poderiam afetar para sempre o rumo do projeto.

Last updated