/etc

Primary LanguageJava

INTRODUÇÃO

  • Nome: Portfolio;
  • Data de Início: 00/00/0000;
  • Previsão de Término: 00/00/0000;

Descrição: ...

ÍNDICE

  1. Documentação de Arquitetura do Projeto;
  2. Documentação de Desenvolvimento do Projeto;
  3. Documentação de Utilização do Projeto;

Documentação de Arquitetura do Projeto

  1. Domínios;
  2. Linguagem Ubíqua;
  3. Linguagem Pictográfica (Domain Storytelling);
  4. DDD (Event Storming);
  5. Diagramas.

Documentação de Desenvolvimento do Projeto

Documentação de Utilização do Projeto

CHECKLIST

Back-end

  1. Arquiteturas:
  • Microsserviços;
  • Explorar arquiteturas nas APIs Rest (hexagonal e clean architecture);
  1. Geral:
  • README (mostrar o progresso da aplicação ao longo do tempo);
  • Metodologia Ágil (Scrum Board no Jira);
  • Versionamento de código (Git, GitHub, Gitflow e Commit Semântico);
  • Repositório Monorepo;
  • UML - Unified Modeling Language (Pacotes, Use Case, Classes, Sequência);
  • Docker;
  • Kubernets.
  1. POO - Programação Orientada a Objeto:
  • Polimorfismo;
  • Herança;
  • Encapsulamento;
  • Abstração.
  1. Boas práticas:
  • DDD - Domain Driven Design (entidades, objetos de valor, agregados, serviços, fábricas, linguagem ubíqua, contextos delimitados e etc);
  • TDD - Test Driven Development (JUnit e Mockito, JMeter e JavaFaker - integração e unitários);
  • Clean Architecture (usar presenters);
  • Design Pattern (strategy e outras);
  • Refactor;
  • Solid (SRP, OCP, LSP, ISP, DIP);
  • Clean Code;
  • Object Calisthenics;
  • Kiss, Dry, Yagni e Soc;
  • 12 Fatores;
  • Sun Checks;
  • Google Checks;
  • Análise Estática de Código (SonarLint);
  • Inversão de Controle e Injeção de Dependência.
  1. Spring:
  • Spring Boot 3.0.0;
  • Web;
  • Persistência (com Spring Data JPA - Derived Queries, JPQL, JPQL em XML, JPQL com SDJ, JPQL Dinâmico, Criteria API, Native Query e Specifications DDD);
  • Persistência (com Spring Data MongoDB);
  • Bean Validation;
  • Migration (Flyway e ou Liquibase);
  • Security;
  • Hateoas;
  • Batch;
  • Social (redes sociais);
  • Cloud (Eureka, Gateway, balanceamento de carga, circuit breaker, Sleuth, Resilience4J e Open Feign);
  • GraphQL;
  • Java Mail Sender/Spring mail;
  • Mensageria AMQP (RabbitMQ ou Kafka);
  • Flo;
  • Shell;
  • OpenAPI 3 (SpringDoc - Swagger - documentação unificada no Gateway);
  • Cache;
  • Actuator;
  • Admin;
  • GraalVM;
  • Lombok;
  • MinIO (armazenar documentos);
  • DevTools.
  1. API Restful (3 pilares):

Seis Constraints de Roy Fielding:

  • A API deve ser Cliente/servidor;
  • A aplicação deve ser Stateless (não guardar estado);
  • Ter capacidade de realizar cache para reduzir tráfego;
  • Interface uniforme (recursos bem definidos, hipermídias e utilizar métodos Http e códigos de retorno);
  • O sistema deve ser construído em camadas;
  • Deve possuir a capacidade de evoluir sem quebrar.

Modelo de maturidade de Leonard Richardson:

  • Nível de maturidade 0;
  • Nível de maturidade 1;
  • Nível de maturidade 2;
  • Nível de maturidade 3;

Hypertext Transfer Protocol - RFC 2616

  • ...
  • ...
  • ...
  • ...

Outros

  • Content Negociation (retornar Json e XML);
  1. Microservices:
  • micro_api-gateway;
  • micro_service-registry;
  • micro_config-server;
  • micro_usuarios;
  • micro_cursos;
  • micro_notícias;
  • micro_pagamentos;
  • micro_email;
  • micro_dashboard;
  • micro_etc;
  1. Java:
  • Java (17 LTS);
  • Tratamento de Exceções (Global e ou Local + protocolo RFC 7807);
  • Funcional;
  • Stream;
  • Lambda;
  • Optional;
  • Method Reference;
  • Generics;
  • Threads;
  • Interface Funcional;
  • Estrutura de Dados (lista, pilha, fila e coleção);
  • Collections Framework;
  • Math;
  • Text Blocks;
  • Comparable e Comparator;
  • JDBC;
  • Enums;
  • Logback (Escolhido nível Info com saída para console - Há seis níveis: trace, debug, info, warn, error e fatal);
  • Content Negotiation;
  • Padrão GMT/UTC de Data e Hora (ISO-8601);
  • Objects;
  • ObjectMapper;
  • BeanUtils;
  • ReflectionUtils;
  • StringUtils;
  • Cors;
  • Matcher e ExampleMatcher (Get - pesquisa);
  • Padrão Repository com EntityManager;
  • DTOs - Data Transfer Object (Class Record);
  • Regular Expressions (Class Pattern);
  • Eventos;
  • Entrada e saída I/O;
  • XStream XML;
  • Javadoc (somente no service);
  • Multi-tenancy;
  • Jasper Reports;
  • Bibliotecas Desconhecidas (WordUtils, JavaFaker, Blaze Persistence e etc).
  1. Integrações:
  • Mercado Pago;
  • Correios (Cep);

Banco de Dados Relacional e Não Relacional (NoSQL)

  • Banco de dados PostgreSQL;
  • Banco de dados MySQL;
  • Banco de dados MariaDB;
  • Banco de dados MongoDB (NoSQL);
  • Banco de dados Redis (em memória para testes);
  • DER - Diagrama Entidade Relacionamento.

MOBILE

  • Kotlin (primeiros passos no Kotlin)

DATABASE

Microservice Client

Modelo Conceitual

ConceptualModel_client_5

Modelo Lógico

LogicModel_client_5

Modelo Físico

PhysicalModel_client_5

FERRAMENTAS

  • IntelliJ IDEA;
  • Maven;
  • Jira;
  • Git e GitHub;
  • Postman e Insomnia;
  • BRModelo;
  • SQL Power Architect;
  • StarUML.