Sign in to follow this  
.Dev

[CURSO] Básico de Lua 03

Recommended Posts

Post Anterior: 

Comentando o Código

Antes de mais nada, boas praticas de programação, não são uma regra fixa que não pode mudar, mas sim, praticas (como o nome já diz), que facilitam o desenvolvimento, e o trabalho em equipe em um código. A principal boa pratica de programação é comentar o código, em Lua os comentários podem ser feitos da seguinte forma.

 

Para comentar linhas únicas se utiliza ( "--" ) da seguinte forma.

if condição then -- Comentário do IF.

 

Para comentar em blocos se utiliza --[[ Bloco a ser comentado ]]

Tentem manter ao máximo a pratica de comentar oque cada função faz, variáveis e etc, assim fica mais fácil para você se encontrar no código, e para quem estiver trabalhando junto com você no código.

 

Desenvolvimento & Identação

 

Sempre que forem programar tente manter em mente que seu código deve ser:

 

1. Simples                 - Deve ser de fácil compreensão;

2. Direto                     - Deve executar aquilo que é proposto, sem rodeios, e sem funções desnecessárias e sem utilidade;

3. Organizado           - Deve seguir uma ordem de organização (mais a baixo vou exemplificar uma organização.)

4. Sem duplicidade  - não faz o que outra parte do código já faz;

5. Elegante e Único  - Seu código deve ser algo que você se orgulhe de ter feito, que seja elegante, e funcional e que principalmente seja seu.

 

Um dos pilares para organização do código e para facilitar a visualização do mesmo, seria a utilização de uma boa identação, como por exemplo:

Código sem identação:

addEventHandler( "onPlayerWasted", getRootElement( ),function()
setTimer( spawnPlayer, 2000, 1, source, 0, 0, 3 )
end)

 

Mesmo ainda sendo legível o exemplo básico de código logo acima, se ele for identado fica melhor a compreensão do mesmo.

 

Código Identado:

addEventHandler( "onPlayerWasted", getRootElement( ),
    function()
        setTimer( spawnPlayer, 2000, 1, source, 0, 0, 3 )
    end)

 

Pode parecer algo besta, só alguns tabs para organização, mas em um código com mais de 300 linhas, isso faz muita diferença.

 

**Só para lembrar, Lua não necessariamente precisa de identação já que tem then/do e etc, mesmo assim é uma boa pratica.**


Nome de Variáveis e Outras boas Praticas

Outra boa pratica de programação é a forma como se nomeia as variáveis e funções, não há uma regra definidas mas existem padrões em outras linguagens

para facilitar a leitura, por exemplo:

 

Variáveis se escrevem com nome_nome = valor 

Funções se escrevem com nome_nome()

 

Eu recomendo que nomeiem as funções dessa forma ou nomeNome = valor; nomeNome(); Além disso recomendo que sempre utilizem nomes que façam sentido por exemplo:

 

local nomeJogador = getPlayerName(source) -- Vou explicar quando usar Source/Player/thePlayer na parte de Script.

 

Caso fosse uma função poderia ser obterNomeJogador() ou obter_nomeJogador(), o importante é que seja legível e você consiga identificar oque ela faz.

 

Alguns podem se perguntar, porque não utilizar tudo minúsculo e junto, bom quando você começa a trabalhar com letras iguais isso se torna um problema por exemplo:

 

local casaamarela = x, y, z

 

Nesse caso seria recomendável uma separação, por padrão eu sugerido que sempre usem minusco e _ dessa forma casa_amarela = x, y, z; Assim mesmo que as letras

sejam iguais, você não teria que se preocupar com descobrir oque aquele variável faz.

 

Um pratica que eu não recomendo de forma alguma é abreviação ou o uso de letras por exemplo:

 

local obter_nomeJogador() 

 

Que passaria a ser 

 

local onj()

 

Para você que esta programando pode fazer o maior sentido agora, mas para outras pessoas ficam muito confuso, além de que você pode se esquecer ou nomear funções com as mesmas letras mais a frente no código, oque geraria conflito com a informação.

 

Outra boa pratica de programação seria a de utilização de parênteses () em verificações, eu pessoalmente não me atenho muito a isso, porem facilita muito a vida de quem esta começando exemplo:

local x = 10;
local y = 50;

if x < y then 

 

Passaria a ser:

 

if (< y) then 

 

Essa pratica torna a condição muito mais visível, e facilita o entendimento da verificação. 

 

** Porem no caso de Lua assim como o ; ao final das var não é de uso obrigatório, outras linguagens podem ser.**

 

Loops e Condicionais

 

Como foi explicado no post passado, os loops e condicionais são muito uteis e fazem grande parte da programação, porque querendo ou não, temos que verificar coisas, e agir de acordo com elas.

Tendo isso em mente, vou dar uma dica básica, evite chamar funções em loops ou condicionais complexas, principalmente em loops.

 

Oque acontece aqui é que mesmo um while/repeat executa varias vezes um mesmo bloco de código, até prover uma condição favorável a saída, e isso pode parecer Simples, mas imagine você chamando 10,20 ou 30 vezes uma mesma função, que atribui valores locais na memoria, e executa. Em Lua isso não se torna um problema muito grande, mas em outras,linguagens como C ou mesmo JS isso pode causar um crash na aplicação muito fácil, então para evitarmos que esses problemas possam acontecer, evitem ao máximo chamar funções dentro de l ops ou condições complexas.

 

Negações no IF

 

Outra pratica que e interessante se evitar, é utilizar as condicionais no negativo, por exemplo o if not. Lembre-se que uma condição, só é executada quando a condição se torna verdadeira, e um if not é uma negativa verdadeira, parece algo besta, mas você poderia lidar com ela no else,

isso é mais uma recomendação mesmo, trate as verificações sempre como produtos verdadeiros e lide com os negativos no processo, não faça uma negativa verdadeira.

 

Organização de Código

 

No começo do código, geralmente é recomendável a importação de bibliotecas, funções externas, e etc. Depois a atribuição de variáveis globais se necessário.

 

Podem seguir esse modelo básico:

 

  • Variáveis globais e Datas;
  • Objetos e Afins;
  • Funções e Condicionais;
  • Exports e Imports;
  • Handles e eventos.

 

Pode parecer meio confuso agora, mas quando chegarmos na parte de Script de MTA, vamos seguir essa organização e garanto que tudo vai ficar mais fácil.

 

Como esse post trata de praticas de programação, eu recomendo que você retorne em seus códigos antigos e tentem refazer eles utilizando essas técnicas, e organizar o seu código da melhor maneira possível.

 

O único exercício que eu vou deixar aqui, é que vocês tentem diminuir a quantidade de linhas nos seus código antigos, sem perder funcionalidade.

 

Caso queiram, podem postar o código nesse tópico, e caso tenham alguma duvida, deixem logo a baixo. Só lembrando ao pessoal que já entende do assunto, ou pelo menos sabe o básico, vamos ajudar quem esta começando, todo mundo começou sem saber quase nada.

 

Parte 04: 

 

Edited by .Dev
  • Like 4
  • Thanks 1
  • Haha 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.