› Foros › PC › Software libre
Pues como me he sentido aludido al leer esto te remito a esta url, y ahi esta la guia de estilo que hizo eraser para los programadores del grupo (mencionada por dykstra)dykstra escribió:Pues lo último que ví parecido a lo que buscas lo encontré en el proyecto bombergum y como siempre , suerte pa ellos
Salu2
Pues como me he sentido aludido al leer esto te remito a esta url, y ahi esta la guia de estilo que hizo eraser para los programadores del grupo (mencionada por dykstra)
Saludos!
FuckingFreaky escribió:No sé, todo ese tipo de cosas, ¿dónde podría aprenderlas a hacer correctamente?
FuckingFreaky escribió:Si no recuerdo mal, en otro post, hace tiempo me comentásteis incluso que ciertas organizaciones tienen cierto estilo propio. Que si los programas GNU tenían la sintaxis organizada de una forma, etc. Pero, supongo que lo que programéis de aquí y los que hayáis compartido código con gente de todo el mundo ó hayáis visto código de aplicaciones libres, estaréis acostumbrados a saber de qué hablo.
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
for (int i = 0; i < 10; i++)
{
System.out.println(i);
}
EDITO: y muy importante. Para programar bien hay que escribir, por cada poco código, un párrafo de comentarios, pero no del tipo "mostramos el nombre del usuario" y luego hacer un printf, sino comentar qué se está haciendo y, sobre todo, por qué se está haciendo. Haberme tomado 5-10 minutos en hacer una explicación a veces me habría ahorrado muchos dolores de cabeza. Comentar no es perder el tiempo, creeme
if (int i=0;icout << i;
}
P.D: Ferdy, no lo he mirado mucho, pero el nbSMTP, es un programita que te estás currando tú?
#include "channel_n5.h"
CH_Init(CH_NUMBER_FIVE); // inicializo el número cinco, que es el que me mola
CH_Fashion_Text("Hola Ramona, tengo %d años\n",anios);
CH_CloseAll();
FuckingFreaky escribió: if (int i=0;icout << i;
}
este...... guau... vaya if más complejoif (int i=0;icout << i;
}
for ( int i = 0; i < n; i++ )
cout << i;
int i = 0;
while ( i < n ) {
j = j + i;
j = j + 10;
i = i + 1;
}
Claro, que esto es muy simple, se puede complicar más, pero bueno. Realmente no hace falta acostumbrarse a UNA manera de indentar y de escribir el código, solo hacerlo de forma lógica para uno mismo, siempre y cuando se documente para que otro lo pueda "interpretar". Eso si, siempre va bien saber adaptarse, ya cuando haces proyectos en conjunto... mejor que todo el mundo siga una indentación y un estilo, porque sino es un caos.for ( int i = 0; i < n; j += i, j += 10, i++ );
Pues yo digo que cuanto más, mejor. A las curvas de Harumi Nemoto me remito. A ver quien es el guapo que lo discuteFerdy escribió:No termino de creermelo... pero los comentarios han de ser precisos y escuetos. A la curva de Hatton me remito.
Rurouni escribió:[...]
Y si en lugar de un "cout << i;", supongamos que lo que queremos hacer son operaciones que no hacen llamadas a funciones que no usen I/O de ningún tipo puedes hacer esto:
supongamos que queremos que el bucle sume a la variable 'j' el valor de 'i', y lo incremente en 10, es decir:
for ( int i = 0; i < n; j += i, j += 10, i++ );
A mi me gusta optimizar al el espácio para que de un solo vistazo sea "entendible":
[...]
Rurouni escribió:Hola de nuevo ^__^x
Yo realmente no lo haría así
for ( prev_index = 0; prev_index < MAX_INDEX_SET; dummy_var += prev_index, dummy_var += 10, prev_index++ );
Lo pondría asin
for ( prev_index = 0;
prev_index < MAX_INDEX_SET;
dummy_var += prev_index,
dummy_var += 10,
prev_index++ );
Pa gustos colores... e indentaciones. Como digo, depende de donde trabajes y a lo que estés acostumbrado. A ver, que esto último simplemente es una chulería, pero lo utilizamos para hacer estadísticas y optimización de líneas (queremos evitarnos los '{ }', los ';''). Como digo, pura chulería
Saludos!!!
Actualizo: no se ve la indentación, pero bueno... simplemente estructurar un poquito el for.
Ferdy escribió:Un for o while void no tiene por qué no ser claro y limpio... eso es una chorrada.
Salu2.Ferdy
if (n == 0 ) {
echo "hola!";
}
else {
echo "adios";
}
import java.util.*;
/**
* <p>Título: sacardatos </p>
* <p>Descripción: Clase que guarda tanto los datos personales, como los datos bancarios del
* cliente en caso de ser necesarios, tambien implementa metodos para sacar estos datos
* de la tabla hash en la cual se ha guardado </p>
* @author Daniel & Alberto
* @see Datos
* @see Archivo
* @see Formulario
* @see VentanaVerificaDatos
*/
public class sacardatos
{
/**Atributo que guarda el telefono del cliente*/
private String Telefono;
/**Atributo que guarda el nombre del cliente*/
private String Nombre;
/**Atributo que guarda los apellidos del cliente*/
private String Apellidos;
/**Atributo que guarda el Nif del cliente*/
private String Nif;
/**Atributo que guarda el domicilio del cliente*/
private String Domicilio;
/**Atributo que guarda el tipo de pago que realiza el cliente Tarjeta, Efectivo, Domiciliacion*/
private String Tipodepago;
/**Atributo que guarda el numero de cuenta del cliente*/
private String Numcuenta;
/**Atributo que guarda el numero de tarjeta del cliente*/
private String Numtarjeta;
/**Atributo que guarda la fecha de caducidad de la tarjeta del cliente*/
private String Fechacaduci;
/**Atributo que guarda el tipo de tarjeta con la que realiza el pago el cliente*/
private String Tipotarjeta;
/**Atributo que guarda */
private Datos objdatos;
/**Atributo que guarda */
public static Hashtable datos = new Hashtable();
/**Constructor de la clase el cual no realiza ninguna accion*/
public sacardatos()
{
}
/**Metodo con el cual se obtiene el telefono del cliente
* @param d_tipo Tipo de pago que realiza el cliente
* @return Telefono Telefono del cliente
* */
public String gethtelefono(String d_tipo)
{
objdatos = (Datos) datos.get(d_tipo);
Telefono = objdatos.getTelefono();
return Telefono;
}
/**Metodo con el cual se obtiene el nombre del cliente
* @param d_tipo Tipo de pago que realiza el cliente
* @return Nombre Nombre del cliente
* */
public String gethNombre (String d_tipo)
{
objdatos = (Datos) datos.get(d_tipo);
Nombre = objdatos.getNombre();
return Nombre;
}
/**Metodo con el cual se obtiene los apellidos del cliente
* @param d_tipo Tipo de pago que realiza el cliente
* @return Apellidos Apellidos del cliente
* */
public String gethApellidos (String d_tipo)
{
objdatos = (Datos) datos.get(d_tipo);
Apellidos = objdatos.getApellidos();
return Apellidos;
}
/**Metodo con el cual se obtiene el Nif del cliente
* @param d_tipo Tipo de pago que realiza el cliente
* @return Nif Nif del cliente
* */
public String gethnifletra (String d_tipo)
{
objdatos = (Datos) datos.get(d_tipo);
Nif = objdatos.getNif() + "-" + objdatos.getLetraNif();
return Nif;
}
/**Metodo con el cual se obtiene el Domicilio del cliente
* @param d_tipo Tipo de pago que realiza el cliente
* @return Domicilio Domicilio del cliente
* */
public String gethdomicilio (String d_tipo)
{
objdatos = (Datos) datos.get(d_tipo);
Domicilio = objdatos.getDomicilio();
return Domicilio;
}
/**Metodo con el cual se obtiene el numero de cuenta del cliente
* @param d_tipo Tipo de pago que realiza el cliente
* @return Numcuenta Numero de cuenta del cliente
* */
public String gethNumcuenta(String d_tipo)
{
objdatos = (Datos) datos.get(d_tipo);
Numcuenta = objdatos.getNumeroCuenta();
return Numcuenta;
}
/**Metodo con el cual se obtiene el numero de la tarjeta del cliente
* @param d_tipo Tipo de pago que realiza el cliente
* @return Numtarjeta Numero de tarjeta del cliente
* */
public String gethNumtarjeta(String d_tipo)
{
objdatos = (Datos) datos.get(d_tipo);
Numtarjeta = objdatos.getNumeroTarjeta();
return Numtarjeta;
}
/**Metodo con el cual se obtiene la fecha de caducidad de la tarjeta del cliente
* @param d_tipo Tipo de pago que realiza el cliente
* @return Fechacaduci Fecha de caducidad de la tarjeta del cliente
* */
public String gethFechatarjeta(String d_tipo)
{
objdatos = (Datos) datos.get(d_tipo);
Fechacaduci = objdatos.getFechaCad();
return Fechacaduci;
}
/**Metodo con el cual se obtiene el tipo de tarjeta utilizado por el cliente
* @param d_tipo Tipo de pago que realiza el cliente
* @return Tipotarjeta Tipo de tarjeta utilizado por el cliente
* */
public String gethTipotarjeta(String d_tipo)
{
objdatos = (Datos) datos.get(d_tipo);
Tipotarjeta = objdatos.getTipoTarjeta();
return Tipotarjeta;
}
}
while ((entrada = br.readLine()) != null)
{
//leemos los componentes
StringTokenizer st = new StringTokenizer(entrada, ";");
codigo = st.nextToken();
tipo = st.nextToken();
marca = st.nextToken();
formato = st.nextToken();
medida = st.nextToken();
preciostring = st.nextToken();
precio = prec(preciostring);
descripcion = st.nextToken();
//creamos un objeto con cada componente leido
objcompo = new componente(codigo, tipo, marca, formato, medida, precio,
descripcion);
//Lo introducimos en la tabla hash clasificado por el codigo
h.compo.put(codigo, objcompo);
}
/**Constructor de la clase el cual no realiza ninguna accion*/
public sacardatos()
{
}
Ferdy escribió:¿ Realmente alguien usa JavaDoc para proyectos serios existiendo DoxyGen ?
Salu2.Ferdy
Ferdy escribió:Ya ya... la uni es otro tema... yo igual. Por eso decía para 'proyectos serios'
Salu2.Ferdy