Skip to content

Instantly share code, notes, and snippets.

View pedrovasconcellos's full-sized avatar

Pedro Vasconcellos pedrovasconcellos

View GitHub Profile
@pedrovasconcellos
pedrovasconcellos / EXAMPLE_TYPESCRIPT_CLEAN_ARCHITECTURE.md
Created November 1, 2025 09:35
Example of clean architecture using TypeScript.

Layer Mapping

1. domain/internal/domain (Go)

Innermost layer — pure business rules.

// domain/entities/Order.ts
export class Order {
  private id: string;
  private customerId: string;
@pedrovasconcellos
pedrovasconcellos / memory_bank_example_ptbr_beta.md
Last active November 1, 2025 10:04
O que é um Memory Bannk?

Para que serve o Memory Bank?

São checklists que servem como guias de verificação para garantir que alterações realizadas pela inteligência artificial (IA) no código respeitem os padrões definidos e workflows do projeto, reduzindo erros e mantendo a consistência.


1. Before Implementing (Antes de implementar)

Propósito

@pedrovasconcellos
pedrovasconcellos / CLEAN_ARCHITECTURE.md
Last active November 1, 2025 09:21
Clean Architecture Memory Bank

Clean Architecture Memory Bank

TL;DR

  • Clean Architecture keeps business rules independent from delivery so changes in frameworks never break core logic.
  • Dependencies flow inward: frameworks → adapters → application → domain.
  • Use cases expose gateways (ports); adapters implement them; frameworks wire everything together under cmd/ entrypoints.
  • Always decide between Quick vs Task workflow (see docs/AGENT_INSTRUCTIONS.md) based on the layer surface area you touch.

Core Principles

  • Separation of concerns: Domain logic lives in entities/value objects; use cases orchestrate; adapters translate boundaries; frameworks provide tooling only.
@pedrovasconcellos
pedrovasconcellos / clean_architecture_folder_structure.md
Last active November 1, 2025 08:56
Clean Architecture folder structure

Clean Architecture

Folder structure

.                                     # Repository root
├── .github/                          # CI/CD workflows configurations
│   └── workflows/
│       ├── ci.yml                    # Test and lint pipeline
│       └── cd.yml                    # Deploy pipeline
@pedrovasconcellos
pedrovasconcellos / insert_random_data.py
Created April 11, 2025 00:01
Insert random data into MongoDB
from pymongo import MongoClient
from datetime import datetime
import uuid
from urllib.parse import quote_plus
USER = "master"
PASSWORD = quote_plus("password") # encodes the password
HOST = "localhost"
AUTH_DB = "admin"
DATABASE = "database_name"
from pymongo import MongoClient
import json
from datetime import datetime
from urllib.parse import quote_plus
USER = "master"
PASSWORD = quote_plus("password") # encodes the password
PASSWORD_PROD = quote_plus("password_prod")
HOST = "localhost"
HOST_PROD = "cluster.com"
@pedrovasconcellos
pedrovasconcellos / 20-intel.conf
Last active February 13, 2025 15:49
Virtual Monitor Xorg
#sudo vim /etc/X11/xorg.conf.d/20-intel.conf
#FileContent
Section "Device"
Identifier "IntelGPU"
Driver "intel"
Option "AccelMethod" "sna"
# Option "TearFree" "true"
EndSection
@pedrovasconcellos
pedrovasconcellos / universal-us-keyboard.sh
Last active February 7, 2025 01:56
Universal Keyboard English US
vim ~/.XCompose
include "%L"
<dead_acute> <c> : "ç" U+00E7
<dead_acute> <C> : "Ç" U+00C7
#Log out afterwards so that the system complies with the instruction
import os
import csv
# Gets the user's HOME directory
home_dir = os.path.expanduser("~")
# Dynamically builds the path for the input and output CSV
input_csv_path = os.path.join(home_dir, "Downloads", "test", "base.csv")
output_csv_path = os.path.join(home_dir, "Downloads", "test", "base_altered.csv")
@pedrovasconcellos
pedrovasconcellos / Dockerfile
Created August 22, 2024 21:47
DockerFile App Java
# Use a base image com Java 11
FROM openjdk:11-jdk-slim
# Define o mantenedor do Dockerfile
LABEL maintainer="[email protected]"
# Atualiza os pacotes e instala o Maven
RUN apt-get update && apt-get install -y maven
# Cria um diretório para a aplicação