Bennu Game Development

Foros en Español => Documentación => Mensaje iniciado por: DCelso en Noviembre 27, 2008, 10:32:02 am

Título: documento de estándares de programación BennuGD
Publicado por: DCelso en Noviembre 27, 2008, 10:32:02 am
Hola SplinterGU,
abro este tema para preguntarte como llevas el documento de normativa, consejos, estandares, recomendaciones de programación a la hora de desarrollar código para bennu.
Y también para que quede reflejado aquí para futuros proyectos.

Gracias de antemano en nombre de todos los programadores por el documento.
Felicidades por tus grandes avances en el proyecto.
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Noviembre 30, 2008, 06:08:22 am
Aca va la primera version del documento.
Acepto sugerencias.

EDIT:
Actualizacion del documento...
Título: Re: documento de estándares de programación BennuGD
Publicado por: josebita en Noviembre 30, 2008, 05:08:14 pm
Tiene buena pinta, aunque le veo una pequeña pega. En el texto no me ha parecido que quede claro que la parte de copyright es sólo si si quiere que la licencia sea la GPL. Para alguien que no sepa de qué va el tema puede ser confuso.
Una frase explicando eso y con un enlace a algún sitio en que se explique en qué consiste la licencia me parece que ayudarían.
Tampoco explicas que el texto no es válido si en los fuentes no se incluye una copia de la licencia (fichero COPYING) o una forma clara de conseguirla.

Por lo demás, está muy bien.
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Noviembre 30, 2008, 05:39:57 pm
No entre en detalles al respecto del copyright salvo la fecha y los autores, por el hecho de que el texto es una sugerencia, lo unico realmente importante y que debe contenerse en el copyright es la lista de autores y fechas.

Pero veo que necesito aclararlo mejor...

gracias
Título: Re: documento de estándares de programación BennuGD
Publicado por: DCelso en Noviembre 30, 2008, 09:06:48 pm
Hola SplinterGU, me parece buena propuesta pero le queda mucho aún ¿no?
me refiero a cuando usar mayusculas o minusculas en palabras reservadas, constantes o variables o definición de funciones o procesos
es decir cual usar mas correctamente para el estilo:
int p_imivariable
Int p_iMiVariable
INT p_i_mi_variable
bueno hay mas permutaciones pero ves lo que quiero decir
o porejemplo en C se recomienda usar mayusculas separando palabras con "_" para macros, pej.
#define MAX_VALOR 6
#define SUMAR(a,b)  a+b
y para variables empezar por minusculas y separar palabras con una mayuscula a inicio de palabra pej
int miVariable
Para funciones empezar siempre con mayusculas, no se, unas cuantas cosas mas.
No se, estás usando como refeencia alguna guia de estilo?
asi buscando he visto estasdos
http://iie.fing.edu.uy/ense/asign/str/curso-c/guia-c.htm
http://trevinca.ei.uvigo.es/~jgarcia/TO/guiaestilocpp.pdf
a ver si se puede sacar algo de ellas para este documento.
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Noviembre 30, 2008, 09:43:34 pm
Leiste el documento completo?
Eso que preguntas ya esta en el documento...
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Noviembre 30, 2008, 09:46:04 pm
Si, tome el primero de ellos, pero obviamente el lenguaje es diferente asi que no quedo nada... y se tomaron ciertas cosas, y ciertas cosas se sugieren de forma diferente para que el codigo quede mas claro.
Título: Re: documento de estándares de programación BennuGD
Publicado por: DCelso en Noviembre 30, 2008, 10:09:20 pm
ah,si, sorry no lo vi, asi de rápido lo leí, voy a releer. :((
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Noviembre 30, 2008, 10:13:54 pm
fijate que esos puntos se describen luego de las tablas de prefijado, tablas que muestran el literal a usar (en minusculas) para los prefijos de variabales...
Título: Re: documento de estándares de programación BennuGD
Publicado por: Sandman en Diciembre 01, 2008, 03:18:56 am
I wrote my own code convention last year, maybe you can get ideas from it. It's a bit of a mix of C and Java.

The prefixes for different kind of variables (like g_b, p_i, etc) are very informative, but personally I would never use them, because I don't really like the aesthetics (looks, feel) of them. MyProcess.l_iAngle just doesn't appeal to me, for example. Moreover, the use of a lowercase 'L' in code is not recommended, as it resembles a '1' and an uppercase 'i' quite much.

For the rest I don't have objective things left to say. One thing I do find more pleasing to the eye is to not write keywords in all uppercase like you do. For example, I don't like PROCESS BEGIN END, but I like Process Begin End, but that's just my opinion.

[EDIT]
It's here (http://wiki.bennugd.org/index.php?title=Sandman%27s_code_convention) btw...
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Diciembre 01, 2008, 09:41:39 am
This are suggests for for publics projects... for your private code, you manage it how you like... this are for simple read code in publics project...

I like and I see clear: MyProcess.l_iAngle... you'd must know that vars can't not begin with "1" (number) then not confuse posible...
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Diciembre 01, 2008, 09:45:15 am
Quizas no queda bien prefijar las funciones y procesos, antes del prefijo de origen (fuente/grupo origen) luego modificare el documento...
Título: Re: documento de estándares de programación BennuGD
Publicado por: Sandman en Diciembre 01, 2008, 02:15:38 pm
I know this is for public projects and that variables cannot start with a digit. I am merely responding to your requests for suggestions. However this convention turns out, it's a good effort and I will probably support it.
Título: Re: documento de estándares de programación BennuGD
Publicado por: DCelso en Diciembre 01, 2008, 04:18:39 pm
SplinterGu, llámame tonto pero no encuentro en el documento lo referente a cómo escribir las palabras clave (o reservada) de Bennu como : public, private, begin, end, if, then, etc.

Otra cosa que quizás que veo aconsejable es no dar opciones distintas de nomenclatura al usuario como en el caso de puedes usar ("miVariable" o "mi_Variable") sino recomendar una de las dos y punto. Es que si empezamos a dejar vías abiertas al final el código generado usando la guia de estilo puede cambiar mucho entre usuarios alejándose del intento de igualación de estilo entre distintos programadores. No se si me entiendes.

Otra buena opción sería intentar disponer de un checklist en excel (o en calc para openoffice) para podernos autoevaluar (o que nos evaluen) el código a ver que apartados cumplimos de la guia de estilo.

En uno de mis antiguos trabajo teníamos uno y dependiendo del número de apartados cumplidos el código se aceptaba o se rechazaba :D.
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Diciembre 01, 2008, 05:02:31 pm
dice que la nomenclatura usada en el codigo debe ser pareja dentro de todo el proyecto...

las palabras claves no hay norma al respecto, en bennu se pueden escribir en minusculas y mayusculas, si hubiese una necesidad de limitar el uso de mayusculas o minusculas en las keywords, entonces se haria desde el lenguaje... agregare igualmente sugerencias al respecto. Gracias.

lo del checklist no me parece para nada mal... pueden incluir uno de esos en el proyecto...
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Diciembre 02, 2008, 07:08:48 am
Documento actualizado, y mejorado un poco el aspecto...
Lo hice dormido, asi que puede que necesite alguna correccion... por favor chequeenlo y diganme si ya lo estan poniendo en practica...
Título: Re: documento de estándares de programación BennuGD
Publicado por: DCelso en Diciembre 02, 2008, 10:44:54 am
Hola SpliterGU, he adaptado el documento a un checkist usando calc de oppenoffice.
A ver que os parece.
Saludos.
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Diciembre 02, 2008, 01:23:50 pm
Muy bueno... quizas sacaria el detalle de las cosas, por ejemplo, las tablitas... y alguna que otra descripcion ampliada... quiero decir, que el checklist, los titulos, y la explicacion en el documento... me parece bien... esta bueno...

Te ganaste un karma...
Título: Re: documento de estándares de programación BennuGD
Publicado por: Sandman en Diciembre 02, 2008, 01:24:40 pm
3.1.1.19:
d) STRUCT

Do you mean TYPE here?
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Diciembre 02, 2008, 01:35:10 pm
yes, sorry... STRUCT is part of GLOBAL or LOCAL...
thanks...

1+ Karma
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Diciembre 02, 2008, 01:41:48 pm
Actualizado http://forum.bennugd.org/index.php?topic=340.msg4059#msg4059
Título: Re: documento de estándares de programación BennuGD
Publicado por: MythomizeR en Diciembre 02, 2008, 02:35:37 pm
No se e igual es como quieres que sea, pero en el punto 3.1.1.4, el de las constantes, dices:

Todas las palabras que conformen el nombre de una contante deben ser escritas en forma
capitalizada (primera letra en mayúsculas, resto en minúsculas) y separadas entre sí por un guión bajo.


¿no querrías decir todas las letras en mayúsculas? lo digo porque por lo general es así, ahora, que como decía antes igual es que es así como lo prefieres...

Ah, y por cierto, se echa en falta ejemplos prácticos dee todo ello después de cada explicación, como por ejemplo:

explicación:

#define  MAX_NUM    100    // Número máximo


Por otro lado, buen trabajo, aunque yo ya estoy demasiado atado a mi estilo como para cambiar :-), aunque sí que vendrá bien el documento supongo para clarificar ciertas cosas...
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Diciembre 02, 2008, 02:42:39 pm
en los defines todas en mayusculas... por ejemplo

#define NULL     0

en las constantes, mayusculas primer letra, resto de las letras minusculas, por ejemplo:

const
    Main_Menu_Code = 1;
    Options_Menu_Code = 2;
end

La idea de esto es que a simple vista uno sepa de que se trata, si es una constante, si es un define, si es un nombre de una variable, local, global, privada, publica, si es una funcion/proceso, en que grupo o fuente puede estar... etc...
Que a simple vista uno tenga una idea cercana a lo que es cada cosa.
Título: Re: documento de estándares de programación BennuGD
Publicado por: MythomizeR en Diciembre 02, 2008, 02:46:19 pm
Ah OK, claro es que me refería a los define...

de todas formas también se echa en falta como he dicho después en la edición del post anterior, ejemplos prácticos de cómo se quiere (tal y como me lo has explicado en tu post)...
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Diciembre 02, 2008, 02:48:22 pm
Si, muy buena sugerencia... gracias...
Título: Re: documento de estándares de programación BennuGD
Publicado por: DCelso en Diciembre 02, 2008, 03:07:06 pm
Cambio en el checklist.
A ver que tal ahora, antes dejaba seleccionar un elemento tanto para Sí como para No.

Ahora hace estadísticas de los apartados cumplidos

Por cierto, gracias por el karma, ahora soy más Earl (http://es.wikipedia.org/wiki/Me_llamo_Earl) :D  ::) :)
Título: Re: documento de estándares de programación BennuGD
Publicado por: josebita en Diciembre 09, 2008, 11:00:21 pm
En el documento haces referencia a la palabra reservada "on_exit". Si no me equivoco, es "onexit". ¿no?.
Título: Re: documento de estándares de programación BennuGD
Publicado por: SplinterGU en Diciembre 09, 2008, 11:59:21 pm
es correcto, es un error, gracias.
Título: Re: documento de estándares de programación BennuGD
Publicado por: Windgate en Mayo 19, 2009, 03:40:09 pm
Vaya, llego tarde a ver este docuemento de estándares...

Lo he mirado por encima y más o menos llevo el mismo convenio (Más o menos...) intentaré adaptarme todo lo posible a este estándar en mi nuevo tutorial :-\
Título: Re: documento de estándares de programación BennuGD
Publicado por: La momia que fuma en Junio 10, 2009, 12:08:15 pm
La verdad es que tengo que empezar a empaparme de estas cosas....si vieseis alguno de mis códigos os daría un patatús XDDDD (Y asi me va, claro XD)
Título: Re: documento de estándares de programación BennuGD
Publicado por: Windgate en Junio 10, 2009, 07:53:02 pm
Uf, momia... A medida que he ido haciendo más y más juegos he visto que conviene llevar un estándar. Casualmente tuve la suerte de que el estándar que tomé yo es prácticamente el mismo del documento (Vaya potra xD).

Además de el estándar para el código yo también llevo un "estándar" de módulos .prg que incluyo directamente en todos mis juegos. Un video.prg que gestiona la configuración de vídeo, un constantes.prg con las constantes que siempre uso (Resoluciones y FPS por ejemplo), otro arbitro.prg que gestiona el fin de la partida y la tecla _esc, y otros tantos más...

Es cuestión de fracasar en muchos proyectos hasta que vas pillando ciertos estándares. Yo todavía soy un fracasado programando en Bennu, pero cada nuevo proyecto lo empiezo mejor que el siguiente :P
Título: Re: documento de estándares de programación BennuGD
Publicado por: syous en Junio 11, 2009, 08:12:35 am
Uf, momia... A medida que he ido haciendo más y más juegos he visto que conviene llevar un estándar. Casualmente tuve la suerte de que el estándar que tomé yo es prácticamente el mismo del documento (Vaya potra xD).

Además de el estándar para el código yo también llevo un "estándar" de módulos .prg que incluyo directamente en todos mis juegos. Un video.prg que gestiona la configuración de vídeo, un constantes.prg con las constantes que siempre uso (Resoluciones y FPS por ejemplo), otro arbitro.prg que gestiona el fin de la partida y la tecla _esc, y otros tantos más...

Es cuestión de fracasar en muchos proyectos hasta que vas pillando ciertos estándares. Yo todavía soy un fracasado programando en Bennu, pero cada nuevo proyecto lo empiezo mejor que el siguiente :P

no soy el unico que usa ese estilo xDDD y yo que lo creia propio ;D