Skip to content

Instantly share code, notes, and snippets.

View erlimar's full-sized avatar

Erlimar Silva Campos erlimar

View GitHub Profile
@erlimar
erlimar / GUIDE.md
Created July 2, 2024 13:54
Desenvolvimento de software nos padrões ECMA

https://ecma-international.org/

A ideia é trabalhar o desenvolvimento de softwares em uma organização qualquer com padrões parecidos com os utilizados pela ECMA para a padronização internacional.

1) Temos o estabelecimento de um Comitê Técnico e Grupos de Tarefa (Technical Commiteers and Task Groups)

  • O comitê tem então seu escopo geral definido e seus contatos divulgados
  • Um plano de trabalho é publicado com os objetivos gerais do Comitê
  • Pode haver apenas um grupo de tarefa geral, ou mais de um quando o escopo for decomposto
@erlimar
erlimar / GitVersion-CICD-Flow.md
Last active May 6, 2024 14:08
GitVersion - Fluxo de Entrega Contínua + Integração Contínua + Thunk Based Development

Trabalhando sempre em MAIN

  1. Codifique, codifique e codifique
    • CommitsSinceVersionSource > 0
    • FullSemVer=.*+x
    • Essa é uma versão prévia
    • Deve implantar em preview ou não implantar
  2. Informe o tipo da mudança pretendida quando quiser incrementar a versão
    • Um commit informando ".*+semver: fix|feature|breaking" irá incrementar o número da versão e continuará como prévia
  • CommitsSinceVersionSource > 0
@erlimar
erlimar / arch_hyprland_maquinas_dev.md
Last active February 12, 2024 15:13
Minha instalação de Arch Linux

Arch Linux com Hyprland em máquinas para devs

  1. Baixe a imagem e grave o pendrive
  2. Inicie a instalação
  3. Configure o layout do seu teclado
# Exiba e encontre o layout do seu teclado
localectl list-keymaps

# Defina seu layout

Essencial para quem trabalha com WSL

  • Aprenda Instalar o WSL
    • Habilitar virtualização
    • Instalar sem nenhuma distribuição
  • Entenda o uso básico
    • Parar e iniciar máquina virtual (Shutdown)
    • Pesquisar distribuições
  • Instalar distribuição via linha de comando
@erlimar
erlimar / csharp.editorconfig
Last active January 23, 2024 20:23
C# EditorConfig
# Gere o arquivo `.editorconfig` com ```dotnet new .editorconfig```
# Depois adicione as linhas abaixo
# Show errors
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/categories
dotnet_analyzer_diagnostic.category-Style.severity = error
dotnet_analyzer_diagnostic.category-Performance.severity = error
dotnet_analyzer_diagnostic.category-SingleFile.severity = error
dotnet_analyzer_diagnostic.category-Security.severity = error
dotnet_analyzer_diagnostic.category-Usage.severity = error
@erlimar
erlimar / DomainDrivenDesign.cs
Last active May 10, 2023 12:33
Implementando Domain Driven Design em dotNET com C#
// Copyright (c) Erlimar Silva Campos. Todos os direitos reservados.
using E5R.Architecture.Core;
using E5R.Architecture.Data.Abstractions;
namespace CleanArch
{
/// <summary>
/// Exemplo de entidade raiz
/// </summary>
@erlimar
erlimar / DOCS.md
Created January 31, 2023 17:52
Notas para desenvolvimento ágil
  1. Desenvolva objetivos e não demandas ou tarefas

Ao levar um objetivo que precisa ser alcançado em uma reunião de planejamento e talvez decompô-lo melhor, deixa claro o valor que precisa ser entregue, e todos podem focar seus esforços em atingir esse objetivo ao invés de descrever e concluir tarefas que ao final pode não levar ao cumprimento do objetivo.

Quando não sabemos o objetivo é fácil concluir todas as tarefas e ter o trabalho como terminado, e ao mesmo tempo é difícil reestruturar as tarefas e gastamos tempo alinhando se devemos ou não remover uma tarefa, trocar por outra, renomear,

@erlimar
erlimar / Docs.md
Last active February 9, 2023 23:52
Implementando Entidades conforme CLEAN Architecture

Segundo descrição de Entidades no artigo do Tio Bob: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html?utm_source=pocket_reader

"As entidades encapsulam as regras de negócios de toda a empresa. Uma entidade pode ser um objeto com métodos ou pode ser um conjunto de funções e estruturas de dados. Não importa, desde que as entidades possam ser usadas por muitos aplicativos diferentes na empresa."

Só que ainda queremos o uso de objetos que descrevam as propriedades das entidades mas não implementem os métodos dessas entidades, porque podemos tirar o proveito de generalizações para isso (como a ideia de IStorage da camada de dados da biblioteca E5R.Architecture).

@erlimar
erlimar / Docs.md
Created December 14, 2022 21:13
Action Handlers com transformers embutidos

Em uma implementação de action handler temos a implementação apenas do método HandleAsync, mas é disponibilizado um outro método genérico que aceita um outro tipo qualquer, que ao ser acionado fará antes uma transformação do tipo <T> para o tipo final To.

public class MyActionHandler : ActionHandler<From, To>
{
    public Task<To> HandleAsync(From form);
    
@erlimar
erlimar / Doc.md
Last active December 6, 2022 21:00
Object State Changes Evaluator