Skip to content

Instantly share code, notes, and snippets.

View rafaelpontezup's full-sized avatar

Rafael Ponte rafaelpontezup

View GitHub Profile
@rafaelpontezup
rafaelpontezup / skt-command.sh
Created September 26, 2023 20:05
StackSpot: Showing the current status of the deploy
# we can generate the report as "json" or "md" (markdown)
stk deploy status <execution_id> --report json
@rafaelpontezup
rafaelpontezup / perguntas-sobre-testes-de-carga-e-estresse.md
Created May 18, 2023 13:51
Perguntas sobre testes de carga e estresse

Perf

1. Explique o conceito de teste de carga e estresse?

Teste carga signigica verificar como uma aplicação ou sistema se comporta sob uma determinada carga de trabalho (workload) esperada, que pode ser uma carga pequena, moderada ou grande. Além disso, essa carga é aplicada durante algum intervalo de tempo, como minutos ou horas, para validar a estabilidade do sistema e detectar possíveis problemas no uso de recursos, como memória, CPU, disco ou conexões com um banco de dados por exemplo. É importante entender que um teste de carga não ultrapassa a capacidade esperada ou projetada para uma aplicação ou sistema.

Enquanto teste de estresse está relacionado a verificar como uma aplicação ou sistema se comporta quando aplicamos uma carga de trabalho (workload) muito alta e intensa, geralmente uma carga superior a esperada ou especificada nos requisitos. A ideia aqui é submeter a aplicação além da sua capacidade projetada a fim de detectar problemas ou gargalos no uso de recursos ou componentes internos. O

@rafaelpontezup
rafaelpontezup / ParceladorDeFatura.java
Last active November 12, 2024 18:34
Quantos e quais cenarios/casos de testes você enxerga para o código da classe ParceladorDeFatura? (adiciona resposta nos comentarios)
package br.com.zup.edu.certificacoes.testing.parcelador;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
public class ParceladorDeFatura {
public static final BigDecimal VALOR_MINIMO_FATURA = new BigDecimal("100");
@rafaelpontezup
rafaelpontezup / races-conditions.md
Created October 31, 2022 17:01
Chapter Stackspot: Race conditions, locking e bancos de dados relacionais

Race conditions, locking e bancos de dados relacionais

Pretendo apresentar um código com uma lógica de negócio simples que funciona bem na perspectiva do negócio mas que quebra miseravelmente em ambientes minimamente concorrentes. Para isso, vou demonstrar através de testes de integração como identificar o Race Condition no código e principalmente como resolvê-lo através de mecanismos de locking e Isolation Level do seu banco de dados;

O que vamos discutir

  1. Por que estudamos esse assunto mais a fundo?
  • 1.3. A importância do treino: o que eu levei alguns bons anos para aprender o Jordi levou 6 meses
@rafaelpontezup
rafaelpontezup / LockManager.kt
Created October 4, 2022 20:25 — forked from soudmaijer/LockManager.kt
Postgres transaction-level advisory lock implementation that uses Spring JDBC
import org.slf4j.LoggerFactory
import org.springframework.jdbc.core.JdbcTemplate
import org.springframework.stereotype.Component
import org.springframework.transaction.annotation.Propagation
import org.springframework.transaction.annotation.Transactional
import java.time.Duration
interface LockManager {
fun <T> tryWithLock(key: Long, timeout: Duration, function: () -> T): T
}
@rafaelpontezup
rafaelpontezup / plugin.yaml
Last active August 29, 2022 13:42
Stackspot: playing with edit-xml
hooks:
- type: edit-xml
trigger: after-render
path: pom.xml
encoding: UTF-8
namespaces:
- name: ns
value: "http://maven.apache.org/POM/4.0.0"
- name: xsi
value: "http://www.w3.org/2001/XMLSchema-instance"
@rafaelpontezup
rafaelpontezup / NewAuthorController.java
Last active August 19, 2022 22:38
Example of Spring Boot REST Controller using SpringDoc OpenAPI
package br.com.zup.edu.app10.samples.authors;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.headers.Header;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import org.slf4j.Logger;
@rafaelpontezup
rafaelpontezup / pre-req.js
Created May 3, 2022 13:36 — forked from faermanj/pre-req.js
Postman OIDC
var auth_username = pm.variables.get("auth_username")
var auth_password = pm.variables.get("auth_password")
var client_id = pm.variables.get("client_id")
var client_secret = pm.variables.get("client_secret")
var authBody = `username=${auth_username}&password=${auth_password}&grant_type=password&client_id=${client_id}&client_secret=${client_secret}`;
console.log(authBody)
var force_refresh = true
var token_expires_in = pm.environment.get("token_expires_in");
var token_created = pm.environment.get("token_created");
@rafaelpontezup
rafaelpontezup / sprint-1-troubleshooting.md
Last active September 6, 2021 17:09
Sprints: construindo treinamento de troubleshooting

Treinamento Troubleshooting: Primeiros Socorros

Sprint #1 - 05/07 12/07 a 23/07

  • Integrantes: Yuri Matheus e Rafael Ponte (eu)
  • treinamento com 4 modulos
  • Divisao dos modulos para 1a sprint
    • 2 primeiros modulos para o release do treinamento
    • Yuri ficou com modulo de JVM
  • Rafael ficou com modulo de Persistencia
@rafaelpontezup
rafaelpontezup / bean-validation.kt
Created July 13, 2021 14:24
Bean Validation: entendendo como funciona
// Bean Validations = spec = PDF -> Hibernate-Validator -> JAR
@Intropected
data class ProdutoRequest(
@field:NotNull val codigo: Int, // obrigatorio
@field:NotBlank @field:Size(max=42) val nome: String // obrigatorio e tamanho maximo de 42
)