Introdução
O que é Arquitetura de Software?
Podemos usar essa resposta do stack overflow como um ponto de partida para nossa discussão.
Como regra de bolso, podemos pensar que a Engenharia de Software é o grande conjunto das habilidades de construção de programas e sistemas desde sua concepção até a entrega e manutenção. Por sua vez, a Arquitetura de Software é uma sub-área da engenharia que lida com o desenho e definição dos componentes que farão parte da solução entregue.
Pela ISO/IEEE 42010-2011, podemos conceituar Arquitetura como:
A organização fundamental de um sistema incorporada em seus componentes, relacionamentos com o ambiente e os princípios que conduzem o seu design e evolução.
Qual o momento ideal para aprender sobre Arquitetura?
Na minha opinião, o momento ideal para aprender a arte de planejar soluções de software é após a fase em que você é capaz de construir software minimamente útil e funcional. Mais especificamente, na fronteira entre júnior e pleno.
Para ser mais claro, depois que você tiver terminado de estudar pelo menos o ciclo básico1 e também tenha alguma vivência do mundo real2.
Contexto Histórico
Antigamente, a maneira de se hospedar aplicações (principalmente no ambiente corporativo) era bem diferente de como é feito hoje com a chegada do cloud como principal meio de hospedagem.
Aliado à evolução de "onde" colocar seus programas, vieram também as mudanças em "como" o processo de construção de sistemas é feito (por exemplo, o surgimento das metodologias ágeis).
Não se engane. A depender de onde você vai trabalhar, é plenamente possível encontrar demandas que ainda envolvam aplicações monolíticas em servidores físicos3.
Perfil de Arquiteto
No geral, um arquiteto tem que ser capaz de pensar acima do simples fato de produzir código executável para uma camada de abstração de como criar soluções.
Existem alguns tipos de enfoques possíveis a depender da responsabilidade que a pessoa irá executar. A ISA elenca os seguintes tipos no seu site:
- Solution Architect
- Business Architect
- Software Architect
- AI Architect
- Integration Architect
- Agile Architect
- Hybrid Infrastructure Architect
Bibliografia
- The Open Group Architecture Framework (TOGAF). link aqui. É o manual mais completo e complexo sobre todo o processo de arquitetura.
- ISO 42010/2011. link aqui
- Site da Global IT Architects Association