Misc Flashcards
MVC
É uma arquitetura de software que separa as regras de negócio do restante da interface do usuário. Faz isso dividindo a aplicação em três partes: Model, View e Controller
Model
Camada que gerencia os comportamentos fundamentais e os dados da aplicação.
É onde temos a lógica de programação e as regras de negócio.
View
Provém a interface ao usuário. Apresenta o que vem da camada model de forma adequada ao usuário.
Controller
Recebe input do usuário e chama métodos dos objetos da comada modelo e da view para as ações correspondentes
JavaBean
Uma classe que respeita as convenções abaixo:
- Ter construtor default público
- Permitir acesso a suas propriedades por meio de acessores
- Implementar o Java.io.Serializeable (o objeto é transoformado numa sequência de bits para ser enviado pela rede)
SpringBean
Qualquer objeto gerenciado pelo Spring Framework Container
Hibernate
É um ORM: Object-Relational mapping. Mapeia objetos do java em tabelas no banco de dados sem ter que usar SQL.
Java Persistence API
É uma especificação. Especifica como o Hibernate deve ser implementado para prover persistência de dados em bancos relacionais.
Usa anotações.
Maven
Ferramenta de Construção e de Gerenciamento de Projeto
Do que consiste o build no Maven
Compilação do código fonte Testes (unitários e de integração) Empacotamento do código compilado em arquivos JAR Agrupamento dos arquivos JAR em WAR Fazer o deploy dos WAR em servidores
O que é Conventions Over Configuration no Maven?
Não é necessário especificar cada tarefa do build, a estrutura de diretórios criada pelo Maven já estabelece como isso é feito
(Maven) Juntamente à capacidade de construir e gerenciar o projetos estão ligadas outras duas características/funcionalidades.
Gerenciamento de dependências como lib e spring.
Uso de plugins
(Maven) Versionamento
- 2.1-987-beta
3: major version
2: minor version
1: patch
987: build number
beta: qualifier
3.2.1-SNAPSHOT: diz ao maven que é uma versão em desenvolvimento
(Maven) Repositórios: onde estão?
/.m2
(Maven) Wagon
Transporta os artefatos do repositório pra máquina e vice-versa
(Maven) POM
Documento XML usado para descrever um projeto maven.
POMS podem herdar propriedades de um POM pai
API
Application Programming Interface
Application: Quaisquer programas ou funcionalidade agrupadas para serem usadas por um usuário final para um propósito
Programming Interface: um ponto final de uma aplicação com que direfentes programas podem interagir.
Elabore mais um pouco a respeito do conceito de interfaces.
Interfaces permitem controlar o funcionamento sem que se saiba o funcionamento interno através de exposiçãso seletiva de funcionalidades. Elas definem mneiras de se comunicar com outros objetos.
REST
Representational State Transfer. É um conceito de arquitetura para gerenciar o estado de informação. É um conjunto de regras que desenvolvedores podem seguir ao criarem APIs. Essas regras permitem que programas conversem entre si.
Quais são as quatro qualidades de uma API Rest?
- Identificar os recursos → usando a url do HTTP
- Representar mudanças → usando os verbos do HTTP
- Usar mensagens de erro autodescritivas → usando status response do HTTP
- HATEOAS → usando a interface HTML para HTTP
Estrutura de um request
Endpoint
Método
Headers
Body
Request endpoint
É a URI/URL. É composta por:
- root: o ponto de início, a identificação da aplicação
- path parameter: determina o recurso que se busca
- query parameters: parêmetros que são passados para api na uri que te dão a opção de modificar a requisição usando pares chave-valor usando. São usados para filtrar o recurso. O início de uma query param é o ponto de interrogação?
Métodos HTTP de requisição
Especificam a ação desejada em relação ao recurso especificado na uri.
GET, POST, PUT, DELETE, PATCH
HTTP Headers
São pares de propriedade-valor separados por “:”. São usados para dar informaçào tanto ao cliente quanto ao servidor. Podem ser usados para autenticação, fornecer informação sobre o corpo da request etc.