- Nome: Portfolio;
- Data de Início: 00/00/0000;
- Previsão de Término: 00/00/0000;
Descrição: ...
- Documentação de Arquitetura do Projeto;
- Documentação de Desenvolvimento do Projeto;
- Documentação de Utilização do Projeto;
- Domínios;
- Linguagem Ubíqua;
- Linguagem Pictográfica (Domain Storytelling);
- DDD (Event Storming);
- Diagramas.
- Arquiteturas:
- Microsserviços;
- Explorar arquiteturas nas APIs Rest (hexagonal e clean architecture);
- 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.
- POO - Programação Orientada a Objeto:
- Polimorfismo;
- Herança;
- Encapsulamento;
- Abstração.
- 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.
- 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.
- 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);
- 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;
- 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).
- Integrações:
- Mercado Pago;
- Correios (Cep);
- 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.
- Kotlin (primeiros passos no Kotlin)
Microservice Client
Modelo Conceitual
Modelo Lógico
Modelo Físico
- IntelliJ IDEA;
- Maven;
- Jira;
- Git e GitHub;
- Postman e Insomnia;
- BRModelo;
- SQL Power Architect;
- StarUML.