Skip to content

Estándar de codificación

Jose A Rodriguez edited this page Nov 9, 2016 · 2 revisions

Estándar de programación

El código que se desarrolle durante el proyecto deberá estar sujeto al estándar que se presenta a continuación. La motivación de este estándar viene determinada por:

  • La evasión de conflictos potenciales.
  • La facilidad de depuración en el código.
  • La facilidad de lectura del código.
  • La homogeneidad del código.

De esta manera, y en líneas generales, se aplicarán las reglas que se definen en las siguientes líneas.

En el ámbito del proyecto

El proyecto debe estar organizado en paquetes que reflejen de manera fidedigna y clara la filosofía de una arquitectura MVC. Ejemplo: src.main.java.controllers, src.main.java.domain, src.main.java.services, src.main.java.repositories, ...

En el ámbito del paquete

Cada clase que esté contenida en un determinado paquete deberá seguir una nomenclatura que de indicaciones sobre el tipo de entidad que maneja. Ejemplo: ThreadService, ThreadController, ThreadAdministratorController, ThreadToStringConverter, ...

En el ámbito de la clase

Dentro de cada clase y, dependiendo del carácter de la misma, se deberá dividir el código de la misma en diferentes secciones, agrupando cada fragmento de código según su función. _Ejemplo: en una clase que desempeñe el rol de servicio, se deberán incluir comentarios como Managed Repository, Supporting Services, Simple CRUD Methods, Ancillary Methods, etc.

Además de esto, se deben respetar los caracteres de espacio, tabulación y salto de línea.

Ejemplo válido:

// Managed repository -------------------------------------------

@Autowired
private RankRepository rankRepository;

// Supporting services ------------------------------------------

@Autowired
private AdministratorService administratorService;

[...]

Ejemplo no válido:

    // Managed repository --------------------
@Autowired
private RankRepository rankRepository;


// Supporting services -------

@Autowired

private AdministratorService administratorService;

[...]

En el ámbito del método

Dentro de cada método se deben diferenciar (como mínimo) cuatro partes, a saber:

  • (Comprobación de restricciones)
  • Declaración de variables
  • Inicialización de variables
  • Tratamiento de variables
  • Retorno del método

Del mismo modo, la variable de retorno deberá llamarse res.

Ejemplo válido:

public static Thread saveThread(Thread thread) {
	Assert.isTrue(thread.getId() != 0);
	Assert.isTrue(checkPrincipal(thread.getUser()));
	
	Thread res;
	Date now;
	
	now = new Date(System.currentTimeMillis() - 1000);
	
	thread.setMoment(now);
	res = threadRepository.save(thread);
	
	return res;
}

Ejemplo no válido:

public static Thread saveThread(Thread thread) {


	Assert.isTrue(thread.getId()!=0);
	
	Date now =new Date(System.currentTimeMillis() -1000);
	thread.setMoment(now);
	Assert.isTrue(checkPrincipal(thread.getUser()));
	return threadRepository.save(thread);

}

Otros

Además de lo anterior, se recomienda aplicar las siguientes prácticas:

  • Utilizar anotaciones JavaDoc en la medida de lo posible.
  • Comentar fragmentos de código no triviales.