Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Debates
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-10-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Notación húngara Vs Notación CamelCase

Pues, ahora que he estado estudiando C#, he leido en un libro que Microsoft aconseja usar la notación CamelCase.

Yo estoy muy acostumbrado a la notación Húngara, desde la escuela me mostraron sus bodades, (bondades que he apreciado mayoritariamente cuando programo en Php).


Ustedes que opinan?, que notación es su preferida?
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #2  
Antiguo 29-10-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por poliburro Ver Mensaje
Pues, ahora que he estado estudiando C#, he leido en un libro que Microsoft aconseja usar la notación CamelCase.

Yo estoy muy acostumbrado a la notación Húngara, desde la escuela me mostraron sus bodades, (bondades que he apreciado mayoritariamente cuando programo en Php).


Ustedes que opinan?, que notación es su preferida?
Hey amigo poliburro, yo uso C# y NPI de eso que dices, no sabia ni siquira la existencia de eso que mencionas.

En fin, siento no ser de ayuda

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 30-10-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Notación Húngara

Notación CamelCase

__________________
Piensa siempre en positivo !
Responder Con Cita
  #4  
Antiguo 30-10-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Hey amigo poliburro, yo uso C# y NPI de eso que dices, no sabia ni siquira la existencia de eso que mencionas.

En fin, siento no ser de ayuda

Salud OS

jajaja, son estándares que se usan mi buen amigo egostar, deja te paso los links de info,

Notación Húngara

CamelCase

Y aprovechando amigo egostar, que estilo utilizas para codificar?

utilizas algún estándard?
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #5  
Antiguo 30-10-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Notación húngara, desde... 1987 todavía no lo usaba ni Charles Simonyi
Responder Con Cita
  #6  
Antiguo 30-10-2007
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
que extraño, en tiempos de Basic se acostumbra usar la notación Hungara pero como siempre use PASCAL sigo usando la CamelCase
Responder Con Cita
  #7  
Antiguo 30-10-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por MAXIUM Ver Mensaje
que extraño, en tiempos de Basic se acostumbra usar la notación Hungara pero como siempre use PASCAL sigo usando la CamelCase
jajaj yo desde pascal uso la notación húngara.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #8  
Antiguo 30-10-2007
Northern Northern is offline
Miembro
 
Registrado: ene 2006
Posts: 211
Poder: 19
Northern Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Notación húngara, desde... 1987 todavía no lo usaba ni Charles Simonyi
Charles Simonyi recuerdo un libro, "Programadores en acción" (Programmers at work) en el que entrevistaban a este (además de a otros 18 programadores) y se les preguntaba cómo hacían lo que hacían y por qué hacían lo que estaban haciendo y fue entretenido de leer


Saludos

P.D: TObject que sería ?

Última edición por Northern fecha: 30-10-2007 a las 01:00:58.
Responder Con Cita
  #9  
Antiguo 30-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
No entiendo muy bien el título del hilo, ya que no veo Contradicción en usar ambas.

La notación húngara y lowerCamelCase la uso para los controles:
cboProvincias TCombobox
edtNombre TEdit
etc.
(en esto, cnpacks ayuda un poquito ).

Las variables, simplemente con ver donde se usan o cómo se usan, ya se ve el tipo, y más siendo delphi un lenguaje altamente tipificado.

La notación CamelCase la uso en procedimientos, métodos, funciones, etc.. y lowerCamelCase para tipos enumerados, vamos igual que Borland en su código fuente.

He intentado atenerme a otros estándares de notación, pero al final acabo rompiéndolos porque son demasiadas letras, así que uso las mías propias (por ejemplo TDBComboboxLookUp lo abrevio con el prefijo "lu", algunos estándares dirían que corresponde con "dbcbblu" y si encima representa las "observaciones del cliente" quedaría como dbcbbluObservaciones .... mucha tela para mi ).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #10  
Antiguo 30-10-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por poliburro Ver Mensaje
jajaja, son estándares que se usan mi buen amigo egostar, deja te paso los links de info,

Notación Húngara

CamelCase

Y aprovechando amigo egostar, que estilo utilizas para codificar?

utilizas algún estándard?
Pues me imagino que es el estandar amigo poliburro, solito me arregla los bloques.

Código:
rk = Registry.LocalMachine.OpenSubKey("Software\\PMS Interface\\DATA",true);
if (rk != null) 
{
	TLogin.Text = (String)rk.GetValue("User");
	TPassw.Text = (String)rk.GetValue("Password");
	TPasswConfirm.Text = TPassw.Text;
}
else
{
	TLogin.Text = "";
	TPassw.Text = "";
	TPasswConfirm.Text = TPassw.Text;
}
Asi es como codifico amigo poliburro

