Skip to main content

Los 8 mejores plugins de IntelliJ para mejorar tu experiencia de programación

Escrito por
Blog Design IntelliJ IDEA

26 de agosto de 2021

0 minutos de lectura

Para muchos desarrolladores, un buen IDE es como una navaja suiza: una herramienta que integra en un solo programa todo tipo de funciones que necesitas como desarrollador. Por eso, muchos desarrolladores trabajan principalmente desde su IDE favorito, en lugar de abrir varias herramientas para tareas específicas.

El informe del ecosistema JVM 2021, publicado recientemente, muestra que IntelliJ IDEA es, por mucho, el IDE más utilizado en el ecosistema Java. Sin embargo, el informe también indica que más de la mitad de los desarrolladores usan varios IDE en sus sistemas locales. Por eso, quizá quieras enriquecer tu IDE con extensiones o plugins que se adapten a tus necesidades y mejoren su usabilidad. En esta publicación, te recomendaremos ocho plugins de calidad de producción, disponibles gratis en el marketplace, que mejorarán tu experiencia de programación.

Las versiones actuales de IntelliJ IDEA ya incluyen muchos plugins, como Maven, Gradle, Lombok, Docker y muchos más. El equipo de JetBrains también ofrece muchísimos plugins para lenguajes y frameworks específicos. Esta es una de las razones por las que estos plugins casi siempre funcionan a la perfección con IntelliJ IDEA. Sin embargo, en esta publicación me centraré en excelentes plugins adicionales, principalmente de terceros, que aportan algo extra a tus rutinas diarias.

1. Maven Helper

En el ecosistema Java, Maven sigue siendo el sistema de compilación más utilizado y también ofrece administración de dependencias. El plugin Maven Helper, de Vojtech Krassa, ofrece herramientas sencillas para explorar tus dependencias, por ejemplo, en una vista de árbol, y encontrar conflictos entre ellas.

Analizador de dependencias Maven de IntelliJ IDEA que muestra un árbol de dependencias del proyecto, incluidas Spring Boot y Lombok, y un conflicto de SnakeYAML resaltado.

Además, puedes definir de antemano y combinar objetivos de Maven para ejecutarlos con solo hacer clic en un botón o desde un menú contextual. Esto incluye ejecutar objetivos de plugins. En el ejemplo de abajo, creé un objetivo adicional que ejecuta el objetivo package y omite las pruebas.

Menú de Maven de IntelliJ IDEA que muestra los objetivos del ciclo de vida, con «package -DskipTests» resaltado

2. Rainbow Brackets

Este plugin pequeño, sencillo y elegante puede facilitarte mucho la vida. Rainbow Brackets usa distintos colores para los corchetes y paréntesis anidados. Así es mucho más fácil reconocer dónde termina una expresión entre paréntesis, sin tener que pasar el cursor sobre ella.

Funciona con muchos lenguajes, como Java, Scala, Clojure, Kotlin, Python, Haskell, Agda, Rust, JavaScript, TypeScript, Erlang, Go, Groovy, Ruby, Elixir, ObjectiveC, PHP, HTML, XML, SQL, Apex language, C#, Dart, Pug/Jade, Bash y Vue.js.

En el ejemplo de Java de abajo, los distintos colores de los paréntesis hacen que la línea con String.format() sea mucho más fácil de leer. Además, como el plugin es compatible con Clojure, quizá sea la solución ideal para que los simples mortales podamos leer mejor la sintaxis de Clojure.

Editor de código Java con tema oscuro que muestra un método servlet userLink que busca usuarios y escribe nombres de usuario y comentarios con formato en una lista HTML.

3. Asistente de presentaciones

Parte de mi trabajo consiste en dar presentaciones, que también incluyen mucha programación en vivo. Cada vez que llamo a una función con un atajo de teclado, el plugin Presentation Assistant muestra la función y la combinación de teclas que uso en el botón. Así, al público le resulta muy fácil seguir lo que hago y repetirlo.

Además, si llamo a una función con el mouse, también muestra un mensaje con el atajo de teclado. Así, cada vez que uso el mouse para activar una función de IntelliJ que tiene un atajo disponible, veo y aprendo la combinación de teclas de inmediato.

Superposición verde que muestra el atajo de teclado «Guardar todo con ⌘S (Ctrl+S en Win/Linux)»

4. RoboPOJOGenerator

Hoy en día, es muy común conectar una aplicación a un endpoint REST. En la mayoría de los casos, quieres transformar la salida JSON del endpoint en una representación de objeto en tu aplicación. Crear manualmente objetos para salidas JSON grandes puede ser bastante tedioso. Por suerte, el plugin RoboPOJOGenerator puede hacer el trabajo pesado por ti. Solo tienes que pegar la salida JSON en el generador y, si quieres, elegir los frameworks que usarás. RoboPOJOGenerator crea los POJO (Plain Old Java Objects) con las anotaciones correspondientes a los frameworks que elijas para Java y Kotlin. ¡En mi opinión, es un plugin que ahorra muchísimo tiempo!

Interfaz de RoboPOJOGenerator que muestra datos de vulnerabilidades en JSON, Java seleccionado, opciones de frameworks y ajustes de generación de código

5. Snyk Vulnerability Scanner

El plugin Snyk Vulnerabilty Scanner te ayuda a desarrollar aplicaciones Java con mayor seguridad. Puede analizar tanto tus dependencias de terceros para detectar problemas de seguridad conocidos como tu código personalizado.

