Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

📚 RESUMO COMPLETO PARA PROVA
1. Arquiteturas de Software
1.1 Monolítica
	•	O que é: Modelo tradicional onde toda a aplicação (interface, lógica e banco de dados) está em um único projeto.
	•	Exemplo: Sistemas legados de bancos, ERPs antigos.
	•	Vantagens:
	•	Mais simples de desenvolver inicialmente.
	•	Fácil de testar em ambientes pequenos.
	•	Desvantagens:
	•	Dificuldade em escalar partes específicas da aplicação.
	•	Manutenção complexa conforme o projeto cresce.
	•	Qualquer alteração exige o reempacotamento de toda a aplicação.
🔗 Analogia: Pensa num bloco de LEGO gigante — se você quiser mudar uma pecinha, precisa refazer o bloco todo.
1.2 Arquitetura em Camadas
	•	O que é: A aplicação é dividida em camadas específicas:
	•	Apresentação: Interface com o usuário.
	•	Lógica de Negócio: Processamento de dados e regras.
	•	Dados: Acesso e persistência em banco de dados.
	•	Objetivo: Melhor organização e separação de responsabilidades.
🔗 Analogia: Como uma empresa — o atendimento (camada de apresentação), a gerência (camada de lógica) e o arquivo (camada de dados) são setores separados.
	•	Benefícios:
	•	Código mais organizado.
	•	Facilidade de manutenção e testes.
1.3 Orientada a Serviços (SOA)
	•	O que é: Arquitetura onde a aplicação é composta por vários serviços independentes que se comunicam por protocolos padrões (ex.: SOAP, REST).
	•	Exemplo: Um sistema bancário onde “Empréstimo”, “Conta Corrente” e “Cartões” são serviços separados.
	•	Benefícios:
	•	Reutilização de serviços.
	•	Facilidade de integração com outros sistemas.
	•	Desvantagens:
	•	Overhead de comunicação entre serviços.
	•	Pode ser difícil de gerenciar sem governança adequada.
1.4 Model-View-Controller (MVC)
	•	O que é: Padrão arquitetural que separa:
	•	Model (Modelo): Dados e regras de negócio.
	•	View (Visão): Interface com o usuário.
	•	Controller (Controle): Mediação entre Model e View.
	•	Benefícios:
	•	Organização do código.
	•	Facilita manutenção e testes.
	•	Exemplo: Aplicações web em Django, Rails ou Laravel.
2. Microsserviços
	•	Definição: Arquitetura que divide a aplicação em pequenos serviços independentes, cada um responsável por uma funcionalidade específica.
	•	Comunicação: Via APIs, HTTP, mensagens assíncronas (RabbitMQ, Kafka).
	•	Vantagens:
	•	Modularidade: cada serviço pode ser desenvolvido e implantado independentemente.
	•	Escalabilidade: só os serviços necessários são escalados.
	•	Resiliência: falha de um serviço não derruba o sistema todo.
	•	Desvantagens:
	•	Complexidade: gerenciar muitos serviços e suas comunicações não é trivial.
	•	Orquestração: necessidade de ferramentas como Kubernetes para coordenar.
🔗 Analogia: Uma cidade: a polícia, o hospital, o correio — cada um é responsável pela sua função e atua independentemente, mas todos compõem a cidade.
3. Frameworks Backend
3.1 Flask (Python)
	•	O que é: Framework leve e minimalista para web em Python.
	•	Características:
	•	Baseado no padrão WSGI.
	•	Usa Jinja2 para templates HTML.
	•	Integração fácil com bancos via SQLAlchemy.
	•	Ideal para APIs REST rápidas e protótipos.
3.2 Node.js com Express
	•	O que é: Plataforma baseada em JavaScript que roda no servidor.
	•	Express:
	•	Framework minimalista para gerenciamento de rotas e middlewares.
	•	Diferenciais:
	•	Assíncrono: ótimo para aplicações que precisam lidar com múltiplas conexões (chat, streaming).
	•	Escalabilidade: fácil de criar aplicações performáticas.