PD: Leyedo lo de los estandares, creo que uso una combinación entre las dos.....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 30-10-2007 a las 01:32:48.
Responder Con Cita
  #11  
Antiguo 30-10-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Northern Ver Mensaje
Charles Simonyi recuerdo un libro, "Programadores en acción" (Programmers at work) en el que entrevistaban a este (además de a otros 18 programadores) y se les preguntaba cómo hacían lo que hacían y por qué hacían lo que estaban haciendo y fue entretenido de leer
Saludos
P.D: TObject que sería ?

jeje... "Programadores en acción"... fue mi libro de "cabecera" durante mucho tiempo... aprendí bastante leyendo sobre esos programadores.
Responder Con Cita
  #12  
Antiguo 30-10-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Yo en Procedimientos y funciones utilizo CamelCase + guiones:


Código Delphi [-]
 Procedure Preparar_Comision(n:Integer);
  Function Calcular_Comision_SiNo(cBusca:String):Boolean;

En variables como Lepe.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #13  
Antiguo 30-10-2007
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Yo uso CamelCase, hehe.

Saludos.
Responder Con Cita
  #14  
Antiguo 30-10-2007
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Yo huyo de la notación húngara como de la peste. Yo, cuando programo, necesito saber qué hace o qué contiene, no el cómo. Sabiendo el qué ya puedo imaginarme el tipo de datos que se necesita y, si no, para algo están los prototipos y la opción de búsqueda.

Cuando programo en C utilizo "slashing": funcion_muy_util_de_suma
Cuando programo en Pascal utilizo "Ucase": OtraFuncionDeSumaDistina

Soy así de chulo, yo
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #15  
Antiguo 30-10-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Yo huyo de la notación húngara como de la peste. Yo, cuando programo, necesito saber qué hace o qué contiene, no el cómo. Sabiendo el qué ya puedo imaginarme el tipo de datos que se necesita y, si no, para algo están los prototipos y la opción de búsqueda.

Cuando programo en C utilizo "slashing": funcion_muy_util_de_suma
Cuando programo en Pascal utilizo "Ucase": OtraFuncionDeSumaDistina

Soy así de chulo, yo

Si, la verdad es que yo también tengo mi propio standard también... El problema es cuando programas con otras personas o alguien tiene que revisar tu código, pero hasta ahora sigo con mi propio standard, igual que Ñuño.


[]Me temo que nos parecemos a Microsoft creando nuestros propios standard[/]
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #16  
Antiguo 30-10-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
yo igual que Lepe... no le veo conflicto en usar las dos:

Un TComboBox para filtrar el estatus de una factura: cmbFiltraFactura.ItemIndex ... etc. etc
__________________

Responder Con Cita
  #17  
Antiguo 30-10-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Gabo Ver Mensaje
Si, la verdad es que yo también tengo mi propio standard también... El problema es cuando programas con otras personas o alguien tiene que revisar tu código, pero hasta ahora sigo con mi propio standard, igual que Ñuño.


[]Me temo que nos parecemos a Microsoft creando nuestros propios standard[/]
Precisamente en microsoft usan obligatoriamente la notación húngara. Ten en cuenta que el creador de la citada notación, Charles Simonyi, fue el programador jefe, mano derecha de Gates, creador de Multiplan (precursor del MsExcel) y luego toda la saga de MsOffice.

Es lo único bueno de microsoft
Responder Con Cita
  #18  
Antiguo 04-11-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

Interesante hilo Edgar.

Concuerdo con los que dicen que lo mejor es aprovechar un poco de cada mundo. La propia VCL utiliza CamelCase con una especial variación para las "constantes de grupo" similar a la Notación Húngara, pero cuyo prefijo, en este caso de dos letras minúsculas, no necesariamente indica el tipo de dato sino además (o en lugar de eso, cuando son enteros y no enumerados) el grupo al cual pertenecen. Un ejemplo clásico son las constantes dsBrowse, dsEdit y dsInsert que pertenecen al tipo enumerado TDataSetState (el "grupo" de estados de conjuntos de datos).

En particular, cuando se trata de alguna biblioteca de propósito general (es decir, no código particular de una aplicación específica), utilizo un prefijo en minúsculas para los nombres de sus funciones (no así los métodos) que identifica la biblioteca a la que pertenecen dichas funciones. Y para las constantes de grupo, en lugar de utilizar dos letras como lo acostumbra Borland, utilizo tres, además del prefijo que identifica a qué biblioteca pertenecen.

Para dar una idea, estas son algunas muestras de lo que he escrito últimamente:
Código Delphi [-]
    { Save Point Action type }
    TghSavePointAction = (ghspaNone, ghspaConfirm, ghspaRestore);
