Sobes.tech
Middle

Que paradigmas de programação você usa no seu trabalho?

sobes.tech IA

Resposta da IA

Paradigmas frequentemente utilizados:

  • Programação orientada a objetos (POO)
  • Programação funcional
  • Programação orientada a aspetos (AOP)
  • Programação genérica
  • Programação paralela

POO: Classes, herança, polimorfismo, encapsulamento para estruturar o código e modelar o mundo real.

public class Animal // Classe
{
    public virtual void MakeSound() // Método virtual
    {
        Console.WriteLine("Som padrão");
    }
}

public class Dog : Animal // Herança
{
    public override void MakeSound() // Polimorfismo
    {
        Console.WriteLine("Au au!");
    }
}

Programação funcional: Uso de funções puras, dados imutáveis, LINQ. Reduz efeitos colaterais e melhora a testabilidade.

// Uso de LINQ para filtrar
var numbers = new List<int> { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();

AOP: Usado para implementar funcionalidades transversais (registo, cache, segurança) usando bibliotecas como AspectInjector ou Castle DynamicProxy.

// Exemplo conceitual (não código real de biblioteca AOP)
public class Service
{
    [LogCall] // Aspeto de registo
    public void DoSomething()
    {
        // Lógica principal
    }
}

Programação genérica: Uso de genéricos para criar código reutilizável que funciona com diferentes tipos de dados, mantendo a segurança de tipos.

public class GenericList<T> // Classe genérica
{
    private List<T> items = new List<T>();

    public void Add(T item)
    {
        items.Add(item);
    }
}

Programação paralela: Uso de TPL, async/await para criar aplicações responsivas e escaláveis.

public async Task LoadDataAsync() // Método assíncrono
{
    await Task.Delay(1000); // Simulação de operação assíncrona
    Console.WriteLine("Dados carregados.");
}