Object Calisthenics - MarcosPiccoli/DotNetPractices GitHub Wiki

Object Calisthenics

A principal motivação para o Object Calisthenics é aplicar alguns princípios do SOLID. Basicamente são um conjunto de boas práticas e regras de programação para aumentar a qualidade do seu código.

Essas regras são focadas em manutenibilidade, legibilidade, testabilidade e compreensão de seu código.

Se você já escreve um código com boa manutenção, legível, testável e compreensível, essas regras o ajudarão a escrever um código ainda mais sustentável, mais legível, mais testável e mais compreensível.

O conceito do Object Calisthenics, ao todo, é composto 9 regras. Para mim, o ideal é ser aplicado ao menos, as regras 2, 6 e 7, detalhadas abaixo:

2. Don't use “Else” keyword

A ideia deste conceito é evitar o máximo possível o uso do “else” e assumindo que temos um fluxo padrão de execução.

Tabs {.tabset}

Exemplo 1

public IActionResult Login(String username, String password)
{
   	var view = String.Empty;
 
   	if (!userRepository.isValid(username, password))
   	{
    		ModelState.AddModelError("error", "Bad credentials");
        view = "Login";
   	}
   	else
   	{
    		view = "Home";
   	}
    
   	return View(view);
}

Exemplo 2

public IActionResult Login(String username, String password)
{
   	if (!userRepository.isValid(username, password))
   	{
    		ModelState.AddModelError("error", "Bad credentials");
        return "Login";
   	}
   	else
   	{
    		return "Home";
   	}
}

Exemplo correto

public IActionResult Login(String username, String password)
{
    if (!userRepository.isValid(username, password))
    {
    		ModelState.AddModelError("error", "Bad credentials");
        return View("Login");
    }
    
    return View("Home");
}

6. Don’t Abbreviate

Porque queremos abreviar o nome de uma variável ou um método ? Lembre-se que o ter um nome com um bom significado ajuda muito no entendimento do código.

A recomendação desta regra é não usar nomes abreviados e com significado.

7. Keep All Entities Small

Essa regra fala para não termos classes com mais de 50 linhas. Apesar de ser um número realmente pequeno de linhas, acreditamos que o ideal é não ultrapassar 200 linhas.

O conceito principal desta regra é não termos classes com muitas linhas de código, justamente porque são mais difíceis de entender e de manter.

Links úteis:

Desenvolva um código melhor com Object Calisthenics