Código GeneXus mas entendible

Estuvimos haciendo charlas internas sobre como hacer mas fácil de entender el código GeneXus que escribimos.

Algunas cosas básicas que vimos:

  • Nomenclatura de objetos y variables
  • Descripción, Column Title, Contextual title, etc en atributos. 
  • Descripción de Tablas y Grupos de Subtipos (esto lo ven los usuarios)
  • call(Objeto) vs Objeto.call() vs Objeto()
  • Parámetros con IN y OUT
  • Todos los atributos con Dominios (con significado semántico igual)
  • Todas las variables basadas en  atributos o dominios
  • Dominios Enumerados (para evitar constantes en el código)
  • Bloques de código cortos (no mas de 200 lineas)
  • Anidación de sentencias (no mas de 5 niveles de IF/Do/For Each, etc)
  • Comentarios innecesarios (no dejar código viejo comentado). 
  • Palabras claves en MAYUSCULA o minúsculas
  • Indentación de for each / where
  • Orden de los Eventos
Si bien para algunos temas no hay demasiada discusión para algunos si hay varias posiciones diferenes. 

Por ejemplo, en el caso de las Mayúsculas o minúsculas en las palabras claves de GeneXus teníamos:


FOR EACH
ENDFOR

For each
Endfor

For Each
EndFor


for each
endfor

Por votación salio la opcion 3 (a mi me gusta mas la 4)

IF (Condición)
ENDIF

If (Condición)
EndIf

if (Condición)
endif

En lo personal, siempre prefiero todo en minusculas, pero creo que lo que mas me dificulta entender el codigo, es cuando se tiene diferentes formas de escribir la misma palabra clave, por ejemplo si se tiene 

If <Condicion1>
   if <Condicion2>
       IF <Condicion3>
       ELSE
           //sentencias1
       ENDIF
   else
// sentencias2
   endif
Else
//sentencias3
EndIf

me cuesta mas entenderlo que si se tiene todo en minúsculas. Mi cerebro tiene que pensar mas de una vez para entender cada una de las formas diferentes que esta escrita cada una de las palabras claves.

Con pequeñas cosas bastantes simples y conocidas, el código queda mas fácil de entender y al entenderlo mas rapido, podemos ser mas productivos y tener menos errores.

Estaria bueno que el codigo GX se guardara de forma standard y que cada desarrollador pudiera verlo como mas le gusta, adaptandolo en el momento de editarlo. 

Comentarios

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.