[Proyecto] Emulador PSP

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06

Ariath
Enteradillo
Enteradillo
Mensajes: 29
Registrado: 17 Ene 2011, 19:37
PSN ID: AriathTheWise
Ubicación: Murcia
Contactar:

Re: [Proyecto] Emulador PSP

Mensaje por Ariath »

Es que de hecho, si el código está bien ordenado, a las variables y funciones se les pone nombres intuitivos, etc ... comentarios hacen falta mínimos, porque, si sabes un mínimo de programación, y ves un código así, directamente lo entiendes.

Si os cogéis todos Linux, ya sea nativo o virtualizado, me montaré yo también un Ubuntu virtual, así trabajamos todos igual :) .

Luego, una vez se tuviera el código, solo habría que compilarlo en Windows para tener sus binarios, y en Linux para los suyos.

Salu2

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Proyecto] Emulador PSP

Mensaje por m0skit0 »

Primero, aclarar que aquí no importan los tochos. De hecho, habrá que leer bastante, así nos vamos acostumbrando :lol:

Ariath escribió:Respecto al tema de Windows y Linux, creo que es mejor hacer una sola versión, en la que se pueden ir añadiendo las bifurcaciones que sean necesarias (los que conocen ya C, hablo de los típicos #ifdef _WIN32 o #ifdef _UNIX, etc ... (hablo de memoria, así que seguramente he puesto ambos ifs mal xD)).

Eso es malo para mantener y hace que el código sea enorme innecesariamente. Tener 2 proyectos diferenciados es más claro, aunque se repita código. En Linux no habŕia problema en usar enlaces blandos para no tener que, pero tampoco veo ningún problema en tener 2 proyectos separados. Es mucho más limpio y mantenible en mi opinión.

Ariath escribió:Respecto al servidor SVN, voto por Assembla por 2 razones: Primero es un hosting SVN gratuito y de buena calidad, y segundo, es bastante intuitivo de gestionar.

Yo voto por Google Code, es una empresa que sabes no va a cerrar, porque ya he manejado varios proyectos en él también (el HBL está en Google Code por ejemplo), porque es gratis, porque apoya el software libre, y no he tenido ningún problema en gestionarlo (de todas formas yo todas las gestiones de código por SVN las hago desde el cliente).

Ariath escribió:Y bueno, hay una cosa en que me gustaría hacer especial hincapié: La legibilidad del código.

Cierto, no lo comenté antes porque... iokese :lol: Estoy totalmente de acuerdo con lo que dices, y si te fijas en mi código, yo siempre intento mantenerlo lo más ordenado, legible y comentado posible.

De hecho, ya que lo comentas, me gustaría proponer unas reglas de estilo. Y nada mejor que un ejemplo comentado:

esta_cabecera.h

Código: Seleccionar todo

/* 
- Donde digo "int" digo cualquier tipo
- Uso de TABULACIONES (no espacios) para el sangrado
- Una tabulación por cada sangrado
- Las llaves siempre al principio de línea (no al final aaaargh grgrgrgr)
- Todo lo que va dentro de llaves va sangrado (con excepciones sobre todo en C++)
*/

// Esto SIEMPRE, ahorra innumerables errores compilación de referencias circulares
#ifndef ESTA_CABECERA_H
#define ESTA_CABECERA_H

// Primero las cabeceras estándar
#include <stdio.h>
// Luego librerías extra
#include <peasograficos.h>
// Luego las propias de la aplicación
#include "cabezabolo.h"

// Constantes con mayúsculas!!
#define CONSTANTE_DEFINE
#define OTRA_CONSTANTE

// typedef struct siempre directamente
// Siempre pongo los tipos con "t" por delante
typedef struct
{
   // Interesante estructura
}tUnTipo;


// Descripción de la clase y su funcionalidad
class cClase: public cClasePadre
{
private:
   // Lo que vaya en cada, tabulado como se debe
protected:
public:
}

#endif


cclase.cpp

Código: Seleccionar todo

// Sólo ésta a ser posible, sólo ésta
#include "cabeceraquecorresponda.h"

// Descripción del cometido del método, de los parámetros de entrada y valor de retorno
int cClase::hace_algo_importante(int parametro1)
{
    // Siempre incializar
    int describeme = 0;

    // Nunca valores literales en el código, siempre usar constantes, salvo valores intrínsecos del lenguaje
   // Siempre con llaves, aunque la sintaxis permita que no se usen
    if (describeme == CONSTANTE_DEFINE)
    {
      // Usa y abusa de los paréntesis (se ve(que programo(en lisp?)))
        while ((describeme > 0) && (describeme < CONSTANTE_DEFINE))
      {
         // Muchas cosas difíciles y complicadas
      }
    }
   else
   {
      // Buah, más difícil aún
   }

   // Todo sangrado en el switch
   switch(describeme)
   {
      case CONSTANTE_DEFINE:
         

   // Un solo return por función!
   return OTRA_CONSTANTE;
}

Los nombres de fichero siempre en minúscula.

Estoy abierto a cualquier discusión, pero intentemos no perder mucho tiempo en esto. Es más fácil aceptar un determinado modelo (el mío, claro :lol: ) y empezar a lo importante ;)
Imagen

Avatar de Usuario
dRoLl3R
Habitual
Habitual
Mensajes: 315
Registrado: 29 Sep 2009, 21:30
Ubicación: [ † ] Asturias

Re: [Proyecto] Emulador PSP

Mensaje por dRoLl3R »

Acepto lo de moskito. Es la primera vez que veo C++ orientado a objetos. Tiene cierto parecido con java pero hay cosas que no he entendido todavía. Nada mas que empiece a ver código funcionando fijo que lo entenderé.
PSP3ooo: 4.21 -> 5.00 -> 5.03 -> 5.03 GEN-A -> 5.03 M33 -> 5.03 MHU -> 5.03 GEN-C -> 5.03 MHU -> 6.20 PRO-B4

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Proyecto] Emulador PSP

Mensaje por m0skit0 »

dRoLl3R escribió:Es la primera vez que veo C++ orientado a objetos.

Es que no hay otro :lol: ;)

dRoLl3R escribió:Tiene cierto parecido con java pero hay cosas que no he entendido todavía. Nada mas que empiece a ver código funcionando fijo que lo entenderé.

¡Cuidao! Será que Java ha copiado C++ :x Y sí, si sabes/estás viendo Java, lo pillarás en un pispás. El tema de la memoria dinámica ya es otro asunto ;)
Imagen

Avatar de Usuario
dRoLl3R
Habitual
Habitual
Mensajes: 315
Registrado: 29 Sep 2009, 21:30
Ubicación: [ † ] Asturias

Re: [Proyecto] Emulador PSP

Mensaje por dRoLl3R »

Es que lo que hemos dado de C++ era mas bien C porque nos dedicamos a hacer ejercicios muy parecidos a los que tienes tu en el foro de programación.
Ya sé que java está basado en C tranquilo. Quería decir que se entiende igual de bien que java y como estoy dando java lo cogeré rápido :lol:
PSP3ooo: 4.21 -> 5.00 -> 5.03 -> 5.03 GEN-A -> 5.03 M33 -> 5.03 MHU -> 5.03 GEN-C -> 5.03 MHU -> 6.20 PRO-B4

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Proyecto] Emulador PSP

Mensaje por m0skit0 »

Sólo te estoy chinchando hombre :lol: ;)

A ver qué piensa la gente con más experiencia, que seguro que me ponen a parir y partimos en guerras santas :lol: (así llaman los hackers a las discusiones entre personas que nunca pueden resolverse porque son cuestiones de gustos, del inglés "holy wars").
Imagen

Ariath
Enteradillo
Enteradillo
Mensajes: 29
Registrado: 17 Ene 2011, 19:37
PSN ID: AriathTheWise
Ubicación: Murcia
Contactar:

Re: [Proyecto] Emulador PSP

Mensaje por Ariath »

Solo una sugerencia, no comenzar los tipos con t, en lugar de eso yo hago lo siguiente:

- Cadenas, sLoquesea
- Estructuras, strLoquesea
- Enteros, iLoqusea

Etc ...

¿Que os parece :) ?.

Salu2

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Proyecto] Emulador PSP

Mensaje por m0skit0 »

Por mí perfecto :oki:
Imagen

Avatar de Usuario
pspCaracas
Moderador Global
Moderador Global
Mensajes: 3080
Registrado: 03 Sep 2009, 03:29
Ubicación: Buenos Aire - Argentina
Contactar:

Re: [Proyecto] Emulador PSP

Mensaje por pspCaracas »

m0skit0 escribió:Las llaves siempre al principio de línea (no al final aaaargh grgrgrgr)

Y a mí que siempre me ha gustado al final. Por qué? Simplemente por legibilidad y espacio. Gastar una línea para una llave no me parece correcto (y ahora menos que hay muchos netbooks y xPads suelto)...pero es cuestión de estilos, y el jefe es el que manda (gracias a Dios los IDEs permiten configurar esto).
http://farm3.static.flickr.com/2497/3983880148_f5ae0aaab2_o.png

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Proyecto] Emulador PSP

Mensaje por m0skit0 »

pspCaracas escribió:Y a mí que siempre me ha gustado al final. Por qué? Simplemente por legibilidad y espacio

¿Legibilidad? ¿Qué legibilidad puede tener una llave al final y otra al principio? No puedes ver qué llave corresponde con qué, tienes que andar buscando los finales de línea. ¿Puse la llave, no la puse...? ¿Para qué tanta molestia? Y no sé qué manía con eso del espacio, ¿qué pasa pagas a la gente por líneas de código? :lol: No veo mal el uso del espacio donde sea necesario para que sea más legible.

pspCaracas escribió:Gastar una línea para una llave no me parece correcto (y ahora menos que hay muchos netbooks y xPads suelto)

Si programas en un netbook, estás loco. Te vas a dejarla espalda y los ojos de una sola tacada.

pspCaracas escribió:gracias a Dios los IDEs permiten configurar esto

Mientras no subas el código con las llaves al final, todos contentos :lol:

Uy uy uy esto va a derivar en guerras internacionales que va a tener que mediar Carla Bruni :chapao: y más estando el "diplomático" de pspCaracas :lol:
Imagen

Responder