Cómo evitar los errores más comunes de Java

Publicado el 02 de febrero de 2022
por Wander Neto
ESTUDIO DE CASO

Cómo evitar los errores más comunes de Java

Publicado el 02 de febrero de 2022
por Wander Neto
Ver recurso
Ver recurso

Sea un desarrollador Java más productivo

Con 9 millones de desarrolladores en todo el mundo*, Java (Oracle Corporation) es uno de los lenguajes de programación más populares del mundo. Se han creado muchos marcos de aplicación sobre Java porque es un lenguaje muy versátil que puede ejecutar programas en muchos dispositivos diferentes que admiten Java Runtime Environment (JRE), un entorno en el que se ejecutan todos los programas Java. Las comunidades de desarrolladores son muy activas y el profundo apoyo disponible para los nuevos programadores contribuye a su creciente popularidad.

Dado que Java existe desde hace mucho tiempo, las comunidades han pasado años desarrollando estándares, herramientas, patrones de codificación y mitigando los errores comunes a los que los desarrolladores se enfrentan una y otra vez. Todas estas iniciativas dirigidas por la comunidad tienen un objetivo común: ayudar a los desarrolladores a ser lo más productivos posible cuando desarrollan aplicaciones con Java. Pero cuando se trata de aplicar las mejores prácticas o patrones en el código de las aplicaciones, la responsabilidad recae en el desarrollador. La aplicación de las buenas prácticas es bastante variada y, por tanto, hace difícil tener un enfoque estándar para una práctica de codificación cuando las opiniones difieren mucho dentro de las comunidades. Los desarrolladores recurren a la búsqueda de ayuda en las comunidades online, que a veces pueden, sin quererlo, dar soluciones inseguras a sus problemas de codificación.

Para ayudar a los desarrolladores a poner en práctica soluciones seguras a los problemas comunes de codificación de Java, hemos creado Sensei - un plugin de IntelliJ para corregir los malos patrones de codificación según la receta (o reglas) definida por usted o su organización en un entorno profesional. Sensei permite a los desarrolladores identificar y corregir los errores comunes de Java (gotchas) con un solo clic.

Continúe leyendo para saber cómo Sensei aumenta la productividad de los desarrolladores al resolver algunos errores comunes de codificación de Java.

Un error recurrente que frustra a los desarrolladores

Un ejemplo de esos errores comunes es la comprobación incorrecta de la igualdad de los valores de las envolturas. Los valores de las primitivas en caja deben compararse utilizando el método equals en lugar del operador de comparación de referencias (==) para evitar resultados inesperados.

Como ejemplo, el uso del operador de comparación de referencia para valores enteros en el rango -128 a 127 se comportará (normalmente) igual que el método equals. Sin embargo, si realizamos la misma comparación con valores fuera de este rango, los resultados serán diferentes. Esto se debe a que Java mantiene un conjunto constante para el mencionado rango de valores Integer. Utilizar el método equals siempre dará los resultados esperados y es, por tanto, la forma correcta de comparar.

En este ejemplo, estamos utilizando incorrectamente el operador (==) para comprobar la igualdad.

Lo que da como resultado la siguiente salida:

verdadero

falso

falso

verdadero

La forma correcta de comparar es utilizar el método de los iguales.

Y entonces la salida sería:

verdadero

falso

verdadero

falso

Esta conocida práctica recomendada existe desde hace bastante tiempo y, sin embargo, a menudo se implementa de forma incorrecta en el código heredado, esperando a levantar su fea cabeza en el momento más inoportuno. Así que hemos creado recetas (o reglas) que ayudan a identificar estos patrones de codificación indeseables a nivel local y aplicar una corrección con un solo clic utilizando Sensei.

Sensei es un complemento del IDE altamente personalizable para escanear y corregir el código indeseable mientras se escribe, con cientos de transformaciones de código descargables y recetas de migración (reglas), así como una capacidad incorporada para crear las propias. Con Sensei, los desarrolladores pueden corregir los malos patrones de código mientras escriben para poder ofrecer un código de calidad más rápido y, en última instancia, escribirlo de forma coherente y estándar en todos los equipos y proyectos.

Cómo Sensei soluciona los problemas más comunes de Java

Como Sensei le permite crear sus propias recetas, hemos creado una receta para corregir el error mencionado.

Para este ejemplo, queremos encontrar dónde estamos utilizando el operador de comparación (==) en el tipo primitivo de caja.

Una receta de Sensei tiene el siguiente aspecto (en YAML):

