Curso

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.

Avaliação

Clique para avaliar o curso!
Refatoração com Csharp .NET
5 5 3
Iniciar curso Assinar curso Certificado
Aulas: 37 vídeos Carga Horária: 37 horas
Check Certificado Certificado Marcar como favorito (43)

Para obter a contagem de carga horária do curso levamos em consideração que cada aula possui, em média, a duração técnica de uma hora - que contém o tempo de acompanhamento, codificação, assimilação do aluno além do próprio tempo total do vídeo.

Conteúdo programático

Introdução
1

Introdução à refatoração de código e suporte no IDE do Visual Studio

Nesta video primeira aula será mostrada uma introdução a refatoração de código com C# e o suporte oferecido pelo ambiente de desenvolvimento do IDE do Visual Studio 2010.

Assistir aula
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
22

Introduce Foreign Method e Replace Magic Number with Symbolic Constant

Nessa videoaula veremos como aplicar as refatorações Introduce Foreign Method e Replace Magic Number with Symbolic Constant. Introduce Foreign Method serve para adicionar funcionalidades em uma classe sem usar alterar seu código fonte.

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

Sobre o autor

Guinther Pauli - DevMedia Space Guinther Pauli

Microsoft Certified Professional - MCP,MCAD,MCSD.NET,MCTS,MCPD (C#, ASP.NET, Arquitetura), MVP, Delphi Certified Professional, Colaborador Editorial Revistas .net Magazine e ClubeDelphi http://br.linkedin.com/in/guintherpauli - http://www.facebook.com/guintherpauli - guintherpauli@gmail.com

Como adquirir este curso ?

Nosso objetivo é atender as suas necessidades de forma eficiente e econômica.

Com a assinatura DevMedia MVP você paga apenas R$ 69,90 por mês e tem acesso a todos os cursos - além de todos os canais de conteúdo!

Assine