Follow

## 🧱 Granularidade

Funções pequenas (bom) vs função gigante (ruim)

```python
# ruim (tudo junto)
def processar_usuario(usuario):
print(usuario["nome"])
if usuario["idade"] > 18:
print("adulto")

# bom (granular)
def mostrar_nome(usuario):
print(usuario["nome"])

def eh_adulto(usuario):
return usuario["idade"] > 18
```

---

## 🧩 Modularidade

Separar em arquivos

```python
# arquivo: usuario.py
def criar(nome):
return {"nome": nome}

# arquivo: main.py
from usuario import criar

u = criar("Will")
```

---

## 🧠 Coesão

Cada função faz UMA coisa

```python
# ruim
def usuario_tudo(usuario):
print(usuario["nome"])
salvar_no_banco(usuario)

# bom
def mostrar(usuario):
print(usuario["nome"])

def salvar(usuario):
salvar_no_banco(usuario)
```

---

## 🔗 Acoplamento

Evitar dependência forte

```python
# ruim (acoplado)
def enviar_email():
servidor = Gmail() # preso nisso

# bom (desacoplado)
def enviar_email(servico_email):
servico_email.enviar()
```

---

## 🎭 Abstração

Esconder complexidade

```python
def salvar_usuario(usuario):
banco.inserir(usuario) # você não precisa saber como funciona
```

---

## 🔒 Encapsulamento

Proteger dados internos

```python
class Conta:
def __init__(self):
self._saldo = 0 # "protegido"

def depositar(self, valor):
self._saldo += valor

def ver_saldo(self):
return self._saldo
```

---

## 🧬 Composição

Construir com partes

```python
class Motor:
def ligar(self):
print("motor ligado")

class Carro:
def __init__(self):
self.motor = Motor() # composição

def ligar(self):
self.motor.ligar()
```

---

## 🏭 Pipeline

Etapas em sequência

```python
def etapa1(x): return x + 1
def etapa2(x): return x * 2
def etapa3(x): return x - 3

def pipeline(x):
x = etapa1(x)
x = etapa2(x)
x = etapa3(x)
return x
```

---

## 🔧 Extensibilidade

Adicionar sem quebrar

```python
class Plugin:
def executar(self):
pass

class PluginA(Plugin):
def executar(self):
print("A")

class PluginB(Plugin):
def executar(self):
print("B")
```

---

## 🛠️ Manutenibilidade

Código limpo = fácil de mexer

```python
# ruim
def calc(x,y):return x+y if x>0 else y

# bom
def somar(a, b):
return a + b
```

---

## 📊 Data-Driven

Dados controlam comportamento

```python
config = {
"multiplicador": 10
}

def calcular(x):
return x * config["multiplicador"]
```

---

## 👾 ECS (Entity Component System)

```python
# componentes
posicao = {"x": 10, "y": 20}
vida = {"hp": 100}

# entidade = conjunto
entidade = {
"posicao": posicao,
"vida": vida
}
```

---

## 🔄 State Machine

```python
estado = "parado"

def atualizar(entrada):
global estado

if estado == "parado" and entrada == "andar":
estado = "andando"
elif estado == "andando" and entrada == "pular":
estado = "pulando"
```

---

## 🎯 Determinismo

```python
def soma(x, y):
return x + y

# sempre igual
print(soma(2, 3)) # sempre 5
```

---

## 🧠 Cognitive Load

Código fácil de ler

```python
# ruim
x=1;y=2;z=x+y

# bom
numero1 = 1
numero2 = 2
resultado = numero1 + numero2
```

---

## 📍 Local Reasoning

Entender sem olhar tudo

```python
def dobrar(x):
return x * 2 # você entende só olhando aqui
```

---

## 🫗 Leaky Abstraction

Abstração “vazando”

```python
# parece simples
def ler_arquivo():
return open("file.txt").read()

# problema: pode dar erro se arquivo não existir 😬
```

· Edited · · 0 · 0 · 0
Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.