¿Qué es Sensei?

Publicado Oct 08, 2020
por Alan Richardson
ESTUDIO DE CASO

¿Qué es Sensei?

Publicado Oct 08, 2020
por Alan Richardson
Ver recurso
Ver recurso

El plugin Sensei proporciona una manera fácil de encontrar patrones de código específicos en su código fuente, y luego aplicar reglas de reescritura para modificar el código coincidente. Todo dentro del IDE de Intellij, y en tiempo real.

Por ejemplo, puede crear una regla que coincida con las anotaciones de JUnit `@Disabled` que no tengan una razón, Sensei le informará del problema resaltando el código en el IDE.

Además, cuando usted `alt+enter`, puede tener la opción de `Añadir un parámetro de comentario de todo`.

Cuando se selecciona, esto modificaría el código para añadir una razón de tipo boilerplate, que luego puedes modificar, y si no lo haces, aparecerá en tu panel de tareas pendientes.

Por ejemplo, `@Disabled` se convertiría en ` @Disabled("TODO: añadir una descripción aquí")`.

Sensei combina la funcionalidad de un escáner de código de análisis estático con un motor de reescritura de código.

Acciones de IntelliJ Intention

Basado en la descripción anterior, la alternativa obvia (si no estaba usando Sensei) es usar la funcionalidad de IntelliJ Intention Actions.

Sensei se diferencia de IntelliJ Intention Actions porque el objetivo de Sensei es proporcionar una forma de crear matchers y rewriters que sean específicos para el proyecto, o incluso locales para un desarrollador individual.

Hemos intentado crear una interfaz gráfica de usuario que facilite la escritura y la experimentación de las reglas de concordancia y de reescritura.

¿Cómo puede ayudarme a mejorar personalmente?

Cuando aprendo una nueva biblioteca, me lleva tiempo crear una memoria muscular en torno a los métodos y el formato. Así que puedo optar por crear recetas personales que

  • enlazar con la documentación oficial o las páginas de tutoriales
  • tienen plantillas de caldera que son más eficaces
  • corregir las malas prácticas de codificación
  • añadir código de caldera para ayudar a utilizar una biblioteca

Puedo utilizar Sensei para construir recetas temporales que me impulsen a las prácticas actuales que he elegido utilizar y me ayuden a crear hábitos eficaces. Y las recetas son temporales porque puedo eliminarlas cuando las supere.

¿Cómo puede ayudar a mi equipo a mejorar?

Del mismo modo, podemos ayudar a los equipos a crear memoria muscular en torno a las normas de codificación acordadas.

Crear libros de recetas que aplicamos cuando encontramos los mismos comentarios en las revisiones de pull requests. Como los libros de recetas se almacenan en el control de versiones con el proyecto, están disponibles para todos en el proyecto. Y podemos desactivarlos cuando ya no necesitemos las indicaciones.

Sensei ayuda a dar una respuesta temprana

Lo que hemos intentado construir con Sensei es una forma de obtener la información que nos ayuda a mejorar, y recordatorios de acciones correctivas, tan pronto como podamos en el proceso de codificación.

En lugar de esperar a que

  • los resultados de un analizador estático
  • los comentarios de una revisión del código

En cambio, podemos ver la retroalimentación, para las normas personalizadas que queremos hacer cumplir, mientras codificamos.

Y tenemos recordatorios, o reglas de reescritura reales, para ayudarnos a escribir código que cumpla con las normas.

Sensei es flexible

En ese sentido, Sensei es un poco una mezcla, ya que es:

  • parte Analizador estático
  • tutor de codificación
  • motor de reescritura

Sensei es lo suficientemente flexible como para que el trabajo de decir "¿Qué es Sensei?" sea un poco más difícil.

Sensei llena un vacío en el flujo de trabajo de programación

Hemos intentado que Sensei sea la pieza que faltaba en el flujo de trabajo del programador y que le ayude a mejorar elementos específicos de su estilo de codificación, o del uso de bibliotecas, con las que usted y su equipo están trabajando actualmente.

Esta flexibilidad significa que se necesita un poco más de tiempo para familiarizarse con Sensei que con una herramienta de análisis estático o con el IntelliJ Intentions incorporado. Aun así, dedicando el tiempo a experimentar, obtendrás una nueva forma de acelerar tu aprendizaje en tu proceso de desarrollo personal.

¿Cómo experimentar?

Una vez que haya descargado e instalado Sensei desde el[Intellij Marketplace]

La forma más fácil de hacer que Sensei trabaje para usted es observar su proceso de codificación y considerar:

  • ¿Qué documentación sigues buscando?
    -- Podrías añadir algunas recetas de Sensei que enlacen a esa documentación.
  • ¿Qué errores simples sigues cometiendo?
    -- Podrías codificar temporalmente ese mal patrón de codificación como un emparejador, y escribir una reescritura Quick Fix que modifique el código para que sea lo que realmente quieres escribir.
  • ¿Qué código boilerplate escribes para utilizar una biblioteca?
    -- Podrías crear una regla Quick Fix para escribir el código por ti.

Dado que Sensei está diseñado para trabajar junto a cualquier herramienta de análisis estático que estés usando, si encuentras que las mismas violaciones están siendo reportadas desde el análisis estático, entonces podrías replicar la condición en una receta de Sensei . A continuación, puede añadir una solución rápida para ayudar a entrenar, no sólo para identificar el error, sino también para pasar rápidamente a escribir el código correcto

