Executando verificação de segurança...
4

O que é design patterns? e como aplicar isso em Unity C#

Tentei uma vaga de desenvolvedor de jogos em uma empresa. Pediram para eu criar um jogo em uma semana. Em seguida, participei de uma entrevista e, posteriormente, recebi um e-mail informando que meus códigos não tinham design patterns. Se alguém estiver disposto a me explicar o que são design patterns e como utilizá-los no Unity ou indicar um conteudo para aprender sobre eu agradeço.

link do codigo fonte do jogo: github.com/th3-Rocha/Fruity-Boy
faz um ano que fiz esse joguinho e esse é mais ou menos meu nivel de gameDev no unitykkkk

Carregando publicação patrocinada...
2

Respondi o que é Design Pattern.

Você os estuda, sabe que existe, e quando encontrar um problema que um deles se encaixa você o usa. O que não faz é ficar procurando um problema, um lugar para usar. Isso é um comportamento muito comum, não faz sentido e acaba trazendo problemas, muitas vezes de over engineering, violando o YAGNI.

Você pode usar em todo lugar e os melhores você usa quase em toda linha de código nem percebe. Pode usar em diversos pontos do Unity. De fato o Unity certamente usa diversos deles. Mas você não usa um padrão em todo ele.

Muita gente não entende bem o que é, e muitos possuem uma definição equivocada, por uma razão básica. Muitos cometem o erro que eu falei acima de ficar usando onde não deve. Em muitos casos se a pessoa comete o erro ela quer que você cometa o mesmo para você trabalhar com ela. Isso é mais comum do que parece. E muitas vezes a pessoa não entende bem oque é porque aprendeu pelas inúmeras fontes equivocadas na internet e outros lugares.

O termo foi popularizado por um livro que listou alguns padrões para facilitar, ou até reverter o uso de orientação a objeto. Então muita gente acha que só é padrão de projeto se estiver na lista. E alguns querem que esses padrões listados sejam usados em todo lugar, mesmo que não precise.

Eu não sei dizer o que você precisava ou não usar, se era bom em algum lugar. Não sei se o requisito apresentado pedia isso. Não sei se o feedback que passaram é bom, ou mesmo se ele faz sentido. Não sei até se isso não foi desculpa para não dizer outra coisa, o que é muito comum.

Talvez você prefirará a definição equivocada, ela é mais popular. A Wikipédia é sempre um bom lugar para começar, em verbetes certos ou errados. Sobre o assunto é o balaio de gato, tem partes boas e partes ruins, como acontece muito em ambiente wiki. Lá fala mais sobre object oriented design patterns, que muitas vezes é o que a pessoa está falando, mas não sabe o termo correto ou está com preguiça de escrever ou falar ele por completo. Pode ter sido o caso. Aí pode ser que queira ler o livro do GoF sobre o assunto, não há dúvidas que é a referência canônica sobre este tipo, embora hoje já há quem conteste, porque o livro dá ênfase para o que eles documentaram e ignoram o resto.

Como em tudo, especialmente na computação, você tem que estudar todos os assuntos para ter entendimento correto, só decorar algumas coisas não resolve muito. Porque aí a pessoa fica como o programador Sandoval Quaresma.

https://www.youtube.com/watch?v=TYIzVfzTxN0

Não sei se é fácil e necessário usar DP em um código simples. Pode ser um requisito só para avaliar se você consegue, mas pode ser um erro usar em condições normais.

Se você estiver sendo avaliado por alguém que não sabe programar muito bem, a seleção se torna aleatória, e pode ser uma boa não conseguir. Pelo menos para alguns.

Faz sentido para você?

Espero ter ajudado.

Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).