Código Delphi [-]
    { Magia Client Data Set Save Point class }
    TMagiaClientDataSetSavePoint = Class (TghCustomSavePoint)
      Protected
        { Fields }
        State :Integer;

        { Overridden methods }
        Procedure InternalConfirm; Override;
        Procedure InternalRestore; Override;
        Procedure InternalSave; Override;
        Procedure Invalidate (
          DetailAction :TghSavePointAction = ghspaNone); Override;
    End;
Código Delphi [-]
  Function TMagiaSQLConnection.ExecProc (Const Proc :String;
    Const Params :Variant) :Variant;
  Var
    I :Integer;

    { Avoid conflicts with TSQLStoredProc.Params.  In cases like this, we
      prefer his method instead of to prefix the formal parameter with "A",
      so operative programmers don't feel confused (connection component
      has a Params property, "AParams" would be related with this
      property). }
    AParams :Variant Absolute Params;
  Begin
    With TSQLStoredProc.Create (Self) Do
      Try
        SQLConnection := Self;
        StoredProcName := CasedName (Proc);

        { Assign input parameters }
        If VarIsArray (AParams) Then
          For I := 0 To VarArrayHighBound (AParams, 1) Do
            ghInputParam (Params, I).Value := AParams [i]
        Else
          ghInputParam (Params).Value := AParams;

        ExecProc;
        I := ghOutputParamCount (Params);

        { Return output parameter(s) or Null }
        Case I Of
          0 : Result := Null;
          1 : Result := ghOutputParam (Params).Value;
          Else
          Begin
            Result := ghVariantArray (I);

            For I := 0 To I - 1 Do
              Result [i] := ghOutputParam (Params, I).Value;
          End
        End;
      Finally
        Free;
      End;
  End;

Ésta última me da un poco de pena porque, como bibliotecario partidario de la atomización, hago mucho hincapié en que las rutinas no tengan más de 20 o 30 líneas de código, y ese método en particular tiene 43.

Nótese que los identificadores y comentarios están en inglés, y esto es porque se trata de bibliotecas de propósito general que cualquier programador del mundo podrá llegar a utilizar. Pero cuando es código particular de una aplicación, por lo general empleo el idioma español para sus identificadores y comentarios.

Y como habrán visto, soy poco convencional con el asunto de las mayúsculas, las minúsculas, la separación de bloques y paréntesis y la declaración de elementos tipificados. Es el resultado de un estilo que fui desarrollando con los años, pienso yo para bien, y que procuro respetar al pie de la letra manteniendo consistente mi código.

Nada que ver con la manera en que programaba en 1993, durante mi época de estudiante :
Código Delphi [-]
 PROCEDURE FORMAR;
 BEGIN
   TEXTCOLOR (0);
   YANO := FALSE;
   Y := - (ANY - 1);
   REPEAT
     INC (Y, ANY);
     X := - (ANX - 1);
     REPEAT
       INC (X, ANX);
       TEXTBACKGROUND ( ARCOLOR [RANDOM (MAXCOLOR)] );
       VENTIW (X, Y, X + (ANX - 1), Y + (ANY - 1) );
     UNTIL X >= 75;
   UNTIL Y >= 21;
 END;

¡No me pregunten para qué era esa rutina!

Por cierto, otra cosa que acostumbro es no utilizar más allá de la columna 75 por aquello de querer imprimir el código o mostrarlo en una pantalla de menor tamaño. Además de que resulta más cómodo de leer un texto que no es muy ancho (de ahí el estilo de los diarios).

Un abrazo a todos.

Al González.

Última edición por Al González fecha: 10-12-2007 a las 06:20:54.
Responder Con Cita
  #19  
Antiguo 04-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Al González Ver Mensaje

En particular, cuando se trata de alguna biblioteca de propósito general (es decir, no código particular de una aplicación específica), utilizo un prefijo en minúsculas para los nombres de sus funciones (no así los métodos) que identifica la biblioteca a la que pertenecen dichas funciones.
Muy interesante y cómodo, con solo digitar 2 letras, lo mostrado en el Code Insight se reduce bastante. Ahora mismo se mezclan mis propias funciones con las de Borland/Codegear, y en lugar de ayuda, el code insight sirve para confundirme (igual te copio ).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #20  
Antiguo 14-11-2007
AngelV AngelV is offline
Miembro
 
Registrado: abr 2007
Posts: 49
Poder: 0
AngelV Va por buen camino
Utilizo CamelCase con guiones porque cuando entré en la Universidad nos enseñaron a hacerlo así, y me parece bastante legible.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 20:28:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi