Olá Galera, hoje vou postar um tutorial que ensina você a deixar seu código mais bonito, legível e organizado. Vamos lá.
Em primeiro lugar vamos aprender oque é indentação ou identação.
Identação ou Indentação é básicamente a organização de um código, usando tabulações e organizando os blocos de um código por tabulações diferentes.
Exemplo de um código com indentação:
function doPlayerCompleteQuest(uid, quest) doPlayerAddItem(uid, quest[1], quest[2]) setPlayerStorageValue(uid, quest[3], 1) doTeleportThing(uid, getTownPosition(getPlayerTown(uid))) doPlayerSendTextMessage(uid, 27, "Você completou a quest ".. quest[4] ..".") if (getPlayerStorageValue(uid, quest[5]) > 0) then doPlayerSendTextMessage(uid, 27, "E recebeu um bônus por ter completado outra quest.") end return true end
Este mesmo código, mas agora sem indentação:
function doPlayerCompleteQuest(uid,quest) doPlayerAddItem(uid,quest[1],quest[2]) setPlayerStorageValue(uid,quest[3],1) doTeleportThing(uid,getTownPosition(getPlayerTown(uid))) doPlayerSendTextMessage(uid,27,"Você completou a quest "..quest[4]..".") if (getPlayerStorageValue(uid,quest[5])>0) then doPlayerSendTextMessage(uid,27,"E recebeu um bônus por ter completado outra quest.") end return true end
Um código com indentação, a primeira vista pode não ser nada de mais. Porém se você fizer um código grande, com muitas funções, condições e declarações, uma boa indentação deixa seu código muito mais fácil de ser lido por outros programadores e até por você mesmo e ser modificado também.
Enquanto eu lia um livro sobre C++, encontrei uma lista de algumas boas práticas para programar que eu já conhecia e outras que aprendí. Listarei algumas delas aqui.
Escreva seus códigos de uma maneira simples e direta. Isto é, àsvezes chamado de KIS (“mantenha-o simples” - Keep It Simple). Não “force” a
linguagem usando códigos grandes quando poderia ser feito de um modo pequeno.
Por exemplo, um código poderia ser feito desse modo:
function addLifeWithInterval(uid, life, interval) function add() if (isCreature(uid)) then doCreatureAddHealth(uid, life) end end add() addEvent(add, 2*interval) addEvent(add, 3*interval) addEvent(add, 4*interval) addEvent(add, 5*interval) addEvent(add, 6*interval) addEvent(add, 7*interval) addEvent(add, 8*interval) addEvent(add, 9*interval) addEvent(add, 10*interval) addEvent(add, 11*interval) addEvent(add, 12*interval) addEvent(add, 13*interval) addEvent(add, 14*interval) addEvent(add, 15*interval) addEvent(add, 16*interval) addEvent(add, 17*interval) addEvent(add, 18*interval) addEvent(add, 19*interval) return true end
Quando poderia ser feito usando menos linhas, desse outro modo:
function addLifeWithInterval(uid, life, interval) function add() if (isCreature(uid)) then doCreatureAddHealth(uid, life) end end add() for a = 1, 19 do addEvent(add, a*interval) end return true end
Leia os manuais para a versão de LUA que você está usando. Consulte estes manuais com freqüência, para certificar-se de que esteja ciente da rica relação de recursos que LUA apresenta e de que está usando estes recursos corretamente.
Recue o corpo inteiro de cada função um nível de indentação nas marcas de tabulação que definem o corpo da função. Isto faz com que a estrutura funcional de um programa se destaque e ajuda a tornar os programas mais fáceis de ler.