Newsletter #031 - Atuação do QA no planejamento da Arquitetura P. I
Seu newsletter semanal voltado para tecnologia e qualidade de software
Olá pessoal, mais uma semana de newsletter voltado para tecnologia e qualidade de software.
Na semana passada estudamos um pouco mais sobre a parte de segurança de software, mais voltado para o OWASP e como o QA pode utilizar do Top 10 para aperfeiçoar a segurança dentro das aplicações, caso não tenha lido segue o link. Nessa semana estaremos conhecendo um pouco das principais arquiteturas de software, bora lá?
Arquitetura de Software
Partindo da premissa que todo profissional de qualidade de software irá participar de todas as camadas do desenvolvimento de uma aplicação, nada mais justo o QA acompanhar a concepção da arquitetura do software, mas antes disso é importante o QA ter o domínio das principais arquiteturas utilizadas atualmente, que será o foco da newsletter de hoje.
Arquitetura Monolítica
Ainda muito utilizado no mercado é um design de software no qual todos os componentes do aplicativo são interligados e interdependentes, formando uma única unidade executável. Nesse modelo, todas as funcionalidades do sistema são desenvolvidas e implantadas como parte de uma única aplicação. Seu grande diferencial é o fácil desenvolvimento, facilidade nos testes e muito utilizado especialmente em projetos menores. Muitos aplicativos web tradicionais são construídos com uma arquitetura monolítica, usando tecnologias como frameworks MVC (Model-View-Controller) como Ruby on Rails, Django (Python), ou Laravel (PHP).
Arquitetura Orientada a Eventos
A Arquitetura Orientada a Eventos (AOE) é um modelo de design de software onde os componentes do sistema são projetados para responder a eventos gerados dentro ou fora do sistema. Esses eventos podem representar mudanças de estado, ações do usuário, ou outras atividades relevantes para o funcionamento do sistema.
Cada evento são notificações assíncronas que indicam que algo aconteceu em um sistema. Podem ser gerados por diferentes partes do sistema, como sensores, usuários, outros sistemas ou mesmo internamente por componentes do próprio sistema, assim sendo muito utilizado em sistemas distribuídos, sistemas de mensageria, sistemas de processamento de eventos em tempo real, IoT (Internet das Coisas), e em integração de sistemas. O maior desafio dessa arquitetura é garantir a ordem de eventos, lidar com eventos duplicados ou perdidos, e gerenciar a complexidade do fluxo de eventos em sistemas grandes e distribuídos.
Arquitetura em Camadas
O seu design organiza um sistema em camadas distintas, cada uma responsável por uma função específica. Cada camada se comunica apenas com as camadas adjacentes, seguindo uma hierarquia bem definida. Isso promove a separação de preocupações e facilita a manutenção e o desenvolvimento do sistema.
Um dos maiores exemplos desse tipo de divisão arquitetural é aplicações web divididas em três camadas: a camada de apresentação (interface do usuário), a camada de lógica de negócios (onde ocorre o processamento e a tomada de decisões) e a camada de acesso a dados (para interação com o banco de dados). Seu maior desafio é conseguir acompanhar o crescimento da aplicação sem perder a comunicação e hierarquia entre as camadas.
Arquitetura Microserviço
Por fim, a arquitetura microserviços é o mais utilizado no momento, seu design estrutura um aplicativo como uma coleção de serviços independentes, cada um com sua própria lógica de negócios e banco de dados. Cada serviço é construído em torno de uma funcionalidade de negócio específica e pode ser desenvolvido, implantado e dimensionado de forma independente. Sua principal característica é serviços independentes, desacoplamento e resiliência e tolerância a falhas.
Seu maior desafio é que embora os microserviços ofereçam muitos benefícios, eles também introduzem complexidade operacional, incluindo desafios como gerenciamento de comunicação entre serviços, coordenação de transações distribuídas e monitoramento de sistemas distribuídos.
Bom, nessa semana conhecemos as principais arquiteturas utilizadas no mercado. Para a próxima semana veremos os desafios que o QA possui para acompanhar desde a concepção do projeto, participando ativamente do desenvolvimento da arquitetura. Não perca 🚀!
O que rolou de Tecnologia?
10 “duras verdades” que os desenvolvedores juniores precisam ouvir - todos nós passamos pela fase do júnior. Ganhar experiência profissional não é fácil ainda mais quando escutamos algumas mentiras nas redes sociais e no mercado. Este texto aborda uma visão de verdades que todo júnior deve ouvir quando começa na carreira.
Desenvolvimento de Features: Navegando Entre Falhas e Sucesso - texto breve que apresenta uma visão ágil da agilidade e como devemos atuar entre o desenvolvimento de novas funcionalidades.
Descubra as vantagens do desenvolvimento de aplicações personalizadas com plataformas low-code - low-code ainda é uma vertente de software que muitos torcem o nariz. Nesse texto é apresentado uma visão dos principais pontos que fazem o low-code ser uma alternativa no desenvolvimento de software.
E Qualidade de Software, como está?
Pare de testar seu código! - texto com um título polêmico que apresenta uma visão da importância dos testes de serviço. No texto é mostrado o custo de determinados tipos de teste voltado no código, e como é importância do teste voltado no serviço.
Guia abrangente sobre como utilizar a estratégia de testes contínuos em 2024 - teste contínuo é uma das maiores evoluções dentro da qualidade de software. Nesse sentido o texto aborda a melhor forma de desenvolver estratégias de testes contínuos no ano de 2024.
Roadmap do Engenheiro de QA - roadmap de uma área sempre é importante para estarmos aperfeiçoando nosso conhecimento, assim, nesse texto é abordado uma visão global de um engenheiro QA e seus pontos de evolução.
Eventos Importantes não perca!
QA do Zero: Como Iniciar sua Jornada na Qualidade de Software - Evento Online.
Data: 14/03
Inscrições abertas
Vejo vocês na próxima newsletter 😁🚀!
“Pobre não é o homem que tem pouco, mas o homem que deseja mais.” – Seneca