miércoles, 12 de noviembre de 2014

Object Pascal Style Guide

Antes de empezar a con los posts de programación vamos a establecer unos estilos de trabajo.

Aunque cada uno puede usar los estilos que quiera para programar, yo voy a intentar seguir los estilos indicados en Object Pascal Style Guide, con alguna adición o modificación, a continuación presento un esbozo.

Atención: Aunque en este documento los nombres los pongo en castellano (MiVariable, MiCampo,...), en los desarrollo generalmente usaré el inglés (MyVariable, MyField,...), se ha dejado este documento en castellano para su mejor comprensión. 

Convenciones de nomenclatura

A excepción de las palabras reservadas y directivas, que están en minúsculas, todos los identificadores Pascal deben usar UpperCamelCase, lo que significa que la primera letra debe ser mayúscula, y las palabras incrustadas en un identificador debe ser en mayúsculas, así como cualquier sigla que está incrustada. Además no se debe usar el carácter de subrayado o guión bajo  "_" para unir palabras.

// Mal formadas
patata
miVariable
Lanzar_Actualizacion
MiClaseFtp

// Bien formadas
Patata
MiVariable
LanzarActualizacion
MiClaseFTP

Tipos

Cualquier definición de tipo (excepto Interfaces) siempre comenzará con la letra T y a continuación el nombre.

type
  TMiTipo = class(TObject)...

Interfaces

Los interfaces comenzarán con la letra I y a continuación el nombre.

  IMiBuenPastor = interface 
  ...

En algunos casos he comenzando con la palabra Interface aunque ya no lo estoy utilizando mucho

  InterfaceMiBuenPastor = interface 
  ...

Tipos enumerados

En este caso, los componentes del tipo utilizarán la notación húngara (más o menos)

type
  TFormatoCuadrado = (fcNormal, fcRedondeado, fcEstrellado);

Dónde fc significa formato de cuadrado.

Clases

Los nombres de las clases siguen la nomenclatura de los tipos (TMiClase)

Campos

Los campos de las clases comenzarán por la F y el nombre del campo y generalmente irá en la sección privada. En general deben ser sustantivos. Para hacer uso publico de estos campos usaremos las propiedades o  setters y getters

  FMyCampo: string;

Métodos

Los nombres de los métodos deben ser verbos o frases imperativas.

  LanzarRestauracion
  Cargar
  Salvar
  AgregaBoton

Propiedades

Generalmente las propiedades accederán directamente a los campos o a través de getters y setters

  property MiCampo: string read FMiCampo write FMiCampo;
  property MiCampo: string read GetMiCampo write SetMiCampo;
  property MiCampo: string read FMiCampo write SetMiCampo;


Variables locales

Las variables locales nunca deben empezar por la letra F para diferenciarlas de los campos. Deben ser en general sustantivos o nombres que no definan ninguna acción, para no confundirlas con los métodos o procedimientos.

Se permite el uso de variables de una sólo letra en minúscula para variables temporales y de bucle:

  for i := 0 to 9 do
    HacerAlgo;


Procedimientos y funciones

Igual que los métodos.

  procedure HacerAlgo;
  function CalculaAlgo: double;

Formateo de código

Mención especial tiene el formateo de código ya que como actualmente el mismo Delphi ya tiene un herramienta de formateo integrada, por lo que es recomendable usarla. Para versiones más antiguas se puede usar el DelForExp (podeis verlo en Delphi al Límite) o el JEDI Code Format


No hay comentarios:

Publicar un comentario