📘 Módulo III – Modularização e Refinamento
🧩 Semana 7 – Funções e Procedimentos
🧪 Aula 13 – Definição de Funções (def)
🎯 Objetivos
-
Organizar código em blocos reutilizáveis
-
Evitar repetição (princípio DRY)
📚 Conteúdo
-
Estrutura de função:
-
def -
corpo
-
chamada
-
-
Separação lógica do código
💻 Exemplo Didático
# Definição de função
def saudacao():
print("Sistema de monitoramento iniciado.")
# Chamada da função
saudacao()
🧠 Explicação
-
Funções encapsulam comportamento
-
Melhoram legibilidade e manutenção
🧪 Aula 14 – Parâmetros e Retorno
🎯 Objetivos
-
Trabalhar entrada e saída de funções
-
Aplicar em cálculos úteis de infraestrutura
💻 Exemplo Prático (Conversão de Bytes → GB)
📌 Problema:
Converter armazenamento para relatórios
# Função de conversão
def bytes_para_gb(bytes_valor):
gb = bytes_valor / (1024 ** 3)
return gb
# Entrada de dados
valor_bytes = float(input("Digite o valor em bytes: "))
# Processamento
resultado = bytes_para_gb(valor_bytes)
# Saída formatada
print(f"Valor em GB: {resultado:.2f} GB")
🧠 Explicação
-
1024³→ padrão binário de armazenamento -
returndevolve valor para reutilização -
Função pode ser usada em relatórios automatizados
✅ Validação
Entrada:
1073741824
Saída esperada:
1.00 GB
🔍 Versão aplicada (relatório)
def bytes_para_gb(bytes_valor):
return bytes_valor / (1024 ** 3)
disco_total = 500000000000
disco_usado = 200000000000
print("Disco Total:", bytes_para_gb(disco_total), "GB")
print("Disco Usado:", bytes_para_gb(disco_usado), "GB")
🧩 Semana 8 – Refinamentos e Escopo
🧪 Aula 15 – Variáveis locais vs globais
🎯 Objetivos
-
Entender escopo de variáveis
-
Aplicar boas práticas
📚 Conteúdo
-
Variáveis locais
-
Variáveis globais
-
Boas práticas:
-
evitar globais
-
preferir funções puras
-
💻 Exemplo
# Variável global
servidor = "web01"
def exibir_servidor():
# variável local
mensagem = f"Servidor ativo: {servidor}"
print(mensagem)
exibir_servidor()
🧠 Explicação
-
Variável global acessível dentro da função
-
Variável local existe apenas na função
⚠ Exemplo de má prática
contador = 0
def incrementar():
global contador
contador += 1
✔ Discussão
-
Uso de
globaldeve ser evitado -
Pode gerar efeitos colaterais difíceis de controlar
🧪 Aula 16 – Refinamento e Modularização
🎯 Objetivos
-
Dividir scripts complexos
-
Criar módulos reutilizáveis
💻 Exemplo Prático (Health Check Modularizado)
📌 Problema:
Criar script de verificação:
-
CPU
-
RAM
-
Conectividade
🔴 Versão NÃO modular (para comparação)
import os
print("Verificando CPU...")
print("CPU OK")
print("Verificando RAM...")
print("RAM OK")
print("Verificando rede...")
os.system("ping -c 1 8.8.8.8")
🟢 Versão Modularizada
import os
# Função para verificar CPU
def verificar_cpu():
print("Verificando CPU...")
# Simulação
return "CPU OK"
# Função para verificar RAM
def verificar_ram():
print("Verificando RAM...")
# Simulação
return "RAM OK"
# Função para verificar conectividade
def verificar_rede():
print("Verificando rede...")
resposta = os.system("ping -c 1 8.8.8.8 > /dev/null 2>&1")
if resposta == 0:
return "Rede OK"
else:
return "Falha de conectividade"
# Função principal (orquestração)
def health_check():
print("\n--- HEALTH CHECK ---")
print(verificar_cpu())
print(verificar_ram())
print(verificar_rede())
# Execução
health_check()
🧠 Explicação
-
Separação por responsabilidade:
-
CPU → função específica
-
RAM → função específica
-
Rede → função específica
-
-
health_check()atua como coordenador -
Facilita:
-
manutenção
-
testes
-
expansão futura
-
🔍 Evolução para módulo próprio
📁 Estrutura sugerida
monitoramento/
main.py
cpu.py
memoria.py
rede.py
📌 Exemplo de módulo (cpu.py)
def verificar_cpu():
return "CPU OK"
📌 Uso no main.py
from cpu import verificar_cpu
print(verificar_cpu())
📊 Considerações Pedagógicas
✔ Progressão cognitiva
| Semana | Conceito | Aplicação |
|---|---|---|
| 7 | Funções | Reutilização de código |
| 8 | Modularização | Sistemas reais |
✔ Competências desenvolvidas
-
Abstração
-
Organização de código
-
Pensamento sistêmico
-
Reutilização
✔ Aplicação em redes
-
Scripts reutilizáveis
-
Monitoramento estruturado
-
Base para automação avançada
✔ Fundamentação teórica
-
Funções e escopo →
-
Automação modular →
Fim da aula 03
