K.I.S.S - Mantenha as coisas Simples
Hoje vamos tratar do princípio K.I.S.S - 'Keep it simple, stupid'. |
|
KISS, não é aquela banda de rock famosa, é um acrônimo para "Keep it simple, stupid" e, é um princípio de design observado pela Marinha dos EUA em 1960.
O princípio do KISS afirma que a maioria dos sistemas funciona melhor se forem mantidos simples e não complicados; portanto, a simplicidade deve ser uma meta fundamental no design e a complexidade desnecessária deve ser evitada.
Assim o princípio KISS valoriza a simplicidade do projeto e defende que toda a complexidade desnecessária seja descartada.
Esse princípio pode ser aplicado a qualquer cenário, incluindo muitas atividades de negócios, como planejamento, gerenciamento e desenvolvimento. Vamos considerar a abordagem focando o design e desenvolvimento de software.
Um problema comum entre engenheiros e desenvolvedores de software é que tendemos
a complicar demais os problemas. Vivemos em um mundo complicado e estamos trabalhando em diferentes projetos em desenvolvimento, alguns são
muito simples e outros são complexo. Assim, enquanto trabalhamos em projetos
simples, muitas vezes optamos por seguir o caminho difícil que seguimos em projetos
mais complicados.
'Tente manter o processo o mais simples possível'
Neste cenário, muitos programadores simplesmente ficam presos em uma certa linha de pensamento, que não é necessariamente a linha de pensamento correta. Em geral, cada tarefa de programação pode ser realizada de inúmeras maneiras.
Para buscar dados de um banco de dados, você pode escrever um procedimento armazenado e chamá-lo usando o ADO.NET ou o Entity Framework (supondo que você use o .NET); ou você pode escrever a consulta em sua base de código usando o ADO.NET; ou talvez você escreva uma consulta LINQ com o Entity Framework (ou LINQ to SQL, ou talvez ainda esteja preso aos conjuntos de dados digitados).
Agora, se formos contar as maneiras pelas quais você pode escrever sua consulta SQL ou LINQ, em breve chegará à conclusão de que existem centenas de maneiras de fazer algo tão simples quanto obter dados de um banco de dados.
Neste cenário é melhor avaliar e seguir o caminho mais simples ou seja o que usa o código mais claro, mais robusto e menor.
Todos nós experimentamos situações nas quais tínhamos trabalho a fazer no projeto e encontramos um código confuso. "Por que eles escreveram essas linhas e condições desnecessárias quando poderíamos fazer a mesma coisa em apenas 2-3 linhas?"
Basta dar uma olhada nos dois códigos mostrados abaixo. Ambos os métodos estão fazendo a mesma coisa, mas qual você usaria?
public String diaSemana(int dia)
{
if ((dia < 1) || (dia > 7)) throw new InvalidOperationException("dia deve estar entre 1 e 7");
string[] dias = "Segunda","Terça","Quarta","Quinta","Sexta","Sabádo","Domingo"};
return dias[dia - 1];
}
|
public String diaSemana(int dia) {
switch (dia) {
case 1:
return "Segunda";
case 2:
return "Terça";
case 3:
return "Quarta";
case 4:
return "Quinta";
case 5:
return "Sexta";
case 6:
return "Sábado";
case 7:
return "Domingo";
default:
throw new InvalidOperationException("dia deve estar entre 1 e 7");
}
}
|
Dessa forma, sempre que possível, a complexidade deve ser evitada em um sistema - pois a simplicidade garante os maiores níveis de aceitação e interação do usuário. O objetivo de qualquer processo/projeto deve oferecer o resultado mais simples possível.
Falar é fácil, mas mostre-me como ???
Segue algumas diretrizes básicas:
-
Mantenha seus métodos pequenos, cada método nunca deve ter mais de 50 a 100
linhas.
-
Cada método deve resolver apenas um pequeno problema, não muitos casos de uso.
Se você tiver muitas condições no método, divida-as em métodos menores. Não só
será mais fácil ler e manter, como também encontrar bugs muito mais rapidamente.
- Não
use lógica complexa se isso puder ser feito com simplicidade. Porque criar
todo um sistema de Login se já houver um pronto que pode ser usado ou adaptado ?
-
Não tenha medo de jogar fora o código. Ao refatorar o código, sempre remova o
código indesejado.
-
Resolva o problema e codifique-o. Antes de tudo, dedique tempo para entender o
problema e como ele pode ser resolvido. Somente depois desse salto parta para
resolvê-lo. Divida suas tarefas em subtarefas e resolva uma por uma, mantendo-as
simples.
-
Às vezes, usamos recursos sofisticados da tecnologia apenas para usá-los; não
devemos usá-los até que seja necessário.
- Conheça as melhores práticas! Veja alguns bons livros sobre o assunto:
- Certifique-se de
pesquisar no Google por soluções antes de inventá-las. Porque reinventar a roda
??? Você não pode saber tudo, mas pode pesquisar tudo no Google e encontrar uma
solução que mais se aproxima do seu objetivo.
-
Não confie em tudo que lê na web. Até na MSDN existem alguns artigos que mostram
más práticas! Continue usando seu bom senso.
-
Pratique, pratique, pratique! A prática leva ao aperfeiçoamento.
- Depois leia o código - leia muito. Descubra o que funciona e o que não funciona e entenda o porquê.
Agora, Simples não significa "rápido, desleixado e sujo."
Na verdade, muitas vezes simplificar
implica em muito trabalho que inclui várias iterações e muita discussão.
A recompensa é um software que é mais fácil de manter e menos suscetível a
erros.
E estamos conversados...
"O temor do Senhor
é fonte de vida, para desviar dos laços da morte."
Provérbios 14:26,27
Referências:
Jose C Macoratti (@macorati) | TwitterSeção Entity Framework - Macoratti .NET
ASP .NET Core - Implementando a segurança com ... - Macoratti
ASP.NET Core MVC - Criando um Dashboard ... - Macoratti.net
Entity Framework - Separando as classes das entidades do EDM(.edmx) em projetos distintos
C# - Gerando QRCode - Macoratti
VB .NET - Gerando, Salvando e lendo QRCode - Macoratti
ASP .NET - Gerando QRCode com a API do Google
ASP .NET Core - Identity : Two Factor Authentication - Macoratti