Dicas de Organizaзгo -
RebeloX - 14.11.2013
Dicas de Organizaзгo
A organizaзгo nуs cуdigos й uma coisa fundalmental, porйm nгo obrigatуria, mas digamos que vocк participa em uma comunidade e quer expor o seu trabalho й necessбrio haver uma organizaзгo visto que ninguйm й obrigado a descobrir o que й que certa coisa й e/ou faz. Isto tambйm й aplicado para quem quer trabalhar na бrea de programaзгo, quando se trabalha nesta бrea raramente estamos sozinhos, ou seja, nуs estamos a desenvolver algo com uma equipa e й necessбrio que exista uma organizaзгo entre ela, pois se o cуdigo й feito а maneira de um pode haver bastante conflitos na hora de ler. Apуs esta introduзгo vamos ao que interessa.
Quando desenvolvemos um projeto, seja qual for ele, й necessбrio organizarmos os nossos ficheiros. Nуs nгo somos obrigados a escrever um cуdigo no mesmo ficheiro, desta forma podemos criar vбrios ficheiros responsбveis por diversas coisas, por exemplo:
Temos um gamemode e o que queremos fazer de inicio й um sistema de login, sistema de admin e um sistema de casas.
Em vez de escrevermos tudo em sу um ficheiro nуs poderemos dividir estes sistemas em 3 ficheiros, da seguinte forma:
- user.p
- Responsбvel pelo gerenciamento dos dados do jogador (Login, Registro, Salvamento, etc...)
- admin.p
- Responsбvel pelos comandos e sistemas de administrador
- casas.p
- Responsбvel pelos sistemas de casa (Compra de casa, Salvamento de casa, etc...)
Nota: No pawn tambйm й possнvel usar a extensгo .p em vez de .pwn
Entгo mas como й que eu posso fazer esse tipo de ficheiros se no sa-mp server sу tem a pasta gamemodes?
Bem primeiro vocк pode criar uma pasta e colocar lб os ficheiros, tambйm pode colocar na pasta includes e atй gravar os ficheiros como
.inc em vez de
.p , isto depende da organizaзгo e intrepretaзгo de cada um.
Eu pessoalmente quando desenvolvo projetos usando a linguagem PAWN eu costumo criar uma pasta e lб coloco as seguintes pastas:
- bin: Responsбvel por conter o ficheiro .amx do projeto
- pawno: Responsбvel por ter a pasta includes e o compilador e editor
- ...includes: Responsбvel pelas includes do sa-mp ( apenas ficheiros .inc)
- systems: Responsбvel pelos ficheiros de sistema ( ex: admin.p )
- plugins: Responsбvel pelas includes de plugins do sa-mp ( apenas ficheiros .inc)
Por fim eu coloco o ficheiro principal como,
main.pwn na pasta e para compilar basta criar um ficheiro
batch que executa o compilador e compila o ficheiro
main.pwn e move para a pasta
bin.
Exemplo de um ficheiro
.bat:
Код:
pawno\pawncc.exe ficheiro.pwn -r -w
move ficheiro.amx bin
pause
Lembrando que existem diversos parвmetros no compilador mas isso cabe a vocк decidir quais usar.
Como podem ver este modo de organizaзгo pode ser bastante ъtil e eficaz, mantйm o seu projeto limpo e organizado e pode ser portбvel.
Uma das coisas fundamentais na programaзгo й
comentar,
comente o que й necessбrio, pois assim quando vocк abrir ele de um dia para o outro e/ou passar a um colega vai ser mais fбcil para ler o cуdigo.
Caso vocк tenha usado a dica de criar ficheiros por separado tambйm й bastante bom usar keywords, ou seja, para o
sistema de admin poderнamos usar o prefixo
admin_ dessa forma se fizermos uma funзгo ou variбvel iria ficar
admin_AlgumaCoisa , lembrando que isto
nгo serб necessбrio se vocк usa variбveis locais, pois estas sгo usadas em apenas uma funзгo.
Outra coisa interessante й pegarmos em uma folha de papel ou um programa e fazermos um diagrama e nele conter todos os sistemas que seriam necessбrios no nosso projeto, dessa forma teremos um cуdigo ainda mais organizado.
Este tуpico nгo й um tutorial em si, mas sim dicas para quem leva a programaзгo a sйrio e gosta de organizaзгo, ninguйm й obrigado a fazer este tipo de organizaзгo, mas й sempre bom sermos organizados.
Espero que gostйm, regradz
Re: Dicas de Organizaзгo -
Dolby - 14.11.2013
Bastante legal Gonзalo, eu considero a organizaзгo muito importante, seria interessante citar sobre nomenclatura de variбveis, Hungarian notation, etc.
Respuesta: Dicas de Organizaзгo -
DanDRT - 14.11.2013
@Topico
Bem Legal, sempre trazendo coisas novas, parabйns Gonзalo
@Gustavo
Passei a tratar a nomeclaturas de outro modo, so mudo a nomeclatura pra _@str ou @_str quando estou a fazer include pra nгo dar warning's no code do usuario que baixar.
Re: Dicas de Organizaзгo -
PT - 14.11.2013
Parabens, bom tutorial sem duvida a organizaзгo e importante.
Re: Dicas de Organizaзгo -
iTzDemon - 14.11.2013
Quote:
Originally Posted by BlueX
Em vez de escrevermos tudo em sу um ficheiro nуs poderemos dividir estes sistemas em 3 ficheiros, da seguinte forma: - user.p
- Responsбvel pelo gerenciamento dos dados do jogador (Login, Registro, Salvamento, etc...)
- admin.p
- Responsбvel pelos comandos e sistemas de administrador
- casas.p
- Responsбvel pelos sistemas de casa (Compra de casa, Salvamento de casa, etc...)
|
ja tinha pensado nisso mas nunca experimentei
Otimas dicas
Re: Dicas de Organizaзгo -
XxFaTaLxX - 14.11.2013
Bem bacanas essas dicas, me ajudara bastante.
Re: Dicas de Organizaзгo -
RebeloX - 14.11.2013
Quote:
Originally Posted by Dolby
Bastante legal Gonзalo, eu considero a organizaзгo muito importante, seria interessante citar sobre nomenclatura de variбveis, Hungarian notation, etc.
|
Sim, eu nгo referi a nomenclatura, provavelmente em breve irei referir isso no tutorial
Quote:
Originally Posted by DanDRT
@Topico
Bem Legal, sempre trazendo coisas novas, parabйns Gonзalo
@Gustavo
Passei a tratar a nomeclaturas de outro modo, so mudo a nomeclatura pra _@str ou @_str quando estou a fazer include pra nгo dar warning's no code do usuario que baixar.
|
A minha ideia й mesmo essa, trazer novos conceitos.
Sobre a nomenclatura que vocк faz de _@str eu tambйm faзo isso, mas й apenas uso no pawn visto que em C++ vocк pode usar namespace , dessa forma vocк pode fazer.
PHP код:
#include <iostream>
namespace A { short var = 25; }
namespace B { short var = 12; }
int main() { std::cout << "A: " << A::var << " B: " << B::var << std::endl; return 1;}
Isto й bastante ъtil, pois jб nгo й necessбrio usar esse tipo de simbologia.
Quote:
Originally Posted by PT
Parabens, bom tutorial sem duvida a organizaзгo e importante.
|
Sim, desta forma todos podemos-nos entender
Quote:
Originally Posted by iTzDemon
ja tinha pensado nisso mas nunca experimentei
Otimas dicas
|
Entгo, agora podes experimentar, acredita que vale mesmo a pena.
Obrigado
Quote:
Originally Posted by XxFaTaLxX
Bem bacanas essas dicas, me ajudara bastante.
|
Й essa a minha intenзгo, obrigado
Respuesta: Dicas de Organizaзгo -
ipsBruno - 14.11.2013
Em codigos grandes й interessante, mas vamos lembrar que isto й Pawn, organizar por completo (ou em alguns casos "querer embelezar" o cуdigo) seria uma perda de tempo.
Bom tuto
Re: Dicas de Organizaзгo -
Kuddy - 14.11.2013
No pawn nao temos classes nem podemos referenciar outro script, no final acaba ficando tudo a mesma salada, so que mais bonitinha e servida em porcoes menores. No RPG que eu desenvolvi do 0 eu fiz um arquivo para cada sistema (casas, banco, empresas, orgs, funcoes gerais, comandos e o arquivo principal tinha as includes, defines, variaveis e callbacks), isso deixava bastante organizado porem um pouco mais demorado para se trabalhar. Fiz a divisao do meu GM inspirado no GM que voce estava desenvolvendo na epoca (final do ano passado).
De qualquer forma, o tutorial esta exemplar. +4 reps.
Creio que este sera meu ultimo post por um bom tempo, pelo menos ate eu terminar alguma versao do meu jogo, que com certeza divulgarei aqui. Eh isso ai, mina sayonara!
Re: Dicas de Organizaзгo -
RebeloX - 15.11.2013
Quote:
Originally Posted by ipsBruno
Em codigos grandes й interessante, mas vamos lembrar que isto й Pawn, organizar por completo (ou em alguns casos "querer embelezar" o cуdigo) seria uma perda de tempo.
Bom tuto
|
Sim, eu uso essa organizaзгo de arquivos em cуdigos grandes, mas costumo comentar tudo e usar a minha nomenclatura, visto que isto й universal.
Quote:
Originally Posted by Juniiro3
Eu gostei bastante desse mйtodo de organizaзгo, mas com o GM todo fragmentado em vбrios arquivos com os sistemas, eles seriam usados como FS? Nгo ficou muito claro.
|
Nгo, eles serгo usados como #include , visto que eles sгo uma partiзгo do sistema principal vocк pode usar #include e sim й possнvel colocar #include de ficheiros .p
Quote:
Originally Posted by Kuddy
No pawn nao temos classes nem podemos referenciar outro script, no final acaba ficando tudo a mesma salada, so que mais bonitinha e servida em porcoes menores. No RPG que eu desenvolvi do 0 eu fiz um arquivo para cada sistema (casas, banco, empresas, orgs, funcoes gerais, comandos e o arquivo principal tinha as includes, defines, variaveis e callbacks), isso deixava bastante organizado porem um pouco mais demorado para se trabalhar. Fiz a divisao do meu GM inspirado no GM que voce estava desenvolvendo na epoca (final do ano passado).
De qualquer forma, o tutorial esta exemplar. +4 reps.
Creio que este sera meu ultimo post por um bom tempo, pelo menos ate eu terminar alguma versao do meu jogo, que com certeza divulgarei aqui. Eh isso ai, mina sayonara!

|
Sim, claro, as classes ajudam bastante, principalmente na organizaзгo e na nomenclatura, porque usando classes vocк nгo tem de usar nomes bizarros visto que a funзгo X pertence a uma classe e a mesma funзгo pode pertencer a outra classe porйm estгo distintas. Eu acho que eu tinha te mostrado o gm, deixa bastante organizado, demora um pouco mais, mas garanto que quando vocк quer procurar algo jб sabe onde ir enquanto em um gm com 50k vocк tem que dar scroll ainda por cima se nгo se lembra do nome da funзгo xD
Obrigado
Estou esperando esse jogo, boa sorte mano!