Skip to content

Instantly share code, notes, and snippets.

View erlimar's full-sized avatar

Erlimar Silva Campos erlimar

View GitHub Profile
@erlimar
erlimar / PaisesDoFutebol.cs
Last active October 21, 2022 19:19
Paises do Futebol em C#
namespace Futebol
{
public enum Paises
{
Brasil = 1,
Argentina = 2,
Chile = 3,
Equador = 4,
Italia = 5,
Franca = 6,
@erlimar
erlimar / DOC.md
Last active August 27, 2022 18:06
Ideias sobre agregados na Arquitetura E5R

https://engsoftmoderna.info/artigos/ddd.html

Um agregado deve ser uma coleção de entidades e objetos de valor que estão relacionados e fazem sentido negocialmente; talvez trabalhar com eles individualmente não faça sentido.

Por exemplo, em um sistema de biblioteca temos Usuários e Livros, um Usuário tem Endereço, e faz Empréstimo de Livros em uma determinada Data/Hora e fica de devolver em outra Data/Hora.

Aqui Usuário e Livro são entidades, pois eles são registrados e identificados unicamente no sistema. Porém Endereço pode se repetir entre vários usuários e não faz sentido persisti-los de forma única, então trata-se de um objeto de valor, e o mesmo ocorre para Data/Hora (pois temos várias propriedades: dia, mês, ano, século, hora, minuto, segundo, etc.)

E quando falamos de Empréstimo por ele ser persistido, já sabemos que deve ser uma entidade, mas na verdade essa entidade agrega outras entidades já existentes, por exemplo, o Usuário que fez

@erlimar
erlimar / Tutorial.md
Last active June 23, 2022 22:48
Criar pacote DEBIAN

1. Crie uma pasta temporária para montar o pacote

No nome da pasta já inclua o número da versão

Exemplo:

$ mkdir /tmp/my-pkg-1.0.0

2. Dentro do pacote você cria a estrutura de diretório

@erlimar
erlimar / Sample.cs
Last active May 19, 2022 20:37
Entregando valores decimais em API's
public class MyBusinessModel
{
public string CommonStringValue { get; set; }
public double Value { get; set; }
}
public class MyViewModel
{
public string StringValue { get; set; }
public string Value { get; set; }
@erlimar
erlimar / UsingRule.cs
Last active April 29, 2022 16:03
Specification Pattern na Arquitetura E5R para .NET
// https://en.wikipedia.org/wiki/Specification_pattern
public class MyTargetObject
{
public int Code { get; set; }
public string Name { get; set; }
public double Value { get; set; }
}
public class MyRule1 : RuleFor<MyTargetObject>
@erlimar
erlimar / basic-datadog-linux.md
Last active September 8, 2022 19:43
O básico do uso de Datadog em hosts Linux

O básico do uso de Datadog em hosts Linux

Instale o agente para seu host com sua chave:

DD_HOSTNAME=nome-do-host DD_LOGS_ENABLED=true DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=CHAVE DD_SITE="datadoghq.com" \
  sudo -E bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script.sh)"

Confira a instrução atualizada na seção Agent de sua área logada. Aqui o que acrescentamos foi o nome do host

@erlimar
erlimar / directory_ascii.md
Last active January 18, 2022 19:56
Desenhando estruturas de diretórios com ASCII

Sobre a tabela de caracteres ASCII

Para emitir um código ASCII que não esteja disponível em seu teclado por padrão, digite o número correspondente ao código ASCII no seu teclado numérico enquanto mantém pressionada a tecla Alt.

Ex: Alt + 167 irá emitir o caractere ASCII º.

Aqui você tem um exemplo dos caracteres pertencentes a tabela ASCII:

@erlimar
erlimar / emacs_tmux.md
Last active October 23, 2021 20:19
Emacs + Tmux - A combinação perfeita

Emacs + Tmux - A combinação perfeita

Dica 0

Use Spacemax e/ou treemacs

No treemacs, alterne a exibição da árvore de arquivos com:

M-m f t
@erlimar
erlimar / vale-usar-dto.md
Last active October 6, 2021 19:47
Vale a pena usar DTO?

Uma pequena reflexão quanto ao usdo de DTO

Imagine que você tem uma Entidade qualquer e uma API que retorna essa entidade, mas que na verdade seu usuário não vai precisar de todos os campos dessa entidade, mas como os dados já estão lá você decide usá-la ao invés de criar mais um DTO. Pois afinal "é melhor sobrar do que faltar" não é mesmo?

Então digamos que se você retornar os dados dessa entidade serializado em um JSON qualquer, tomaria cerca de 1.000 bytes de espaço na sua transferência, e se você fizesse usando DTO cerca de 200 bytes.

Para fins de comparação, segue uma string com 200 e 1.000 bytes:

# 200 bytes (DTO)
"""
@erlimar
erlimar / git-version-script.sh
Last active August 5, 2022 18:32
Número de versões SemVer em scripts de implantação/integração contínua (CI/CD)
git branch --show-current # Exibe o nome da BRANCH (se for uma branch corrente)
git name-rev --name-only HEAD # Exibe o nome da TAG (se for uma TAG corrente)
# -> Se não for uma TAG válida, tem um ^X~Y no final indicando um commit solto
cat .\.git\HEAD # Exibe a referência atual
git log -1 --format="%H" # Exibe o HASH do commit atual
git log -1 --format="%h" # Exibe o HASH do commit atual ENCURTADO
# Quando estamos em uma BRANCH válida:
git branch --show-current # Exibe o nome da branch
git name-rev --name-only HEAD # Exibe QUALQUER COISA não confiável