MaXwEllDeN 89 Postado Abril 16, 2012 Share Postado Abril 16, 2012 (editado) 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. Editado Dezembro 14, 2012 por MaXwEllDeN Link para o comentário Compartilhar em outros sites More sharing options...
Beeki 284 Postado Abril 18, 2012 Share Postado Abril 18, 2012 (editado) Opa, gostei muito do seu tutorial amigo, só tenho uma dúvida os créditos são seu ou do autor do Livro? REP+ como incentivo para continuar trazendo conteudos otimos como esse para o XTibia, abraços. Editado Abril 25, 2012 por Beeki Link para o comentário Compartilhar em outros sites More sharing options...
kpdo 18 Postado Abril 18, 2012 Share Postado Abril 18, 2012 (editado) muito boa as dicas, algumas eu ja seguia , outras eu ja sabia, porem tinha esquecido. rep + Editado Abril 18, 2012 por renansmith Link para o comentário Compartilhar em outros sites More sharing options...
Gabriel Couto 293 Postado Abril 18, 2012 Share Postado Abril 18, 2012 Aguardando mais para aprovar, aguarde mais repostas no tópico! REP+ Link para o comentário Compartilhar em outros sites More sharing options...
MaXwEllDeN 89 Postado Abril 18, 2012 Autor Share Postado Abril 18, 2012 (editado) @Beeki Os Irmãos Deitel claro que têm sua parte dos créditos, porém essas dias já eram conhecidas por muitas pessoas, então não creio que eles tenham sido os primeiros a divulgá-las. Editado Abril 18, 2012 por MaXwEllDeN Link para o comentário Compartilhar em outros sites More sharing options...
Lordfire 309 Postado Abril 25, 2012 Share Postado Abril 25, 2012 Sensacional! Super bem formatado e um ótimo conteúdo. Aprovado. Link para o comentário Compartilhar em outros sites More sharing options...
MaXwEllDeN 89 Postado Janeiro 5, 2013 Autor Share Postado Janeiro 5, 2013 Por favor alguém coloca meu tutorial na área de scripting novamente, creio que aqui ele não tem muita utilidade, visto que o tutorial visa mais scriptwriting em Lua, algumas coisas podem ser aproveitadas para outras linguagens, mas, ele foi feito especificamente para Lua, movam por favor. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados