DEV Community

Cover image for YAGNI - Você não vai precisar disso.
Suspir0n
Suspir0n

Posted on

YAGNI - Você não vai precisar disso.

O que é YAGNI?

O YAGNI(You arin't gonna need it) é um princípio que retrata sobre não usar aquilo que não é necessário. Com isso, quando vamos desenvolver um software, antes de começar a fazer, começamos a planejar o que vamos utilizar nele, como:

  • Ferramentas
  • Frameworks
  • Linguagens de Programação
  • SQL ou NoSQL
  • Testes
  • Princípios

Pensamos em colocar em prática muitas coisas não é mesmo? Por isso comecei a escrever primeiro sobre KISS, reparou que eles se completam?

Caso não se lembrem o que é o KISS, resumindo, ele é um princípio que fala sobre manter a simplicidade na sua aplicação. Lembrando simples não é a mesma coisa que ser simplista, falaremos sobre isso em outro artigo.

Como ambos se completam tanto o KISS como o YAGNI, para manter a simplicidade, apenas usaremos tecnologias necessárias, é neste momento que o YAGNI entra, mas como saber se algo é necessário ou não no momento?

Vamos para um exemplo, digamos que tenham que desenvolver uma API. Do que eu preciso para criar uma solicitação do tipo GET?

Primeiro precisará de uma framework para facilitá o desenvolvimento, neste exemplo vou usar o FastAPI.

Arquivo main.py

from fastapi import FastAPI

app = FastAPI()

@app.get('/')
async def index():
    return {"Hello World": "Olá Mundo"}
Enter fullscreen mode Exit fullscreen mode

Reparou? Bem simples não é mesmo?

No momento não era necessário, eu criar varias pastas ou arquivos, separar a responsabilidade, neste momento isso não é necessário, pois o meu objetivo era fazer uma solicitação do tipo GET simples para validação. Veja que não é necessário de várias ferramentas, isto vai vendo com o decorrer do desenvolvimento, implementando apenas o necessário.

Resumindo, quando falamos que YAGNI é um princípio que diz "não usar aquilo que não é necessário", nos referimos a sua tarefa, lembre-se, um passo de cada vez, se você precisa apenas da solicitação do tipo GET, para quer você vai criar uma solicitação do tipo POST se não é necessário? Deu para entender?

Segundo ao LinkApi "O conceito do YAGNI é justamente esse, não usar aquilo que não é necessário!" e como ele mesmo diz complexidade desnecessária é custo.

Então o KISS usa o YAGNI, o YAGNI usa o KISS, formando um ciclo.

Os 7 princípios que os desenvolvedores precisam conhecer

Já falamos de alguns destes princípios, vou deixar o link para vocês.

No SRP falamos um pouco sobre o SOLID, teremos um artigo explicando do que se trata o SOLID e sobre os outros princípios citados.

Este foi o diário de bordo #11. Seguindo a sequência do que meu amigo @figur8 me apresentou semana passada, 3 novos princípios o YAGNI, KISS e DRY, hoje eu escolhi falar sobre o YAGNI na próxima semana irei trazer sobre o DRY galera, vlw. Vamos nos despedindo por aqui. Voltaremos com mais um diário de bordo.

Este artigo foi útil para você?
Deixe um comentário abaixo.

Referências

Discussion (0)