Lo anterior puede buscar el patrón erróneo recurrente a medida que se escribe o todo el archivo, el ámbito configurado, e incluso, la base de código completa. Una vez que se encuentra el patrón, el siguiente paso natural es poder arreglarlo al instante sin tener que buscar en línea. Sensei permite crear arreglos que pueden añadir/editar/borrar código según se especifique. Incluso puede proporcionar múltiples correcciones según lo considere oportuno, permitiendo a los desarrolladores elegir la corrección más adecuada según lo consideren oportuno.

En nuestro ejemplo, queremos reescribir la comparación utilizando el método equals en lugar del operador (==).

Un arreglo disponible se describe así:

Cómo funciona:

Aplicación de las directrices de codificación estándar de forma sencilla

Java Gotchas Cookbook tiene 22 recetas que le ayudarán a evitar los errores más comunes y a mantener su código limpio y seguro. Detecta el uso incorrecto o inseguro de varias características y API del lenguaje Java, como la igualdad de objetos, el manejo de excepciones, las expresiones regulares y las colecciones. Adoptando Sensei y este libro de cocina, puede empezar a escribir mejor código desde el principio e incluso, crear sus propias recetas para adaptarlas a su equipo, proyecto u organización.

Este es sólo un ejemplo de las muchas maneras en que Sensei puede utilizarse para estandarizar tus proyectos. Siempre puedes estar atento a los anti-patrones o a ciertas transformaciones manuales de código que te encuentras con frecuencia en los pull requests o mientras codificas tú mismo. Si tienes un conjunto de directrices de codificación que los desarrolladores suelen pasar por alto, podrías convertir las directrices en recetas, permitiendo a los desarrolladores aplicar transformaciones de código aprobadas con confianza.

Instale Sensei ahora y active el libro de cocina de Gotchas de Java para una experiencia de desarrollo productiva. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, Estado de la Nación Desarrolladora, https://www.developernation.net/developer-reports/de20

Ver recurso
Ver recurso

Autor

Wander Neto

¿Quieres más?

Sumérjase en nuestras últimas ideas sobre codificación segura en el blog.

Nuestra amplia biblioteca de recursos tiene como objetivo potenciar el enfoque humano de la mejora de la codificación segura.

Ver blog
¿Quieres más?

Obtenga las últimas investigaciones sobre la seguridad impulsada por los desarrolladores

Nuestra amplia biblioteca de recursos está repleta de recursos útiles, desde libros blancos hasta seminarios web, que le ayudarán a iniciarse en la codificación segura orientada a los desarrolladores. Explórela ahora.

Centro de recursos

Cómo evitar los errores más comunes de Java

Publicado el 02 de febrero de 2022
Por Wander Neto

Sea un desarrollador Java más productivo

Con 9 millones de desarrolladores en todo el mundo*, Java (Oracle Corporation) es uno de los lenguajes de programación más populares del mundo. Se han creado muchos marcos de aplicación sobre Java porque es un lenguaje muy versátil que puede ejecutar programas en muchos dispositivos diferentes que admiten Java Runtime Environment (JRE), un entorno en el que se ejecutan todos los programas Java. Las comunidades de desarrolladores son muy activas y el profundo apoyo disponible para los nuevos programadores contribuye a su creciente popularidad.

Dado que Java existe desde hace mucho tiempo, las comunidades han pasado años desarrollando estándares, herramientas, patrones de codificación y mitigando los errores comunes a los que los desarrolladores se enfrentan una y otra vez. Todas estas iniciativas dirigidas por la comunidad tienen un objetivo común: ayudar a los desarrolladores a ser lo más productivos posible cuando desarrollan aplicaciones con Java. Pero cuando se trata de aplicar las mejores prácticas o patrones en el código de las aplicaciones, la responsabilidad recae en el desarrollador. La aplicación de las buenas prácticas es bastante variada y, por tanto, hace difícil tener un enfoque estándar para una práctica de codificación cuando las opiniones difieren mucho dentro de las comunidades. Los desarrolladores recurren a la búsqueda de ayuda en las comunidades online, que a veces pueden, sin quererlo, dar soluciones inseguras a sus problemas de codificación.

Para ayudar a los desarrolladores a poner en práctica soluciones seguras a los problemas comunes de codificación de Java, hemos creado Sensei - un plugin de IntelliJ para corregir los malos patrones de codificación según la receta (o reglas) definida por usted o su organización en un entorno profesional. Sensei permite a los desarrolladores identificar y corregir los errores comunes de Java (gotchas) con un solo clic.