Para tus dependencias de código abierto, ofrece recomendaciones de corrección que apuntan a un paquete sin la vulnerabilidad. Si el paquete vulnerable es una dependencia transitiva, el plugin te indica qué versión de nivel superior debes actualizar. Si no hay una dependencia de nivel superior corregida, te dirá si existe una versión de la dependencia transitiva que resuelva el problema de seguridad y cuál es.

En tu código personalizado, Snyk Vulnerabilty Scanner reconoce patrones vulnerables, como inyección SQL, secuencias de comandos entre sitios (XSS) y recorrido de rutas. Te muestra dónde ocurre el problema en tu código, el flujo de la vulnerabilidad y posibles soluciones que pueden orientarte para corregirlo, recopiladas a partir de código de código abierto. Es como un corrector ortográfico para tu código que evita errores de seguridad.

Para obtener más información sobre este plugin, lee la publicación del blog: Cómo corregir problemas de seguridad en Java mientras programas en IntelliJ IDEA

Escáner de seguridad de IntelliJ que muestra una vulnerabilidad de scripting entre sitios (XSS), detalles del flujo de datos y una corrección en el código para escapar la entrada HTML.

6. AsciiDoc

Me encanta AsciiDoc. Aunque se parece a Markdown, AsciiDoc es un formato de texto muy configurable y adecuado para la mayoría de las personas. Puedes convertir AsciiDoc a formatos como PDF, EPUB, HTML y muchos más.

El plugin de AsciiDoc facilita la creación y edición de archivos AsciiDoc en mi editor, además de su vista previa. Por ejemplo, lo uso para escribir documentación sobre mi código que podemos publicar como página web HTML, pero también como PDF, si alguien lo prefiere.

Hacerlo directamente en mi IDE es una gran ventaja y, con más de 2,1 millones de descargas, no soy el único que valora esta excelente extensión para IntelliJ IDEA.

7. Randomness

El plugin Randomness es una herramienta pequeña y práctica. La primera vez que lo vi, pensé sinceramente: «Bueno, esto podría ser interesante, pero ¿cuánto lo usaré en realidad?». Resulta que lo uso mucho más de lo que imaginé al principio. Esta herramienta genera datos aleatorios, como números, cadenas, palabras reales y UUID. También puede crear arreglos de un tipo determinado.

Como doy muchas demostraciones, es muy práctico poder crear datos aleatorios o una colección de datos con un atajo de teclado. También lo uso en mis pruebas unitarias para generar pruebas aleatorias. La salida de este plugin se puede configurar ampliamente para adaptarla a tus necesidades.

Algunos ejemplos de configuración son el tamaño de un arreglo, el conjunto de caracteres de una cadena aleatoria y la longitud de una palabra. El único cambio importante que hice fue configurar el arreglo para que ya no muestre los corchetes [], sino solo el contenido. Así puedo crear fácilmente una List con el método List.of() de Java, como se muestra abajo.

Editor de código con tema oscuro que muestra un método de prueba vacío de Java JUnit, anotado con @Test y llamado myTest

8. SonarLint

El plugin SonarLint es una excelente herramienta para garantizar la calidad del código. Te ayuda a identificar código sospechoso, malos hábitos y posibles errores. De forma predeterminada, usa reglas estáticas basadas, en términos generales, en una combinación de las reglas de PMD, findbugs y checkstyle. Lo mejor de este plugin es que muestra información sobre la marcha y se integra con las funciones de Git de IntelliJ. Antes de confirmar tu código, te advierte si hay problemas.

Si usas SonarQube o SonarCloud, puedes sincronizarlos con SonarLint local para que tu código cumpla el mismo conjunto de reglas. Aun así, SonarLint también es una gran herramienta para cualquier desarrollador que la use de forma independiente.

Panel de SonarLint en IntelliJ que muestra tres problemas encontrados en un archivo Java, incluido un cambio sugerido a try-with-resources

Antes ya hablamos de Snyk Vulnerability Scanner. Si lo comparo con SonarLint, no diría que uno vuelve redundante al otro. Al contrario: aunque SonarLint puede encontrar algunos problemas relacionados con la seguridad, ese no es su enfoque principal, y Snyk es mucho mejor en ese aspecto. Por otro lado, SonarLint es mucho mejor que el plugin de Snyk para encontrar todo tipo de posibles errores y problemas de estilo. En definitiva, yo uso ambos plugins al mismo tiempo y creo que se complementan.

Empieza con Capture the Flag

Aprende a resolver desafíos de Capture the Flag viendo nuestro taller virtual introductorio a pedido.

Leer más

Blog

Los modelos de frontera encontraron las vulnerabilidades. Solo el atacante encontró las cadenas.

El análisis estático encontró las fallas, pero solo las pruebas de ataque en vivo demostraron cómo podían encadenarse para provocar brechas. Una comparación de Evo COS, Claude Security y Claude Code Security.

feature insights context
Blog

Los ataques autónomos ya están aquí. La defensa debe estar a su altura.

Los atacantes autónomos están reduciendo el tiempo disponible para defenderse. Descubre cómo el descubrimiento, la corrección, la validación y la prevención continuos pueden ayudar a los equipos de seguridad a seguirles el ritmo.

Blog

Por qué los agentes de programación con IA siguen generando fallas de control de acceso

Los agentes de programación con IA pueden generar lógica de autorización que compila y supera la revisión, pero expone los datos de un inquilino a otro. Descubre por qué es difícil detectar el control de acceso roto y cómo prevenirlo.