🔗 Dica: Node.js é excelente para aplicações em tempo real como chats (ex.: WhatsApp Web).
3.3 PHP PDO (PHP Data Objects)
	•	O que é: Interface padronizada para acesso seguro e eficiente a bancos de dados.
	•	Características:
	•	Segurança: prevenção contra SQL Injection.
	•	Compatibilidade: suporte a vários bancos (MySQL, PostgreSQL).
	•	Flexibilidade: troca de banco sem mudar o código.
3.4 Java JDBC
	•	O que é: API Java para comunicação com bancos de dados relacionais.
	•	Características:
	•	Usa drivers específicos para cada banco.
	•	Permite envio de comandos SQL a partir do Java.
	•	Padrão de mercado para aplicações corporativas.
4. Ferramentas para Testes e Monitoramento
4.1 Postman
	•	O que é: Ferramenta para desenvolvimento e teste de APIs.
	•	Funcionalidades:
	•	Envio de requisições HTTP (GET, POST, PUT, DELETE).
	•	Automação de testes: criar scripts para validar respostas.
	•	Documentação: gerar e compartilhar documentação de APIs.
	•	Benefícios:
	•	Interface amigável.
	•	Facilita o teste de endpoints antes da integração.
1. O que é uma arquitetura monolítica?
Uma única aplicação onde toda a lógica, interface e acesso a dados estão em um único projeto.
2. Cite duas vantagens da arquitetura em camadas.
Separação de responsabilidades e organização do código.
3. Como funciona a comunicação em uma arquitetura SOA?
Via protocolos padrões como REST e SOAP, com troca de mensagens entre serviços.
4. Quais são as três partes de um sistema MVC?
Modelo (dados), Visão (interface) e Controle (lógica).
5. Explique o conceito de microsserviços em uma frase.
Arquitetura onde uma aplicação é dividida em pequenos serviços independentes que se comunicam entre si.
6. Qual a principal vantagem do Flask?
Leveza e facilidade para desenvolver APIs REST rápidas.
7. Qual o principal benefício do Express no Node.js?
Gerenciamento fácil de rotas e middlewares com alta escalabilidade.
8. O que o PHP PDO ajuda a prevenir?
SQL Injection.
9. O que é necessário para Java usar o JDBC?
Um driver específico para o banco de dados em uso.
10. Para que serve o Postman?
Desenvolver, testar e documentar APIs de maneira prática.
 Referências Extras (para aprofundar)
	•	Martin Fowler: Microservices
	•	Postman Docs
	•	Oracle JDBC Guide
	•	Flask Official Documentation
	•	Node.js Express Guide
🧠 MAPAS MENTAIS
🌐 Arquiteturas de Software
Arquiteturas de Software
├── Monolítica
│ ├── Um único bloco
│ ├── Simples de desenvolver
│ └── Difícil de escalar e manter
├── Em Camadas
│ ├── Separação: Apresentação, Lógica, Dados
│ ├── Código organizado
│ └── Facilidade de manutenção
├── SOA (Orientada a Serviços)
│ ├── Serviços independentes
│ ├── Comunicação via protocolos
│ └── Reutilização de serviços
└── MVC (Model-View-Controller)
 ├── Model: Dados
 ├── View: Interface
 └── Controller: Lógica
🧩 Microsserviços
Microsserviços
├── Definição
│ └── Serviços pequenos e independentes
├── Comunicação
│ └── APIs, HTTP, Mensageria
├── Vantagens
│ ├── Modularidade
│ ├── Escalabilidade
│ └── Resiliência
└── Desvantagens
 ├── Complexidade de orquestração
 └── Gestão de comunicação
🛠 Frameworks Backend
Frameworks Backend
├── Flask (Python)
│ ├── Leve e minimalista
│ ├── WSGI + Jinja2
│ └── SQLAlchemy
├── Node.js com Express
│ ├── JavaScript no backend
│ ├── Assíncrono
│ └── Gerenciamento de rotas
├── PHP PDO
│ ├── Interface para bancos
│ ├── Segurança (SQL Injection)
│ └── Multibancos (MySQL, PostgreSQL)
└── Java JDBC
 ├── API para bancos
 ├── Drivers específicos
 └── Aplicações corporativas
🔎 Ferramentas de Teste e Monitoramento
Postman
├── Testes de API (GET, POST, PUT, DELETE)
├── Automatização de testes
└── Geração de documentação

Mais conteúdos dessa disciplina