Malas Practicas de Código
esta es la segunda entrada, en esta analizaremos de nueva cuenta código
con malas practicas y que puede ser mejorado, recuerda que las buenas
practicas de programación mejoran la calidad del programa y disminuyen
el tiempo correcciones
/*Hay que ser mas descriptivo cuando se genera un JavaDoc, recuerda que eso ayuda al momento de la documentaciel sistema.*/
/**
* Generates the paginated list
* @param query
* @param numPagina
* @param numRegPagina
* @param hmPaging
* @param request
* @return
*/
/*Los nombres de los parametros son espaingles, lo mejor es ser
coherente y manejar todo en un solo idioma.*/
public ArrayList getPagedList(String query, int numPagina, int numRegPagina, HashMap hmPaging, HttpServletRequest request) {
ArrayList list = new ArrayList();
ResultSet rs = null;
try {
this.openConecction();
PreparedStatement pstmt;
pstmt = con.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
/*No es Correcto usar Scroll Insensitive como
Propiedad para generar un ResultSet,Esto Consume mas memoria,
y en un sistema Web la cantidad de Memoria consumida es
Crucial para el buen funcionamiento*/
pstmt = setQueryvalues(pstmt, request);
pstmt.setFetchSize(numRegPagina);
rs = pstmt.executeQuery();
int cont = 1;
int fila = numRegPagina * (numPagina - 1) + 1;
if (rs.absolute(fila) && numRegPagina & gt;
0)
{
/*no es correcto hacer que el ResultSet vaya al numero absoluto,
esto consume una gran cantidad de memoria.*/
do {
Asset asset = new Asset();
asset.setId(new Integer(rs.getInt(arrayAsset[0])));
asset.setId_division(new Integer(rs.getString(arrayAsset[1])));
asset.setName_sp(rs.getString(arrayAsset[2]));
asset.setName_en(rs.getString(arrayAsset[3]));
asset.setStatus(new Integer(rs.getString(arrayAsset[4])));
asset.setUpdated(rs.getString(arrayAsset[5]));
asset.setImage(rs.getString(arrayAsset[6]));
asset.setId_assetType(new Integer(rs.getString(arrayAsset[7])));
list.add(asset);
cont++;
} while (rs.next() && (cont & lt;
= numRegPagina
)); } Integer reccordCount = new Integer(0);
/* El last va al ultimo registro, esto consume una gran cantidad de tiempo y memoria,
lo mejor es siempre dejar que este trabajo sea por parte de la base de datos,
haciendo un segundo query con un count a la base de datos se disminuye este problema */
if (rs.last()) {
reccordCount = new Integer(rs.getRow());
}
log.debug("reccordCount --> " + reccordCount);
hmPaging.put("reccount", reccordCount);
/*Jamas dejen un try y catch sin escalarlo correctamente este
tipo de practica es conocida como ocultamiento de errores ,
lo mejor es escalar la excepción mostrar los detalles y separar las excepciones,
para determinar si fue error del usuario o del programador */
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeConnection();
}
return (list);
}
El blog de un amante de los sistemas, principalmente de los hechos en java. bueno también algunos comentarios de otras cosas.
sábado, 30 de abril de 2011
malas practicas del codigo
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario