Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante   Click to listen highlighted text! Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante

Linguagem de Programação (Subsequente de Infraestrutura) – Aula 03

📘 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

  • return devolve 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 global deve 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

Click to listen highlighted text!