Mostrando postagens com marcador Curiosidades. Mostrar todas as postagens
Mostrando postagens com marcador Curiosidades. Mostrar todas as postagens

terça-feira, 3 de agosto de 2010

Boas práticas(best practices) e atalhos visual studio 2008

Bom gente hoje trouxe algumas boas práticas que usamos quando estamo codificando, para que o código fique mais legível e organizado.

Nome de classe : utilizamos primeira letra maiuscula de cada palavra ( ex: ClienteIncluir )
Propriedades : idem
Atributo : utilizamos primeira letra minuscúla da primeira palavra e as outras primeiras letras maiusculas ( ex: clienteNome )
namespace : utilizamos [nome da companhia].[Departamento].[Aplicação].[Camada] ( nunca se esquecendo do ponto)

Atalhos
CTRL + Shift + B -> Build ( Compilar )

F9 -> Seta breakpoint

CTRL + F5 -> Build sem depuração

F11 -> passa passo-a-passo apartir do breakpoint colocado entrando em todos os métodos.

F10 -> passa passo-a-passo apartir do breakpoint colocado mas não entra nos métodos.

Shift + F9 -> Quick Watch , serve para visualizar ou modificar valores em tempo de execução

CTRL + K + U -> Comenta

CTRL + K +C -> Descomenta


dica: clicando com o botão direito em cima do projeto e escolhendo a opção “Clear”, irá limpar os assembly e temporários.

segunda-feira, 28 de junho de 2010

Yield?

É algo já não tão novo, apareceu no C# 2.0, e só existe no C#, não existe no VB.

O yield serve para gerar um Enumerable on demand. Por exemplo, se você quiser
criar uma coleção de inteiros rapidamente, como faz? Veja abaixo, com yield:

public static IEnumerable<int> GetNums(int from, int to)
{
    for (int i = from; i <= to; i++)
        yield return i;
}

Legal, né? Para usar é fácil, verificamos com um teste:

[TestMethod()]
public void GetNumsTest()
{
    var nums = Class1.GetNums(2, 5);
    Assert.AreEqual(4, nums.Count());
    Assert.IsTrue(nums.Contains(2));
    Assert.IsTrue(nums.Contains(3));
    Assert.IsTrue(nums.Contains(4));
    Assert.IsTrue(nums.Contains(5));
}

Gosto bastante também do exemplo
do MSDN:

public static IEnumerable<int> Power(int number, int exponent)
{
    int counter = 0;
    int result = 1;
    while (counter++ < exponent)
    {
        result = result * number;
        yield return result;
    }
}

Mais uma vez, para testar:

[TestMethod]
public void PowerTest()
{
    var nums = Class1.Power(2, 5);
    Assert.AreEqual(5, nums.Count());
    Assert.IsTrue(nums.Contains(2));
    Assert.IsTrue(nums.Contains(4));
    Assert.IsTrue(nums.Contains(8));
    Assert.IsTrue(nums.Contains(16));
    Assert.IsTrue(nums.Contains(32));
}

Mas o yield não é para ser usado somente com inteiros, você pode usá-lo para
retornar um IEnumerable de qualquer coisa. Aqui um exemplo com strings:

public static IEnumerable<string> GetWordsUpper(string phrase)
{
    foreach (var word in phrase.Split(' '))
    {
        yield return word.ToUpper();
    }
}

Para testar é fácil:

[TestMethod]
public void GetWordsUppderTest()
{
    var palavras = Class1.GetWordsUpper("ola como vai?");
    Assert.AreEqual(3, palavras.Count());
    Assert.IsTrue(palavras.Contains("OLA"));
    Assert.IsTrue(palavras.Contains("COMO"));
    Assert.IsTrue(palavras.Contains("VAI?"));
}

Você pode levar isso longe, como obtenção de dados do banco, obtenção de input
do usuário, tudo somente quando precisar, e por aí vai.

E você, já usou o yield? Gosta? Onde? Comente aqui.