Buenas prácticas: Escribir código Xojo

Cada desarrollador y equipo debería observar una serie de normas para garantizar la máxima legibilidad del código por parte de cualquier miembro del equipo (o bien en tu propio beneficio, de modo que sigas comprendiendo el código meses después de que lo hayas escrito). No hay nada grabado a fuego sobre qué normas seguir, pero a continuación encontrarás una serie de guías que puedes utilizar como punto de partida y que, de hecho, son las empleadas en los proyectos y código de ejemplo proporcionado por Xojo.

Lo más importante en cualquier caso es la consistencia, más allá de las reglas que decidas utilizar. El código inconsistente es más difícil de comprender.

Definiciones

camel casela primera “palabra” del nombre se escribe en minúsculas. Las siguientes “palabras” tienen su primera letra en mayúscula.nombreCliente
title caseTodas las “palabras” que componen la etiqueta empiezan con la primera letra en mayúscula.NombreCliente

Nombres

Conviene ser consistentes a la hora de nombrar los elementos del proyecto, y es una de las primeras cuestiones a tener en cuenta en los estándares de código. Idealmente, dichos estándares permitirán que otros escriban código correcto con más facilidad y también sean capaces de comprender el código existente con mayor celeridad.

Constantes

  • Empieza con una “k” minúscula, seguido por la escritura en title case: kMaxUsers.

Variables Locales

  • Usa camel case: Dim nombreCliente As Text
  • Minimiza el uso de las abreviaturas; por ejemplo, utiliza nombreCliente en vez de nmCliente.
  • El uso de variables de una letra es algo aceptable para la definición de variables en bucles, como por ejemplo en los bucles For.

Arrays

  • Han de utilizarse en plural: Clientes() As Text

Propiedades

  • Usa title case: nombreCliente
  • Una propiedad Privada que se utiliza como soporte de una Propiedad Calculada (Computed Property) empieza con una “m” seguida por title case: mNombreCliente.

Métodos

  • Utiliza title case: SaveCustomer
  • Los parámeetros del método deberían de utilizar camel case: GuardarCliente(nombreCliente As Text)

Controles

  • Utiliza title case con un sufijo que indique el tipo de control: OKButton. Estos son algunos sufijos comunes:
ControlSufijoEjemplo
PushButton, WebButton, iOSButton, BevelButtonButtonSaveButton
ListBox, WebListBoxListCustomerList
SegmentedControl, WebSegmentedControl, iOSSegmentedControlSelectorTaskSelector
CheckBox, WebCheckBoxCheckTaxableCheck
PopupMenu, WebPopupMenuPopupStatePopup
RadioButton, RadioGroupRadioSourceRadio
TextField, WebTextField, iOSTextFieldFieldNameField
TextArea, WebTextArea, iOSTextAreaAreaDescriptionArea
Canvas, WebCanvas, iOSCanvasCanvasGraphCanvas
Label, WebLabel, iOSLabelLabelNameLabel
PagePanelPanelMainPanel
TabPanelPanelMainPanel
ProgressWheel, ProgressBar, WebProgressWheel, WebProgressBar, iOSProgressBar, iOSProgressWheelProgressDownloadProgress
HTMLViewer, WebHTMLViewer, iOSHTMLViewer, iOSHTMLViewerViewerDocViewer
ImageWell, WebImageView, iOSImageViewImageProfileImage
GroupBoxGroupBusinessGroup

Clases (Tipos)

  • Usa title case.
  • Las subclases creadas a partir de las clases incluidas de serie deberían de utilizar el nombre de clase original como sufijo: CustomerListBox.

Ventanas

  • Utiliza title case con “Window” como sufijo: CustomerWindow.

Interfaces

  • Utiliza title case con “Interface” como sufijo.

Formateado

  • Las palabras clave deberían estar en title case: For Each c As Customer In Customers.
  • Los tipos de datos deberían de estar en title case: Dim count As Integer.
  • Incluye espacios entre toda la lista de argumentos o parámetros: SaveCustomer(name, location, value)
  • No pongas espacios antes o después de los paréntesis.
  • Los métodos llamados sin parámetros no deberían de incluir paréntesis vacíos: Usa MiMetodo, y no `MiMetodo()`.
  • Los métodos con parámetros siempre deberían de incluir paréntesis: Usa `MiMetodo(42)`, y no `MiMetodo 42`.
  • Deja líneas en blanco entre líneas de código tal y como resulte apropiado con el objeto de mantener la legibilidad del mismo.

SQL

  • Los comandos SQL se escriben en mayúsculas: SELECT * FROM Team WHERE City = "Boston".

Código

  • Declara las variables locales mediante `Dim` cerca del código donde vayan a utilizarse, con una declaración por línea.
  • Los métodos no usados fuera de la clase/módulo deberían de ser Privados.
  • Evita tener múltiples puntos de retorno (`Return`) en un mismo método.
  • Es preferible el uso de `Text` sobre `String` siempre que sea posible. `String.ToText` puede convertir los valores de tipo `String` a valores de tipo `Text`.
  • Es preferible el uso de la notación por punto sobre el uso equivalente de métodos globales cuando sea posible: `Dim length As Integer = customerName.Len`.
  • No utilices nunca `Me` cuando en realidad quieres indicar `Self`.
  • Limita el uso de globales.
  • Es preferible el uso de métodos/propiedades compartidos en clases sobre el uso de métodos/propiedades compartidos en módulos.
  • Las clases, métodos, propiedades, etc., que se encuentren en un Módulo o Clase deben tener un ámbito Privado o Protegido cuando sea posible.

Esta entrada ha sido redactada con Snippery utilizando el lenguaje Markdown, y exportada como HTML para su uso en este sitio web.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *