namespaces

Started by JaViS, June 18, 2010, 09:32:03 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JaViS

Hola gente!


Hace mucho que no me paso por aqui, pero finalmente me hice de tiempo para poder dedicarle a los videojuegos :D

Resulta que volviendo al tema de Bennu (en realidad no lo conocia muy bien, solamente habia programado en DIV y Fenix) me di cuenta de un feature que extraño muchisimo, sobretodo para lo que es codigo reutilizable y librerias que podria organizar y contribuir a la comunidad. En concreto, el feature que me gustaria ver en Bennu son los namespaces.

Quien ha programado ya en C++, .net o PHP 5.3+ seguramente los conoce, se trata de agrupar funciones, variables, etc bajo un mismo nombre, de modo que no se corra el riezgo de tener nombres duplicados en un mismo proyecto por estar incluyendo código de terceros :)


para mas info: http://es.wikipedia.org/wiki/Espacio_de_nombres


Chas gracias! :D y aguante Bennu carajo! :D

Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

eso es muy orientado a clases, para hacer lo que queres solo tenes que usar prefijos, conceptualmente, el namespace es eso mismo, pero implementarlo en bennu seria mucho trabajo, no imposible, pero mucho trabajo y tiempo que ahora no tengo.

por otro lado, estas en la misma, que uses namespaces no significa que otra libreria no use el mismo namespace y tenga una funcion nominada igual.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

La momia que fuma

No tengo mucho que aportar al tema pero...

Bienvenido de nuevo, Javis! ;)

JaViS

Quote from: SplinterGU on June 18, 2010, 09:59:55 PM
eso es muy orientado a clases, para hacer lo que queres solo tenes que usar prefijos, conceptualmente, el namespace es eso mismo, pero implementarlo en bennu seria mucho trabajo, no imposible, pero mucho trabajo y tiempo que ahora no tengo.

por otro lado, estas en la misma, que uses namespaces no significa que otra libreria no use el mismo namespace y tenga una funcion nominada igual.


well. hum sip, es cierto lo de los prefijos. :P
Working on Anarkade. A couch multiplayer 2D shooter.

grisendo

Quote from: SplinterGU on June 18, 2010, 09:59:55 PM
por otro lado, estas en la misma, que uses namespaces no significa que otra libreria no use el mismo namespace y tenga una funcion nominada igual.

La idea es que los namespaces sean únicos. Por ejemplo, en java los packages (que vienen a ser lo mismo) tienen el nombre de la página web [invertida], un package creado por una compañía sería org.bennugd, y sería único porque nadie más posee esta web.

No está nada mal la idea, la verdad que nunca he metido namespaces en un compilador, pero siempre he pensado que serían fáciles de hacer (lo que dices, ponerlo como prefijo a todas las funciones que sean de ese namespace y luego para los que otro no utilicen ningún namespace ponerles un prefijo reservado), pero hablo un poco desde la ignorancia porque no sé cómo funciona exactamente el compilador de Bennu.

FreeYourMind

#5
Yo uso namespaces en c# y la verdad no se para que quereis esta chorrada en Bennu, en Java o C# se entiende por la mecanica de los objetos ya que simplifica su uso y organización, aparte de que proyectos grandes pueden usar muchas dll's de terceros y pueden estar divididos en varias capas.
Pero para la filosofia Bennu no tiene mucho sentido/utilidad, el codigo de terceros suelen ser nuevos procesos, y las dlls tambien suelen ser lo mismo, procesos y funciones. El problema de variables duplicadas se resuelve poniendole un 2 delante por ejemplo.

Drumpi

Hola de nuevo, Javis, espero que te quedes por aquí y sigas disfrutando del código :D

Lo cierto es que lo de los namespaces (algo que no conocía hasta que hace un mes me empecé a pelear con conio) es útil en la programación en grupo o de motores, pero no lo veo necesario: el uso de prefijos es la solución rápida.
Yo tenía ese problema con las variables, en ocasiones tenía tal cantidad que ya no sabía las que había declarado como globales y cuales como privadas, así que ahora, a las privadas de uso poco común, le pongo de prefijo las iniciales del proceso que las contiene: para crear_nave_enemiga() tendría cne_variable. Las únicas excepciones que hago son con los nombres cont (a menudo, seguido de un número, para contadores), temp (idem, para datos provisionales) y n (para guardar el número de orden de este proceso en una lista) que no las uso de forma global.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

kim-elet-o

Por ejemplo en el proyecto apagame4be, a todas las variables y contantes del galaxian, yo les ponia el prefijo Gal_, para evitar repeticiones con otras variables de los otros juegos que estaban incluidos en el apagame4be, (por ejemplo variables como vida, score, etc).
|/
|\im-elet-o el yayo programador.

SplinterGU

cosa que yo escribi como normas de buenas practicas de programacion en un documento de estilos publicado en este foro.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Quote from: SplinterGU on June 19, 2010, 08:12:38 PM
cosa que yo escribi como normas de buenas practicas de programacion en un documento de estilos publicado en este foro.

He revisado recientemente ese documento de cara al proyecto ese que tenemos por ahí ;D se proponen ese tipo de cosas, y eso está muy bien, pero he visto alguna "norma" con la que no estoy de acuerdo del todo, y también he echado en falta otras normas más. ¿Había un hilo específico sobre ese documento para poder discutir posibles cambios/mejoras?
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es