-
Notifications
You must be signed in to change notification settings - Fork 0
Estándar de codificació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.
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, ...
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, ...
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;
[...]
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);
}
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.