Postado Fevereiro 27, 2012 13 anos Este é um post popular. 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 é, às vezes 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. Estabeleça uma convenção para o tamanho dos recuos de indentação que você prefere; então, aplique uniformemente essa convenção. A tecla de tabulação pode ser usada para criar recuos, mas pontos de tabulação podem variar Recomendamos usar espaços entre tabulações de 1/4 de polegada ou (preferível) três espaços para criar o recuo para um nível de indentação. Alguns programadores preferem declarar cada variável em uma linha separada. Este formato permite a fácil inserção de um comentário descritivo após cada declaração. Coloque um espaço após cada vírgula ( , ) para tornar os programas mais legíveis. Escolher nomes de variáveis significativos ajuda um programa a ser “autodocumentado “, isto é, torna mais fácil de entender o programa simplesmente lendo-o, em vez de ter que ler manuais ou usar comentários em excesso. Sempre coloque uma linha em branco entre uma declaração e comandos executáveis adjacentes. Isto faz com que as declarações se destaquem no programa, contribuindo para a clareza do mesmo. Se você preferir colocar declarações no início de uma função, separe essas declarações dos comandos executáveis da função com uma linha em branco, para destacar onde as declarações terminam e os comandos executáveis começam. Coloque espaços dos dois lados de um operador binário. Isto faz com que o operador se destaque, tornando o programa mais legível. Exemplo: print(1 + 1) Como na álgebra, é aceitável se colocar parênteses desnecessários em uma expressão para torná-la mais clara. Estes parênteses são chamados de redundantes. Parênteses redundantes são usados comumente para agrupar subexpressões de uma expressão grande, para tornar a expressão mais clara. Quebrar um comando longo em uma seqüência de comandos mais curtos e mais simples também aumenta a clareza. Indente o comando que compõe o corpo de uma estrutura if para fazer com que o corpo da estrutura se destaque, melhorando desta forma a legibilidade. Em um código não deve haver mais que um comando por linha. Exemplo: 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 Para tabelas com muitos parâmetros tecle enter e dê um "tab". Exemplo: config = { life = {max = 150, min = 250}, vocations = {1, 2, 3, 4}, premmy = true, levelmin = 150, flags = { ["blue"] = {pos = {x = 160, y = 54, z = 7}, flagid = 2175}, ["red"] = {pos = {x = 220, y = 75, z = 7}, flagid = 2170}, } } Sempre que puder use variáveis locais, isso garante que não haja nenhum conflito com outros scripts. Bem, com essas dicas ai eu acho que muitas pessoas podem melhorar o estilo de programar , Falous galera. Abraço. OBS: A maioria das dicas listadas aqui foram tiradas do Livro: Deitel - Como Programar C++ 5ª Edição -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Fevereiro 27, 2012 13 anos Boa Max, alias bem vindo ao fórum, espero que goste, e continue trazendo bons conteudos como este. Reputado! www.patronum.online
Postado Fevereiro 27, 2012 13 anos Administrador Cara, belo tópico, muito bem organizado e conteúdo impecável. Como o Vittu já disse, bem-vindo ao fórum, espero que goste de sua estadia! TibiaKing Team- KingTópicos www.tibiaking.com
Postado Fevereiro 27, 2012 13 anos Desejo o mesmo... Apesar de não saber quase nada de programação, lua ou c++ Se lhe ajudei Rep+ me Atenciosamente: Itroxz Mapper~~ [email protected] [email protected]
Postado Fevereiro 29, 2012 13 anos Pode parecer não ser muita coisa... mas pra quem ta começando como eu.... ja facilita para não acabar se perdendo no script!!! +REP Scripts: http://tibiaking.com...onte-por-level/ Tutoriais: http://tibiaking.com...51-newtypes-87/
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.