DevMedia

DevMedia Cursos

Curso online

Refatoração com Csharp .NET

O objetivo deste curso de C# é apresentar todos os conceitos envolvidos na refatoração de código e o suporte a essa técnica usando o IDE do Visual Studio 2010. Refatoração é uma boa prática de desenvolvimento que visa modificar um sistema de software para melhorar a estrutura interna do código sem alterar seu comportamento externo. O curso mostra desde refatorações primitivas (primitive refactorings) bem como as refatorações mais complexas obtidas através de composição (composte refactorings). Para aplicação das refatorações são apresentados alguns estudos de caso, bem como a relação com Testes Unitários, Design Patterns, técnicas avançadas de POO e ferramentas de suporte.

  [VER MAIS DETALHES]


Avaliação
553
Teste grátis Assinar Gerar certificado
  • Refatorações Básicas

    • 2

      Extract Method e Reorder Parameters

      Nesta video será mostrada a aplicação das refatorações Extract Method e Reorder Parameters suportadas pelo IDE do Visual Studio 2010. Extract Method removerá código redundante (“bed smell”) porém agora fazendo uso de parâmetros.

      Assistir aula
    • 3

      Encapsulate Field e Extract Interface

      Nesta video será mostrada a aplicação das refatorações Encapsulate Field e Extract Interface suportadas pelo IDE do Visual Studio 2010. Encapsulate Field reforça um conceito importante da Programação Orientada a Objetos.

      Assistir aula
    • 4

      Adjust Namespaces

      Nesta video será mostrada a aplicação da refatoração Adjust Namespaces. Uma boa prática em grandes projetos com o .NET é organizar frameworks de classes em subpastas.

      Assistir aula
    • 5

      Change Signature

      Nesta video será mostrada a aplicação da refatoração Change Signature. Veremos como criar um método que possui uma dada assinatura, com seus devidos parâmetros, nomes e tipos.

      Assistir aula
    • 6

      Convert Abstract Class to Interface

      Nesta video será mostrada a aplicação da refatoração Convert Abstract Class to Interface. Classes abstratas são largamente utilizadas na programação orientada a objetos para criar estruturas e frameworks mais adaptáveis a mudanças.

      Assistir aula
    • 7

      Convert Anonymous to Named Type

      Nesta video será mostrada a aplicação da refatoração Convert Anonymous to Named Type. Uma classe anônima no C# é usada para designar uma estrutura com atributos que não estão projetados dentro de um tipo (classe).

      Assistir aula
    • 8

      Convert Extension Method to Plain Static

      Nesta video será mostrada a aplicação da refatoração Convert Extension Method to Plain Static. Um método estático de extensão serve para injetar funcionalidades em uma classe pré-existente.

      Assistir aula
    • 9

      ConvertIndexertoMethod

      Nesta vídeo será mostrada a aplicação da refatoração ConvertIndexertoMethod. Um indexador no contexto de uma classe é uma propriedade especial que permite a manipulação de um índice passado diretamente após o nome da instância.

      Assistir aula
    • 10

      Convert Interface to Abstract Class

      Nesta vídeo será mostrada a aplicação da refatoração Convert Interface to Abstract Class. No exemplo, veremos que uma interface serve para reduzir o acoplamento entre uma classe que precisa acessar um framework de classes derivadas.

      Assistir aula
    • 11

      ConvertIteratortoMethod

      Nesta vídeo será mostrada a aplicação da refatoração ConvertIteratortoMethod. No exemplo, veremos como implementar um método com suporte a iteração, implementando um padrão de projeto (patterniterator).

      Assistir aula
    • 12

      ConvertMethodtoProperty

      Nesta vídeo será mostrada a aplicação da refatoração ConvertMethodtoProperty. No exemplo, será definida um método de um classe de Pedidos que será responsável pelo processamento de pagamentos via Boletos.

      Assistir aula
    • 13

      Encapsulate Field e Convert Property to Auto Property

      Nesta vídeo aula será mostrada a aplicação das refatorações Encapsulate Field e Convert Property to Auto Property (Encapsular Campo e Converter Propriedade para Propriedade Automática). No exemplo, será definida uma classe que possui um atributo público visível a outras classes que a consomem.

      Assistir aula
    • 14

      Extract Class from Parameters

      Nesta vídeo aula será mostrada a aplicação da refatoração Extract Class from Parameters (Extrair Classe de Parâmetros). Essa abordagem permite que os parâmetros escalares passados a um método ou construtor possam ser organizados em uma estrutura (classe ou struct) que pode então ser inicializada e passada uma única vez para o devido método, melhorando a legibilidade e organização do código.

      Assistir aula
    • 15

      Extract Superclass e Extract Interface

      Nesta vídeo aula será mostrada a aplicação das refatorações Extract Superclass e Extract Interface (Extrair Superclasse e Extrair Interface).

      Assistir aula
    • 16

      Introduce Variable, Parameter e Field

      Nesta video aula será mostrada a aplicação das refatorações Introduce Variable, Parameter e Field (Extrair Variável, Parâmetro e Campo). No exemplo um classe é criada de forma a parametrizar o comportamento de exibição de caixas de diálogo.

      Assistir aula
    • 17

      Inline Variable, Parameter e Field

      Nesta video aula será mostrada a aplicação das refatorações Inline Variable, Parameter e Field (Variável, Parâmetro e Campo InLine - em linha).

      Assistir aula
    • 18

      Pull Members Up e Pull Members Down

      Nessa videoaula veremos como aplicar as refatorações Pull Members Up e Pull Members Down. Essas refatorações servem para fortalecer um importante princípio a programação orientada a objetos conhecida como programação para interfaces ou abstrações.

      Assistir aula
    • 19

      Replace Constructor with Factory Method e Safe Delete

      Nessa videoaula veremos como aplicar as refatorações Replace Constructor with Factory Method e Safe Delete. O Replace Constructor with Factory Method serve para criar um método de fábrica estático.

      Assistir aula
    • 20

      Replace Conditional with Polimorphysm

      Nessa videoaula veremos como aplicar a refatoração Replace Conditional with Polimorphysm. Esta interessante técnica mostra como utilizar recursos de classes com comportamentos semelhantes.

      Assistir aula
    • 21

      Replace Inheritance with Delegation e Remove Middle Man

      Nessa videoaula veremos como aplicar as refatorações Replace Inheritance with Delegation e Remove Middle Man. Replace Inheritance with Delegation é interessante para evitar o uso de herança promovendo ao invés disso a composição.

      Assistir aula
    • 23

      Form Template Method

      Nessa videoaula veremos como formar um método de template a partir da composição de chamadas a métodos abstratos que são implementados em classes descendentes.

      Assistir aula
    • 24

      Replace Error Code with Exception

      Nessa videoaula veremos como substituir um código que representa um erro por uma classe de exceção. Códigos numéricos para representar erros são comummente utilizados em linguagens clássicas ou procedurais

      Assistir aula
    • 25

      Replace Type Code with Class

      Nessa videoaula veremos como criar uma classe para encapsular o tratamento de tipos feitos com números. Utilizar inteiros, símbolos, códigos ou enumerações para representar tipos é um problema que pode ser resolvido com a refatoração aqui apresentada.

      Assistir aula
    • 26

      Replace Type Code with Subclass

      Nessa videoaula veremos como criar subclasses para encapsular o tratamento de tipos feitos com números. Por exemplo, “0” para representar um Arquiteto e “1” para representar um Desenvolvedor em uma determinada empresa.

      Assistir aula
    • 27

      Encapsulate Collection

      Nessa videoaula veremos como encapsular uma coleção que é usada em uma classe que representa produtos em um carrinho de compras.

      Assistir aula
    • 28

      Replace Data Value with Object

      Nessa videoaula veremos como substituir um dado de valor por um objeto, de forma a eliminar um bad smell conhecido como obsessão primitiva, onde dados como strings são usados para representar informações sobre estruturas.

      Assistir aula
    • 29

      Replace Subclass with Fields

      Nessa videoaula veremos como substituir uma estrutura de subclasses por campos simples na classe base. Essa refatoração resolve um problema de excesso de engenharia.

      Assistir aula
    • 30

      Replace Temp with Query

      Nessa videoaula veremos como susbtituir variáveis temporárias por métodos de consulta. Variáveis temporárias locais que recebem cálculos ou expressões devem ser evitadas pois estimulam a criação de métodos muito longos.

      Assistir aula
    • 31

      Replace Method with Method Object

      essa videoaula veremos como melhorar o design de uma classe que possui um método muito longo e usa muitas variáveis locais.

      Assistir aula
    • 32

      Replace Parameter with Explicit Methods

      Nessa videoaula veremos como criar uma classe com vários atributos, no exemplo uma classe pessoa é criada e pode armazenar dados com nome, endereço, dados profissionais etc.

      Assistir aula
    • 33

      Introduce Factory Method

      Nessa videoaula veremos como criar métodos de fábrica em susbtituição a construtores. A aplicação mais comum desta refatoração é quando um objeto é criado e em seu construtor é informado seu tipo.

      Assistir aula
    • 34

      Replace Array with Object

      Nessa videoaula veremos como substituir arrays por objetos. Um array é uma das mais antigas estruturas para representar coleções de dados. O problema é que arrays normalmente não são capazes de expressar bem o que realmente estão armazenando

      Assistir aula
    • 35

      Introduce Local Extension

      Nessa videoaula veremos como substituir estender classes. Uma classe, por mais completa que seja, nunca contemplará todas as necessidades desejadas. Muitas vezes, não há a possibilidade de se alterar essa classe para incluir uma nova funcional.

      Assistir aula
    • 36

      Substitute Algorithm

      Nessa videoaula veremos como substituir algoritmos por novas versões, mantendo classes clientes sem alteração. Além disso, a aula mostra como aplicar uma refatoração baseada em um padrão de projeto Strategy.

      Assistir aula
    • 37

      Replace Exception with Test

      Nessa videoaula veremos como substituir exceções por testes. Exceções são boas, mas não podem ser utilizadas em excesso. Devem ser usadas para circunstâncias onde não se pode antecipadamente prever uma possível situação de erro.

      Assistir aula