MHDEV

inícioblogportfóliosobre

Conhecendo arquitetura de software

Marcos Henrique

2020-10-10

arquitetura

Estagiar na 3tecnos está sendo incrível! Ver a forma como uma empresa pensa no software é muito importante! Um dos pontos mais essenciais quando se pensa em software é a arquitetura que eu irei explicar nesse primeiro post de muitos que virão sobre o assunto! Fiquem ligados 🙂

Arquitetura ?

Sim isso mesmo, mas não com o significado que conhecemos normalmente mas.... esse nosso significado pode ser usado como exemplo para que possamos entender.

Qual o papel da arquitetura em uma obra ? 🤔 GIF
É definir as funções de cada parte, as suas localizações, qual material será usado e afins, e é basicamente esse processo estrutural que é a arquitetura de software são o conjunto de regras e definições para a organização dos nossos projetos!

E essas regras e definições?

Esses princípios são chamados de patterns! Ou seja a arquitetura de software não é nada mais que um conjuntos destas definições.

Exemplo prático

Sua mãe o pede para ir a feira, mas passa algumas regras:

  • Você só pode comprar os alimentos em bancas diferentes
  • O total da compra deve dar 100 reais

Podemos da forma mais simples possível dizer que cada regra individualmente é um pattern e o conjunto dessa regras um arquitetura.

A arquitetura BOA

"Sem dúvidas é muito legal pensar desta forma mas.... o MVC não é uma espécie de arquitetura? Se colocarmos regras como SOLID por exemplo seria uma arquitetura, qual a relação neste caso?" Sim, seria mas, existem as boas e as mais ou menos o principal problema das mais convencionais é o fato de nós ficarmos presos a todas as bibliotecas que usamos, imagine você e um PC fixo, você depende dele para trabalhar, já está acostumado com sua potência e programas instalados, nele está tudo que você mais precisa, e se ocorrer de precisar mudar de computador ? Já será uma tarefa mais complexa pelo fato de você possuir uma dependência do seu computador pelo que tem dentro dele, porém e se você colocar seus arquivos em programas como o google drive ? Nesse caso você está reduzindo sua dependência ao que está no seu computador, é exatamente este princípio que uma arquitetura boa segue, a nossa aplicação não vai depender de nenhuma biblioteca usada, isso se chama desacoplamento e é algo sensacional de se ver em ação! Com uma estrutura de pastas e arquivos você consegue trocar as dependências usadas de uma forma muito mais rápida e produtiva.

A utilidade deste modelo

Um exemplo bem prático e atual foi o fim da biblioteca momentJS que gerou uma grande repercussão na comunidade de desenvolvimento, pense em uma grande empresa de software, com muitas projetos no ar! Trocar essa biblioteca vai se tornar algo muito custoso e trabalhoso e gerar um grande prejuízo caso a empresa não use um padrão de arquitetura que permita o desacoplamento, por isso a arquitetura é tão importante! A empresa consegue manter padrão de código, tornando o processo de manutenção do seu software muito simples!

Algo incrível não é mesmo ? Eu fiquei espantado ao conhecer essa possibilidade, nem sabia o quanto esse formato que estava utilizando dependendo e instalando todas as libs possíveis poderia me trazer de prejuízos futuros!

Somente a verdade

verdade

Mas você pode não ter se convencido ainda de como a arquitetura é importante então vou lhe mostrar alguns dados sobre o assunto!

Esses dados foram extraídos do livro do ROBERT C. MARTIN chamado clean architecture que indico fortemente a leitura para entrar de cabeça nesses conhecimentos!

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d3d40e2d-b392-4a09-9dac-9129c6fd8d78/Untitled.png

Caso deseje conhecer mais esse livro em PORTUGUÊS acesse esse link :

Arquitetura Limpa: o Guia do Artesão Para Estrutura e Design de Software

E também esse livro de grande importância quando o quesito é código! Chamado clean code ou código limpo:

Código Limpo: Habilidades Práticas do Agile Software

Acessando pelo link você consome mais conhecimento e ainda ajuda o blog a continuar compartilhando conhecimento gratuito a muitos devs!

O primeiro dado mostrado no livro é o crescimento da equipe de software sem o uso da arquitetura ( os dados são reais ) a equipe cresceu consideravelmente a cada novo release do software, até algo bom mas ao comparar com o nível de produtividade dos programadores acontece algo impressionante e decepcionante ao mesmo tempo, a cada novo release do projeto por mais que o time tenha crescido consideravelmente a produtividade diminui em grande escala. Ou seja no início o software é feito rapidamente, é barato e demanda uma pequena equipe mas o quanto mais ele cresce mais caro fica e mais lento fica o processo de atualização 😥

Já com uma arquitetura o processo inicial do software é mais trabalhoso e mais custoso porém depois desse processo inicial a produtividade sobre consideravelmente, o custo diminui e o tempo entre cada release também diminui!

Um outro ponto de destaque muito importante e ressaltado no livro é o quesito responsabilidade ou seja é de responsabilidade dos devs pensar na arquitetura, não é algo que os gestores que normalmente não tem conhecimento em programação pensar e sim nos devs que tem esse conhecimento, gere resultado, e sempre pensando em todos os sentidos, presente , passado e futuro.

Um alerta

Mas não saia pensando em simplesmente construir arquitetura para todos os seus projetos, se estiver começando primeiro veja os conceitos iniciais, é muito importante tê-los para entender a arquitetura de uma forma mais fácil e intuitiva!

Ainda estou no início da minha aventura

esse processo de arquitetura é algo muito novo para mim, conheço a algumas semanas mas acredito que este material possa te ajudar a entender tudo de uma forma mais dinâmica, e absorver os conceitos base para progredir nesses estudos! Ainda teremos muitos posts e vídeos sobre o assunto então fiquem ligados aqui no blog e nas minhas redes sociais! Você pode acessá-las neste link: https://marcoshenrique.dev/about

Então é isso! Espero que tenha gostado desse post! Compartilhe com seus amigos que não conhecem esse conceitos e até a próxima!

Se inscreva em nossa newsletter

Receba conteúdo exclusivo semanalmente em sua caixa de email!

Se inscreva

MHDEV

Copyright © 2020 MHDEV by Marcos Henrique. All rights reserved