Continúe leyendo para saber cómo Sensei aumenta la productividad de los desarrolladores al resolver algunos errores comunes de codificación de Java.

Un error recurrente que frustra a los desarrolladores

Un ejemplo de esos errores comunes es la comprobación incorrecta de la igualdad de los valores de las envolturas. Los valores de las primitivas en caja deben compararse utilizando el método equals en lugar del operador de comparación de referencias (==) para evitar resultados inesperados.

Como ejemplo, el uso del operador de comparación de referencia para valores enteros en el rango -128 a 127 se comportará (normalmente) igual que el método equals. Sin embargo, si realizamos la misma comparación con valores fuera de este rango, los resultados serán diferentes. Esto se debe a que Java mantiene un conjunto constante para el mencionado rango de valores Integer. Utilizar el método equals siempre dará los resultados esperados y es, por tanto, la forma correcta de comparar.

En este ejemplo, estamos utilizando incorrectamente el operador (==) para comprobar la igualdad.

Lo que da como resultado la siguiente salida:

verdadero

falso

falso

verdadero

La forma correcta de comparar es utilizar el método de los iguales.

Y entonces la salida sería:

verdadero

falso

verdadero

falso

Esta conocida práctica recomendada existe desde hace bastante tiempo y, sin embargo, a menudo se implementa de forma incorrecta en el código heredado, esperando a levantar su fea cabeza en el momento más inoportuno. Así que hemos creado recetas (o reglas) que ayudan a identificar estos patrones de codificación indeseables a nivel local y aplicar una corrección con un solo clic utilizando Sensei.

Sensei es un complemento del IDE altamente personalizable para escanear y corregir el código indeseable mientras se escribe, con cientos de transformaciones de código descargables y recetas de migración (reglas), así como una capacidad incorporada para crear las propias. Con Sensei, los desarrolladores pueden corregir los malos patrones de código mientras escriben para poder ofrecer un código de calidad más rápido y, en última instancia, escribirlo de forma coherente y estándar en todos los equipos y proyectos.

Cómo Sensei soluciona los problemas más comunes de Java

Como Sensei le permite crear sus propias recetas, hemos creado una receta para corregir el error mencionado.

Para este ejemplo, queremos encontrar dónde estamos utilizando el operador de comparación (==) en el tipo primitivo de caja.

Una receta de Sensei tiene el siguiente aspecto (en YAML):

Lo anterior puede buscar el patrón erróneo recurrente a medida que se escribe o todo el archivo, el ámbito configurado, e incluso, la base de código completa. Una vez que se encuentra el patrón, el siguiente paso natural es poder arreglarlo al instante sin tener que buscar en línea. Sensei permite crear arreglos que pueden añadir/editar/borrar código según se especifique. Incluso puede proporcionar múltiples correcciones según lo considere oportuno, permitiendo a los desarrolladores elegir la corrección más adecuada según lo consideren oportuno.

En nuestro ejemplo, queremos reescribir la comparación utilizando el método equals en lugar del operador (==).

Un arreglo disponible se describe así:

Cómo funciona:

Aplicación de las directrices de codificación estándar de forma sencilla

Java Gotchas Cookbook tiene 22 recetas que le ayudarán a evitar los errores más comunes y a mantener su código limpio y seguro. Detecta el uso incorrecto o inseguro de varias características y API del lenguaje Java, como la igualdad de objetos, el manejo de excepciones, las expresiones regulares y las colecciones. Adoptando Sensei y este libro de cocina, puede empezar a escribir mejor código desde el principio e incluso, crear sus propias recetas para adaptarlas a su equipo, proyecto u organización.

Este es sólo un ejemplo de las muchas maneras en que Sensei puede utilizarse para estandarizar tus proyectos. Siempre puedes estar atento a los anti-patrones o a ciertas transformaciones manuales de código que te encuentras con frecuencia en los pull requests o mientras codificas tú mismo. Si tienes un conjunto de directrices de codificación que los desarrolladores suelen pasar por alto, podrías convertir las directrices en recetas, permitiendo a los desarrolladores aplicar transformaciones de código aprobadas con confianza.

Instale Sensei ahora y active el libro de cocina de Gotchas de Java para una experiencia de desarrollo productiva. https://sensei.securecodewarrior.com/cookbooks/scw:java

*2021, Estado de la Nación Desarrolladora, https://www.developernation.net/developer-reports/de20

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.