1 00:00:00,000 --> 00:00:17,280 Hola a todos. Este vídeo va destinado a explicar lo que es CheckStyle. CheckStyle lo he puesto 2 00:00:17,280 --> 00:00:29,040 en la teoría en lugar de PMD. PMD, el link a PMD, no es posible en estos momentos y por 3 00:00:29,040 --> 00:00:34,240 eso he tenido que sustituirlo por otro analizador de código, que sería CheckStyle. CheckStyle 4 00:00:34,240 --> 00:00:41,920 aparece en esta página y aparece con... Aquí tenemos toda la documentación por si queremos 5 00:00:41,920 --> 00:00:50,040 andar en ella. Hay que decir que CheckStyle se basa en una serie de reglas, que puede 6 00:00:50,040 --> 00:01:01,080 ser del estilo de Google o de Sun. Aquí tendríamos el estilo de Java, según el 7 00:01:01,080 --> 00:01:10,960 Google Check, y aquí aparecerían cómo hacer las indentaciones, qué cosas son necesarias 8 00:01:10,960 --> 00:01:16,400 en una clase, etc. Todo eso es lo que nos va a chequear a través de CheckStyle. Lo 9 00:01:16,400 --> 00:01:21,440 primero que hay que hacer es en Eclipse, lo tengo en Debian, y lo primero que vamos 10 00:01:21,440 --> 00:01:31,000 a hacer es instalarlo. Para instalarlo, lo primero que he hecho es, según la teoría, 11 00:01:31,000 --> 00:01:39,280 hay una prueba de PMD, del programa PMD, del plugin, y yo lo que he hecho es, con ese mismo 12 00:01:39,280 --> 00:01:43,760 código, he creado una prueba para CheckStyle, que estaría el código aquí. He creado un 13 00:01:43,800 --> 00:01:47,640 proyecto que se llama Prueba de Código y he generado una clase que se llama Prueba CheckStyle 14 00:01:47,640 --> 00:01:53,680 y le he metido el código que aparece en la teoría. Lo primero que vamos a hacer es irnos 15 00:01:53,680 --> 00:02:02,640 a Help o Ayuda, si lo tenéis en castellano, y nos iremos a instalar a Eclipse Marketplace. 16 00:02:02,640 --> 00:02:19,280 Y lo que vamos a hacer es buscar CheckStyle. Pondremos CheckStyle, va un poquito lento 17 00:02:19,280 --> 00:02:25,200 y aquí lo tenemos. Bueno, le damos a CheckStyle, le damos a Enter y nos aparecerá, lo he hecho 18 00:02:25,200 --> 00:02:34,920 mal aquí, CheckStyle. De los dos que hay, otra posibilidad sería el JSParrow, pero 19 00:02:34,920 --> 00:02:39,480 es más complicado de instalar. Entonces, he decidido utilizar CheckStyle para que veáis 20 00:02:39,480 --> 00:02:47,360 un ejemplo de lo que es un analizador de código. Le damos a Instalar y procederá a instalarlo. 21 00:02:55,200 --> 00:03:07,800 CheckStyle es una forma de revisión automatizada que comprueba si el código JAVA se encuentra 22 00:03:07,800 --> 00:03:13,800 en unos ciertos estándares para garantizar una cierta calidad en la codificación. Se 23 00:03:13,800 --> 00:03:20,080 trata de este tipo de programas. ¿Qué ventajas tiene? Pues que facilita el mantenimiento 24 00:03:20,080 --> 00:03:29,200 en el código, asegura la calidad, facilidad de uso, mensajes de reglas en castellano y 25 00:03:29,200 --> 00:03:38,360 podemos implementar propias reglas. Nosotros podemos crear nuestras propias reglas. Ejemplos, 26 00:03:38,360 --> 00:03:44,280 los comentarios JAVA Doc, el te dice si están puestos o no, violaciones en el tamaño, espacios 27 00:03:44,360 --> 00:03:51,040 en blanco, bloques, diseño de clases, si se ha creado un constructor o no, etc. Todo eso, 28 00:03:51,040 --> 00:03:56,720 a la hora de construir un proyecto en JAVA, cada una de las clases, en la manera de como 29 00:03:56,720 --> 00:04:06,880 nosotros las escribimos, nos corregirá y nos irá, a lo largo de los chequeos que hagamos, 30 00:04:06,880 --> 00:04:12,480 nos irá corrigiendo lo que tenemos mal. Eso nos va a ayudar también a mejorar nuestra 31 00:04:12,520 --> 00:04:14,480 programación en JAVA y a aprender también en JAVA. 32 00:04:18,480 --> 00:04:28,000 En la teoría nos aparece el PMD para Eclipse. Yo he probado el plugin para Eclipse y de ninguna 33 00:04:28,000 --> 00:04:36,360 manera siempre sale con un error. Es verdad que antes sí funcionaba y a raíz de los últimos meses 34 00:04:36,520 --> 00:04:44,240 ya no funcionan estas entradas. Esta sería la entrada que habría que utilizar y que lo haríamos 35 00:04:44,240 --> 00:04:50,920 concretamente en la instalación de nuevos software. Habría que poner adicionar y adicionar esa 36 00:04:50,920 --> 00:04:57,280 dirección y nos aparecería él. Pero una vez que lo estás instalando, al final genera un error. 37 00:04:57,280 --> 00:05:05,960 Entonces, ya os digo, no vais a poder instalar el plugin de PMD y como se trata nada más que de 38 00:05:05,960 --> 00:05:14,360 ver o de que veáis cómo utilizar a grosso modo un analizador de código, pues cualquiera nos vale 39 00:05:14,360 --> 00:05:24,760 y que perfecto como checkstyle que hace las veces de PMD. Bien, entonces, en cuanto se termine de 40 00:05:24,760 --> 00:05:39,000 instalar, tarda un poquito, veremos cómo utilizamos este analizador. Bueno, ya he terminado de hacer la 41 00:05:39,000 --> 00:05:44,200 parte primera de la instalación. Aquí nos dice que la instalación no puede ser completada como se 42 00:05:44,200 --> 00:05:52,520 requería. Entonces, bueno, vamos a guardar la instalación y modificar los ítems que sean 43 00:05:52,520 --> 00:05:58,960 necesarios para que sea compatible. La otra opción, esta no nos la deja, es mostrar el original error y construir 44 00:05:58,960 --> 00:06:10,200 una propia solución. Lo vamos a dejar así y le vamos a dar a confirmar. Le damos a confirmar y esto seguirá 45 00:06:10,200 --> 00:06:20,240 instalando. Está calculando. Vale, y ya lo tendríamos aquí. Hay que aceptar por los términos de la 46 00:06:20,240 --> 00:06:27,480 licencia. Le damos a aceptar y le damos a finalizar. Una vez que finalice, si vemos, el software se está instalando aquí 47 00:06:27,480 --> 00:06:37,400 abajo. Habrá que esperar a que lo instale para que luego reiniciemos Eclipse y veamos si funciona o no. 48 00:06:39,520 --> 00:06:43,520 Entonces, fases ¿qué hemos hecho hasta ahora? Hasta ahora lo único que hemos hecho es, hemos creado un 49 00:06:43,520 --> 00:06:48,360 proyecto que se llama PruebaCódigo. Dentro hemos creado una clase que se llama PruebaCheckstyle 50 00:06:49,080 --> 00:06:57,000 y hemos añadido el código que aparece en la teoría. A continuación, hemos instalado el plugin a través del 51 00:06:57,000 --> 00:07:06,120 Marketplace, el plugin de Checkstyle. Ese plugin se está instalando ahora y, posteriormente, una vez que esté 52 00:07:06,120 --> 00:07:23,160 instalado, reiniciaremos Eclipse y lo probaremos. Continúa esto, va al 53% y sale un warning que dice que el 53 00:07:23,160 --> 00:07:28,920 contenido no está firmado. Lo vamos a dar a instalar de todos modos. Le damos y seguimos. 54 00:07:29,920 --> 00:07:43,920 Ya ha terminado la descarga y nos dice que restauremos Eclipse. Entonces, le damos a restaurar y nos lo cerrará y nos lo volverá a abrir. 55 00:07:43,920 --> 00:07:52,920 Decimos que salve, que guarde de la clase PruebaCheckstyle, que lo hemos modificado, y le damos a Sí. 56 00:07:53,920 --> 00:08:03,920 Se está abriendo Eclipse y ahora comprobaremos si realmente se ha instalado el plugin de manera adecuada. 57 00:08:06,920 --> 00:08:15,920 Ya se ha reiniciado Eclipse. Tenemos aquí la clase que habíamos creado y vamos a ver si realmente se nos ha descargado. 58 00:08:15,920 --> 00:08:26,920 Si yo me pongo encima del proyecto que hemos generado y con el botón derecho del ratón observo si se me ha descargado o no. 59 00:08:26,920 --> 00:08:35,920 Veis que tenemos aquí ya Checkstyle y que tenemos cómo activar Checkstyle, cómo desactivarlo, cómo chequear el código con Checkstyle, 60 00:08:35,920 --> 00:08:50,920 qué es lo que vamos a hacer y cómo crear formatos. Hay que decir que si nos vamos aquí a Propiedades, en el proyecto veremos que tenemos también Checkstyle incorporado. 61 00:08:50,920 --> 00:08:59,920 Al dar a Checkstyle nos aparecerán todas las propiedades que podemos hacer. Aquí tenemos, como he dicho antes, dos posibles check. 62 00:08:59,920 --> 00:09:10,920 El check de Google y el check de SAM. Son una serie de reglas que ya vienen por defecto. Se pueden configurar. Aquí le damos a Configurar y podemos ver cada una de ellas. 63 00:09:12,920 --> 00:09:26,920 Veis aquí el tamaño, la indentación, los imports, las headers, los comentarios de Javadoc. Todo esto se puede configurar. Dependerá de si es el de Google o es el de SAM. 64 00:09:26,920 --> 00:09:47,920 Ya vienen todas estas instaladas y podemos aquí crear también reglas nuestras propias. Esto sería el Checkstyle para el proyecto en el que lo que vamos a hacer es chequear esta clase. 65 00:09:47,920 --> 00:10:05,920 ¿Cómo? Vamos a meternos en la clase, abrimos el proyecto y en el paquete por defecto que nos ha creado tenemos la clase. Si nosotros le damos a botón derecho podemos hacer un Checkstyle de que dé el código. 66 00:10:06,920 --> 00:10:22,920 Al darle a Checkstyle nos aparecerán las líneas en amarillo. Aquí ya es en el que no cumplen con el Google Check que es el que hemos dejado. Según vemos, aquí está bastante mal todo. 67 00:10:22,920 --> 00:10:31,920 Lo primero, podemos acercarnos a la lupa y ahí nos va diciendo cuál es el que nos está diciendo que falta un comentario. Habría que poner un comentario aquí. 68 00:10:31,920 --> 00:10:58,920 Clase, prueba, analizador. Después podemos nosotros de nuevo darle al chequeador y ver si realmente con el comentario se nos quita la violación que hemos generado aquí. 69 00:10:58,920 --> 00:11:09,920 Aquí nos dice que sigue habiendo falta de comentario. Si yo cojo el paquete y le doy a Checkstyle. 70 00:11:10,920 --> 00:11:28,920 Quiero el paquete. Aquí está. A ver si puede. Todas las violaciones nos están diciendo que si nos vamos encima nos dice que esta línea tiene un carácter de tabulación. 71 00:11:28,920 --> 00:11:41,920 Abreviatura del nombre. Hay que hacerlo. Debe contener con más de una mayúscula. Si nos fijamos aquí en otras, la línea contiene un carácter de tabulación. 72 00:11:41,920 --> 00:11:58,920 El método name, método doble return, debe contener ese patrón. Si veis que falta un comentario, etc. Aquí, si me pongo en código, nosotros podemos darle a Checkstyle y desactivarlo. 73 00:11:58,920 --> 00:12:20,920 O decirle que podemos desactivar el Checkstyle y de nuevo después. Va super lento. Y luego activarlo. 74 00:12:20,920 --> 00:12:34,920 Con ello lo que hacemos es que si yo le doy aquí a Checkstyle y chequeamos de nuevo el código, lo que uno va a generar es ver si alguna de las de lo que hemos realizado nos quita la línea en amarillo. 75 00:12:35,920 --> 00:12:43,920 Si le doy un Enter. 76 00:12:43,920 --> 00:13:08,920 Nos ha cogido aquí clase prueba analizador. Si yo le doy a Enter, ya me ha quitado una línea. 77 00:13:08,920 --> 00:13:23,920 Si le doy a Control-Alt-J nos vuelve a chequear la línea y nos quitaría aquí el error que había. Era que nos faltaba un comentario. Y, a lo opuesto, nos quita la línea amarilla. 78 00:13:23,920 --> 00:13:39,920 Si nos vamos al public-instructable-main, nos está diciendo que falta un comentario, que la línea contiene un carácter de tabulación y luego nos está hablando del sangrado, que está a 24 aquí y tendría que estar a 2. 79 00:13:39,920 --> 00:13:57,920 Habría que acercarlo. Este igual. Aquí el sangrado debería ser de 4 y está con una línea de tabulación. Si le dejamos a 2 líneas se nos quitaría el siguiente. 80 00:13:57,920 --> 00:14:08,920 Y así sucesivamente. Nosotros vamos viendo todo. Aquí seguramente el sangrado es muy alto. Necesitaríamos que contiene un carácter de tabulación. 81 00:14:09,920 --> 00:14:30,920 El nivel de sangrado 8 no está al nivel correcto que debería ser 0, que es lo que acabo de hacer. Si ahora le hacemos un nuevo chequeo con CheckStyle y chequea el código con CheckStyle, nos quita el amarillo porque antes estaba un sangrado de 8 y debería estar un sangrado de 0. 82 00:14:30,920 --> 00:14:44,920 Porque esta llave pertenece a la clase que sería esta de aquí. Y así sucesivamente. Aquí nos ha generado de nuevo porque, si veis, también tenemos aquí un espacio que habría que ajuntarlo aquí. 83 00:14:45,920 --> 00:14:59,920 A lo mejor aquí probando con CheckStyle. Volveríamos a chequear el código y veríamos si lo quita. No nos quita porque realmente todavía nos está diciendo que falta comentario javadoc. 84 00:14:59,920 --> 00:15:22,920 Este no lo toma como un comentario. Esto sería así sucesivamente. Este sería el método del analizador de código CheckStyle y esto sería trabajar con ello y ver cada una de las reglas para que sea de utilidad.