Ver recurso
Ver recurso

Autor

Alan Richardson

¿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

¿Qué es Sensei?

Publicado el 22 de enero de 2024
Por Alan Richardson

El plugin Sensei proporciona una manera fácil de encontrar patrones de código específicos en su código fuente, y luego aplicar reglas de reescritura para modificar el código coincidente. Todo dentro del IDE de Intellij, y en tiempo real.

Por ejemplo, puede crear una regla que coincida con las anotaciones de JUnit `@Disabled` que no tengan una razón, Sensei le informará del problema resaltando el código en el IDE.

Además, cuando usted `alt+enter`, puede tener la opción de `Añadir un parámetro de comentario de todo`.

Cuando se selecciona, esto modificaría el código para añadir una razón de tipo boilerplate, que luego puedes modificar, y si no lo haces, aparecerá en tu panel de tareas pendientes.

Por ejemplo, `@Disabled` se convertiría en ` @Disabled("TODO: añadir una descripción aquí")`.

Sensei combina la funcionalidad de un escáner de código de análisis estático con un motor de reescritura de código.

Acciones de IntelliJ Intention

Basado en la descripción anterior, la alternativa obvia (si no estaba usando Sensei) es usar la funcionalidad de IntelliJ Intention Actions.

Sensei se diferencia de IntelliJ Intention Actions porque el objetivo de Sensei es proporcionar una forma de crear matchers y rewriters que sean específicos para el proyecto, o incluso locales para un desarrollador individual.

Hemos intentado crear una interfaz gráfica de usuario que facilite la escritura y la experimentación de las reglas de concordancia y de reescritura.

¿Cómo puede ayudarme a mejorar personalmente?

Cuando aprendo una nueva biblioteca, me lleva tiempo crear una memoria muscular en torno a los métodos y el formato. Así que puedo optar por crear recetas personales que

  • enlazar con la documentación oficial o las páginas de tutoriales
  • tienen plantillas de caldera que son más eficaces
  • corregir las malas prácticas de codificación
  • añadir código de caldera para ayudar a utilizar una biblioteca

Puedo utilizar Sensei para construir recetas temporales que me impulsen a las prácticas actuales que he elegido utilizar y me ayuden a crear hábitos eficaces. Y las recetas son temporales porque puedo eliminarlas cuando las supere.

¿Cómo puede ayudar a mi equipo a mejorar?

Del mismo modo, podemos ayudar a los equipos a crear memoria muscular en torno a las normas de codificación acordadas.

Crear libros de recetas que aplicamos cuando encontramos los mismos comentarios en las revisiones de pull requests. Como los libros de recetas se almacenan en el control de versiones con el proyecto, están disponibles para todos en el proyecto. Y podemos desactivarlos cuando ya no necesitemos las indicaciones.

Sensei ayuda a dar una respuesta temprana

Lo que hemos intentado construir con Sensei es una forma de obtener la información que nos ayuda a mejorar, y recordatorios de acciones correctivas, tan pronto como podamos en el proceso de codificación.

En lugar de esperar a que

  • los resultados de un analizador estático
  • los comentarios de una revisión del código

En cambio, podemos ver la retroalimentación, para las normas personalizadas que queremos hacer cumplir, mientras codificamos.

Y tenemos recordatorios, o reglas de reescritura reales, para ayudarnos a escribir código que cumpla con las normas.

Sensei es flexible

En ese sentido, Sensei es un poco una mezcla, ya que es:

  • parte Analizador estático
  • tutor de codificación
  • motor de reescritura

Sensei es lo suficientemente flexible como para que el trabajo de decir "¿Qué es Sensei?" sea un poco más difícil.

Sensei llena un vacío en el flujo de trabajo de programación

Hemos intentado que Sensei sea la pieza que faltaba en el flujo de trabajo del programador y que le ayude a mejorar elementos específicos de su estilo de codificación, o del uso de bibliotecas, con las que usted y su equipo están trabajando actualmente.

Esta flexibilidad significa que se necesita un poco más de tiempo para familiarizarse con Sensei que con una herramienta de análisis estático o con el IntelliJ Intentions incorporado. Aun así, dedicando el tiempo a experimentar, obtendrás una nueva forma de acelerar tu aprendizaje en tu proceso de desarrollo personal.

¿Cómo experimentar?

Una vez que haya descargado e instalado Sensei desde el[Intellij Marketplace]

La forma más fácil de hacer que Sensei trabaje para usted es observar su proceso de codificación y considerar:

  • ¿Qué documentación sigues buscando?
    -- Podrías añadir algunas recetas de Sensei que enlacen a esa documentación.
  • ¿Qué errores simples sigues cometiendo?
    -- Podrías codificar temporalmente ese mal patrón de codificación como un emparejador, y escribir una reescritura Quick Fix que modifique el código para que sea lo que realmente quieres escribir.
  • ¿Qué código boilerplate escribes para utilizar una biblioteca?
    -- Podrías crear una regla Quick Fix para escribir el código por ti.

Dado que Sensei está diseñado para trabajar junto a cualquier herramienta de análisis estático que estés usando, si encuentras que las mismas violaciones están siendo reportadas desde el análisis estático, entonces podrías replicar la condición en una receta de Sensei . A continuación, puede añadir una solución rápida para ayudar a entrenar, no sólo para identificar el error, sino también para pasar rápidamente a escribir el código correcto

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.

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