Skip to content

Instantly share code, notes, and snippets.

View alexjosesilva's full-sized avatar
🚀
Inovação

Alex José Silva alexjosesilva

🚀
Inovação
View GitHub Profile
@alexjosesilva
alexjosesilva / api-desing-patter-cachin.java
Created March 19, 2024 06:47
Quando o cliente envia uma solicitação, o servidor verifica se há dados em cache para essa solicitação
import redis.clients.jedis.Jedis;
public class RedisCacheExemplo {
public static void main(String[] args) {
// Conecta ao servidor Redis local
Jedis jedis = new Jedis("localhost");
// Armazena dados no cache com uma chave e um valor
jedis.set("chave", "dados");
@alexjosesilva
alexjosesilva / api-Rate-Limiting.java
Created March 19, 2024 06:14
O cliente envia uma solicitação ao servidor. O servidor verifica a taxa de solicitações do cliente. Se estiver dentro do limite, o servidor processa a solicitação normalmente
import com.google.common.util.concurrent.RateLimiter;
public class RateLimitingExample {
private static final RateLimiter rateLimiter = RateLimiter.create(10); // 10 solicitações por segundo
public static void main(String[] args) {
for (int i = 0; i < 20; i++) {
if (rateLimiter.tryAcquire()) {
System.out.println("Solicitação " + (i + 1) + ": Processada");
} else {
@alexjosesilva
alexjosesilva / SecurityConfig.java
Created March 19, 2024 05:05
Authentication and Authorization: O cliente envia uma solicitação ao servidor com suas credenciais. O servidor autentica o cliente, verificando as credenciais
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/api/**").authenticated()
.and()
@alexjosesilva
alexjosesilva / singleEntryPoint.java
Created March 19, 2024 04:16
ingle Entry Point (Ponto de Entrada Único)
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping
public String singleEntryPoint() {
@alexjosesilva
alexjosesilva / Compositer.java
Created March 17, 2024 23:45
Compositer.java Design Pattern
import java.util.ArrayList;
import java.util.List;
public interface Componente {
void operacao();
}
public class Folha implements Componente {
@Override
public void operacao() {
@alexjosesilva
alexjosesilva / Encapsulamento.java
Created February 22, 2024 20:19
Encapsulamento
public class EncapsulationExample {
private int data;
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
@alexjosesilva
alexjosesilva / ProConcorrenteParalela.java
Created February 22, 2024 18:53
Programacao Concorrente Paralela
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ProgramaConcorrenteParalela {
public static void main(String[] args) {
// Cria um pool de threads com 5 threads
ExecutorService executor = Executors.newFixedThreadPool(5);
// Submete tarefas para execução
@alexjosesilva
alexjosesilva / poe.java
Created February 22, 2024 18:38
Programação Orientada a Eventos
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class ProgramaEventos extends Application {
@Override
public void start(Stage primaryStage) {
@alexjosesilva
alexjosesilva / programacaologica.java
Created February 22, 2024 18:35
Programação Lógica
import java.util.Arrays;
public class OitoRainhas {
private static final int N = 8; // Tamanho do tabuleiro
public static void main(String[] args) {
int[][] tabuleiro = new int[N][N];
if (resolverOitoRainhas(tabuleiro, 0)) {
imprimirTabuleiro(tabuleiro);
@alexjosesilva
alexjosesilva / programacaologica
Created February 22, 2024 18:27
Programacao Logica
% Predicado para verificar se uma rainha pode ser colocada em uma posição.
pode_colocar(_, []).
pode_colocar(Rainha, [Coluna/Linha|OutrasRainhas]) :-
Rainha #\= Linha,
Rainha + Coluna #\= Linha,
Rainha - Coluna #\= Linha,
pode_colocar(Rainha, OutrasRainhas).
% Predicado principal para posicionar as oito rainhas.
oito_rainhas([], []).