🤔 Para Refletir : "A verdadeira ideia criativa vem do momento mais simplório do dia." - Yonori Akari

"Se o seu código é do tamanho do seu problema, tem algo errado com ele"

Colaboração Colaboração
"colore a minha vida com o caos do problema."
Postagens
195
Bravecoins
1.222
Durante a minha jornada com jogos conheci (tanto nessa comunidade maravilhosa, quanto em outras parceiras) pessoas muito mais capazes que eu quando o assunto em questão eram os códigos. Simplesmente, criei a percepção observando essas pessoas explicando, me corrigindo e colaborando com a minha construção de conhecimento que, de forma resumida, a programação (e até poderia estender isso até para a lógica do pensamento matemático de forma mais geral), o objetivo maior ao desenvolver uma linha de código é a de solucionar um problema da forma mais simples o possível. Basicamente, poderíamos seguir o princípio da economia, também conhecido como Navalha de Ockham, se existem duas formas de alcançar um mesmo fim use a mais simples!
Devo criar um rápido adendo, isso não se aplica exclusivamente a programação, mas também a escrita literária, o próprio método científico, etc. Mas, em razão do próprio princípio aqui defendido, não vou estender isso para além da exaustão.

Agora. Vejamos isso de um ponto de vista mais prático. (Devo novamente admitir de forma humilde o quão limitado sou no quesito programação, então mesmo as minhas sugestões ainda são as sugestões de alguém que ainda está se debruçando em entender as nuances da sintaxe e simplificações, provavelmente, outras sugestões brilhantes para as situações que eu apresente ou outras podem surgir nos comentários ou na cabeça de você leitor!)
Em determinado momento de meu projeto Fumiko.
1mikoSemFundo.png
(olha que menina linda que ama sapos e com longos cabelos verdes!)
Eu gostaria de elaborar um sistema de "Caixas Misteriosas", onde a personagem título seria capaz de receber itens aleatórios dentro de uma pool controlada de itens que eram potencializados de acordo com o nível de sorte da protagonista.
Seria totalmente válido alguém, como eu na época, pensar que a forma mais prática de resolver esse problema é simplesmente usar uma variável para segurar os níveis de sorte da personagem, outra para randomizar as opções e mais tantas condições forem necessárias para cada um dos itens possíveis. Essa pessoa alcançaria o resultado esperado com um evento mais ou menos assim...
1677035846944.png

Observe o tamanho descomunal deste evento. Do ponto de vista prático, provavelmente, qualquer um dos meus colegas repetiriam a frase título deste artigo para mim. Criar um jogo já é um feito EXTREMAMENTE desgastante, acredite, você não precisa amplificar todo o seu trabalho multiplicando seu código além do que ele necessita para funcionar em seu jogo.
Mostrarei parte desta mesma lógica feito de um modo mais simples:
1677036361267.png

(Embora, aqui não se aplique a chance de se conseguir dinheiro e as falas da personagem enquanto ela abre a sua "Caixa Misteriosa", creio que já sirva bem ao objetivo de exemplificar o meu ponto). Neste caso, devo creditar o nosso amigo @DanTheLion esse esquema de simplificação foi feito em cima das suas aulas de Javascript - Arrays (basta clicar para ser redirecionado a essa aula e entender melhor o que cada um desses comandos faz).

Creio que, seja até mais interessante que vocês possam compartilhar um pouco das suas experiências parecidas, sobre sistemas que vocês faziam de forma mais "braçal" e que com o ganho de experiência puderam simplificar. Como HUDs, e outros sistemas que podemos tentar recorrer a múltiplas condições desnecessárias.
Em suma, isso acaba sendo mais uma conversa que um tutorial em si ou algo do tipo... Uma certa forma que eu adquiri de pensar com relação a programação. Um bom código é necessariamente simples em sua leitura e ele não se estende mais do que o necessário.
 
Pó véi, concordo com você: fazer do jeito mais simples é melhor. Tipo, antigamente eu quebrava a minha cara tentando fazer mil coisas ao mesmo tempo para meus projetos, resultando sempre em frustação e AQUELA RAIVINHA BÁSICA NO CORAÇÃO. Hoje em dia, uso as gambiarras mais cara de pau (e espertas) pra facilitar minha vida, além de ter melhorado a organização como um todo.
 
fazer do jeito mais simples é melhor
Resumiu muito bem a minha ideia aqui! Podemos cair no erro de pensar que um código super longo e complexo mostra que aquela pessoa é mais capaz ou algo assim, e não necessariamente isso é verdade. Existe uma enorme elegância na simplificação, e poupa um monte de fios brancos! KAKAKAKA. Obrigado por colaborar nesse devaneio.
 
Excelente post!
Na comunidade maker está cheio de eventos que não são reusáveis, e acho que essa é a palavra chave, reusabilidade.

Se me permite, vou fazer um adendo (e não um contraponto, porque você não trata especificamente desse assunto), mas vale lembrar que nem sempre código menor é necessariamente melhor, nesse exemplo que você deu, de fato é uma solução melhor e menor, mas isso nem sempre é verdade.

Por vezes, nós programadores, precisamos decidir entre micro otimizações e um código mais simples de entender.

Em quase 100% dos casos, opte pelo caminho de escrever o código mais simples de entender, com os computadores de hoje, são raros os cenários que a gente precisa de micro otimizações.
Existe todo um conceito chamado "otimização prematura", que trata disso, pessoas tentando fazer sempre da forma mais otimizada possível e acabam com um código terrível que se você precisar alterar algo no futuro, vai estar ferrado.
 
Excelente post!
Na comunidade maker está cheio de eventos que não são reusáveis, e acho que essa é a palavra chave, reusabilidade.

Se me permite, vou fazer um adendo (e não um contraponto, porque você não trata especificamente desse assunto), mas vale lembrar que nem sempre código menor é necessariamente melhor, nesse exemplo que você deu, de fato é uma solução melhor e menor, mas isso nem sempre é verdade.

Por vezes, nós programadores, precisamos decidir entre micro otimizações e um código mais simples de entender.

Em quase 100% dos casos, opte pelo caminho de escrever o código mais simples de entender, com os computadores de hoje, são raros os cenários que a gente precisa de micro otimizações.
Existe todo um conceito chamado "otimização prematura", que trata disso, pessoas tentando fazer sempre da forma mais otimizada possível e acabam com um código terrível que se você precisar alterar algo no futuro, vai estar ferrado.

Quando o senpai vai fazer suas pontuações! Sempre vem boa coisa por ai, dá até para dar uma arrumada no texto e acrescentar isso na baila. Por exemplo, deixar em um evento comum uma interação para impedir que você tenha que reescrever um código e/ou comando novamente toda vez em que ele iria aparecer! (Faço bastante isso para chamar caixas de texto e as famosas Big Faces)

Um bom código é necessariamente simples em sua leitura e ele não se estende mais do que o necessário.
Espero não me arrepender dessa frase, pq posso ter dado a entender que o código precisa ser enxuto pra ser top!!! Tmj e falou a força que deu nas postagens, gosto que a galera comente, ai não me sinto falando com as paredes, agradeço a todos que comentaram aqui e nos outros. :''D
 
Voltar
Topo