Padrão MVC
Model-View-Controller
Padrão de Projeto
x
Arquitetura de
Software
Padrão de Projeto
Padrões de projeto (design patterns) são
soluções típicas para problemas comuns em
projeto de software. Cada padrão é como
uma planta de construção que você pode
customizar para resolver um problema de
projeto particular em seu código.
Padrão de
Projeto
Padrões são como um conjunto de
ferramentas para soluções de problemas
comuns em design de software. Eles
definem uma linguagem comum que ajuda
sua equipe a se comunicar mais
eficientemente.
Arquitetura de
Software
Arquitetura de software é um conceito
abstrato, que se refere à organização de um
sistema. Ela é responsável por definir os
componentes que farão parte de um projeto,
suas características, funções e a forma
como devem interagir entre si e com outros
softwares.
Por que usar
Padrão de
Arquitetura de
Software?
1. Redução de riscos para o negócio;
2.Alinhamento de expectativas entre os
diferentes setores da empresa;
3.Construção de aplicações flexíveis e de alta
qualidade;
4.Possibilidade de integração com diferentes
linguagens e sistemas;
5.Maior nível de segurança para as
aplicações desenvolvidas.
Alguns tipos:
•Layers (camadas):Os módulos e componentes
do software são organizados em camadas de
funcionalidades, que podem ser desconstruídas
em diferentes serviços. Este padrão é mais
usado em programas de e-commerce.
Alguns tipos:
•Microservices (microsserviços): O padrão se
baseia em múltiplos serviços e componentes
para desenvolver uma estrutura modular. É o
modelo preferido dos desenvolvedores e
arquitetos de software, por permitir
escalabilidade e independência dos módulos,
que podem usar diferentes linguagens.
Alguns tipos
•Peer-to-Peer (P2P):Se você já
baixou algum arquivo via torrent, se
deparou com este padrão
arquitetural. No Peer-to-Peer, todos
os pares são clientes e servidores, ou
seja, cada computador é um
provedor de serviços independente
de um servidor central.
Alguns tipos:
•Pipes-and-filters (PF): Baseada em
uma arquitetura linear, o padrão
Pipe-and-filter usa os componentes
computacionais como filtros, que
recebem uma entrada, transformam-
na a partir de um ou mais algoritmos e
geram uma saída para um canal de
comunicação. Alguns exemplos deste
tipo de arquitetura de software são o
Sheel do Linux e os reprodutores de
vídeo em diferentes formatos.
Alguns tipos
•Service-Oriented Architecture
(SOA): O SOA facilita a operação
das grandes empresas, pois
auxilia na criação do processo de
encontrar, definir e gerenciar os
serviços disponibilizados. O
NuBank e a Amazon são
exemplos de corporações que
utilizam este modelo arquitetural.
Alguns tipos
•Publish-Subscribe (Pub/Sub): Principal padrão
arquitetural de redes sociais como Instagram e
do Spotify, o modelo Publish-Subscribe conecta
publicadores (publishers) e assinantes
(subscribers). Os publishers enviam mensagens
aos subscribers, que são notificados sempre que
um novo conteúdo é disponibilizado.
Model-View-
Controller (MVC)
O padrão MVC separa o projeto do
software em três camadas
independentes: o modelo (manipulação
da lógica de dados), a visão (a interface
do usuário) e o controlador (fluxo de
aplicação). Esta separação facilita a
manutenção do código, que pode ser
reutilizado em outros projetos.
Trocando em
miúdos...
•HTML fica com o view;
•PHP que controla o fluxo fica com o
Controller;
•E as classes/arquivos de conexão ao
banco fica com o Model;
Client-
Server
Cliente-Servidor
•Client-server (cliente-servidor): Neste
modelo arquitetural, o
processamento da informação se
divide em módulos e processos
distintos. Um deles é responsável pela
manutenção da informação e o outro
pela obtenção de dados. Este tipo de
arquitetura de software é bastante
usado em aplicativos de bancos e e-
mail.
Como interagem?
HTTP
Oi, sumida!
TCP
HTTP
Oi, sumida!
IP
TCP
HTTP
Oi, sumida!
MAC Ethernet de destino e origem
IP
TCP
HTTP
Oi, sumida!
Apache
1. Obtenção do endereço IP do domínio a partir da
pesquisa em cache ou por meio do
servidor DNS (Domain Name System) —todos os sites
recebem um endereço IP ao ser criado pela primeira
vez no servidor web;
2. Solicitação da URL completa pelo navegador;
3. Resposta do servidor, que envia as páginas
solicitadas ou uma mensagem apropriada ao
usuário, nos casos em que as páginas não existem
(mensagem de erro 404)ou na ocorrência de outro
erro —oerro 401, por exemplo, que ocorre quando o
acesso é negado em função da falta de credenciais.
Xampp
VSCode
•PHP Intelephense;
Verbos HTTP
•GET
•POST
•DELETE
•PUT
Métodos $_Get e $_Post
São requisições
utilizadas em
ambientes Web;
São requisições
do protocolo
HTTP;
Métodos $_Get
Este método é utilizado para
passar poucas informações ao
realizar uma pesquisa ou
simplesmente passar uma
informação para outra página
através da URL (barra de
endereços). A função do método
GET é pura e simplesmente
recuperar um recurso existente no
servidor. O resultado de uma
requisição GET é cacheável" pelo
cliente, ou seja, fica no histórico
do navegador e não ser utilizado
para alteração de dados no
servidor.
Métodos $_Post
Este método é utilizado para
enviar dados de formulários, como
por exemplo um login ou contato,
além disso ele é mais seguro e tem
uma capacidade de enviar dados
muito maior que o GET. Nesse
método uma conexão paralela é
aberta e os dados são passados
por ela. Não há restrição referente
ao tamanho da requisição e os
dados que devem ser enviados não
são visíveis através da URL do
navegador.
Métodos $_Get e $_Post
Para recuperar os valores dentro
da página você precisa utilizar
$_GET e $_POST respectivamente
para cada método de envio e estas
são variáveis globais, você poderá
utilizá-las em qualquer parte do
código e ambas são do tipo array.
var_dump($_GET, $_POST);
Atividade
•Crie uma aplicação, a qual seja solicitado 3 notas dos alunos e retorne
a média, além de sinalizar se o aluno foi aprovado (>=7), recuperação
(entre 3 e 7) e reprovado (<3);
Atividade
•Crie uma tela de login, solicitando o usuário e senha e realize a
verificação se os valores inserido estão corretos e chame a tela de
boas-vindas;
header('Location: boasvindas.php');
Criem o BD: •Aluno
•Cpf
•Nome
•Email
•Comentario
•idComentario
•Comentario
•Cpf_aluno
•idUser
•login
•idUser
•usuario
•senha
WEBSERVICE E APIS
WEBSERVICE
é uma coleção de alguns
protocolos e padrões
abertos que são usados
para trocar dados entre
sistemas ou aplicativos.
API
API (Application Programming
Interface) é uma interface de
software que permite que dois
aplicativos interajam diretamente
entre si sem qualquer intervenção do
usuário
API x Web Service
Todos os serviços da web são
APIs, mas nem todas as APIs são
serviços da web
WEB SERVICE APIs
Sempre precisa de redes
para as operações
Pode haver operações sem
rede
Arquitetura SOAP Arquiteturas REST, SOAP
SOAP
SOAP (Simple Object Access Protocol) é
um protocolo HTTP baseado em XML
para interagir com serviços da web. Foi
criada como uma linguagem
intermediária para permitir que
aplicações escritas em diversas
linguagens de programação se
comuniquem eficientemente entre si.
REST
REST (Representational State
Transfer) é uma abordagem
arquitetônica para comunicação
que é comumente utilizada na
criação de serviços da web. É um
modelo cliente-servidor sem
estado. Os serviços da Web
RESTful são aqueles definidos
usando o conceito REST.
WEB SERVICE
APIs
Sempre precisa de redes para
as operações
Pode haver operações sem
rede
Arquitetura
SOAP
Arquiteturas
RESTful, SOAP
Arquitetura mais pesada, pois
geralmente segue o SOAP
Arquitetura com opções mais
leves em vários protocolos
Transferência de dados por
XML
Transferência de dados por
XML ou JSON
HTTP
HTTP e HTTPS