Charla Técnica «Notepad, Notepad++ & VS Code. Y yo con estos pelos»

En la sesión de hoy intentaremos entender un poco mejor a nuestro enemigo, seamos sinceros siempre nos enseñan a trabajar con un único objetivo, destronar a los desarrolladores. Aprenderemos a utilizar sus propias herramientas, hacerlas nuestras y vencerles!

Con el auge de la automatización, Cloud Computing y despliegues de infraestructura mediante código, es necesario aprender a utilizar herramientas nunca hubieramos pensado es usarlas.

Como administradores de sistemas que seguramente la mayoría somos, hemos podido utilizar: 

  • Un pequeño batch en shellscript, aunque sea para conectar unidades de red.
  • Una tarea programada para apagar el sistema por la noche.
  • Una pequeña modificación de un html para cambiar el logo de la página web de la empresa.

Pequeños arreglos para los que no necesitábamos unas herramientas muy complejas para llevarlas a cabo. Lo más habitual sería utilizar un editor de texto. Bloc de notas de Windows (notepad), puede ser un ejemplo de un editor de texto básico.

¿Qué herramienta necesitamos utilizar en cada momento? Si fuéramos programadores, sabríamos que entorno debemos de utilizar en cada momento, pero como no lo somos nos vamos a conformar con conocer un poco las características de cada uno y profundizar un poco en ellos, con esto podemos dar unos usos recomendados.

Editor de texto, permite escribir texto básico, (Notepad)

Editor de texto orientado a código fuente: dispone de Autocompletado, Depuración y Compilación.  (Edición rapida y puntual)(Notepad++  o VSCode)

¿Qué es un IDE?  Es una aplicación informática que proporciona servicios integrales para facilitarle al desarrollador o programador el desarrollo de software.

En general los editores de código o enfocados al desarrollo deben incluir:

  • Editor de texto  plano optimizado para código fuente (autocompletado, resaltado de errores, identación de código)
  • Depurador
  • Compilador
  • Plantilla de código
  • Diseñador de interfaces gráficas
  • Control de Versiones
  • Etc, …

Un IDE, dispone de diseñador de interfaces gráficas. Aporta facilidades y complementos para la gran mayoría de lenguajes, principalmente hacia los que van orientados. (Eclipse y Java)

Algunos desarrolladores no les gusta utilizar IDEs complejos porque les gusta desarrollar todo ellos, para tener un mejor control de las operaciones a realizar, aunque en otro caso como compilaciones de Android es inevitable.

¿Cuándo recomendamos utilizar cada una de estas herramientas?

Utilizaremos un editor de texto básico para pequeños cambios, que no tengan repercusión. (o para apuntar alguna nota que no sepamos dónde dejar)

Usaremos un editor orientado a código cuando:

  • Tenemos un conocimiento básico del lenguaje que vamos a utilizar y conocemos la sintaxis.
  • Conocemos los shortcuts y snippets del editor y nos facilitan la edición.
  • Utilicemos lenguajes que no requieran compilación.

Seguramente no utilizaremos un IDE porque:

  • No necesitaremos utilizar un lenguaje completo y complejo
  • No tendremos que compilar código
  • Nunca necesitemos estar familiarizados con un lenguaje que no sea orientado a infraestructura (Esto se lo dejamos a los desarrolladores, tendrán que vivir de algo, sin acritud 🙂 )

O quién sabe, igual a alguno de vosotros le da por cambiar al lado oscuro..

Ejemplos de editores de código

Como ejemplo de editor de texto básico, utilizaremos Notepad (ya que estamos en Windows):

  • Nos permite guardar cualquier tipo de fichero sin extensión o con la extensión que nosotros le pongamos, esto facilita que podamos renombrar facilmente un html, o un json, ficheros que estén orientados a texto.
  • Nos permite ir directamente a una línea (Ctrl+G) Esto es muy útil cuando nos especifican en alguna ejecución que el error está en una línea específica.
  • Buscar y reemplazar de una forma sencilla cualquier tipo de paralabra o carácter.
  • Utilizar WordWrap: Ajuste línea para poder acortar la longitud sin que la integridad de la línea se vea comprometida con un retorno de carro.
  • Otras funciones menos conocidas:
    • Se puede interactuar con código bash, para poder crear pequeños programitas. Ejemplo:
      • Si añadimos .LOG al principio de un bloc de notas y lo guardamos, cada vez que lo abrimos nos imprimirá la hora y la fecha.
    • Podemos buscar directamente en Bing, por ejemplo si estamos instpeccionando un error y nos da una url de consulta, se puede seleccionar directamente y buscar en Bing. Nos abre el navegador y nos lleva a los resultados. (No intentéis cambiar el motor de busqueda por Google, no es sencillo)
    • Incluye posibilidad de maquetar el texto de derecha a izquierda para otros formatos de lenguajes
    • Si quieres buscar ayuda de como se utiliza, mejor buscalo por la red, porque su búsqueda digamos, que no es muy… no ayuda… realmente te lanza un get help a bing (pruébalo)

Como ejemplo de editor de texto orientado al desarrollo podemos utilizar, Notepad++

Dispone de multitud de características, que mejoran las de un editor de texto básico y realmente a nivel de infraestructura nos puede ser super útil.

  • Librerías orientadas a la edición de código básico, entiende la mayoría de sentencias por defecto.

*Si quieres utilizar algún módulo específico como AZ no entiende esa sintaxis, seguramente algún plugin o extension añada esta funcionalidad.

  • Permite grabar acciones, si necesitas hacer siempre la misma corrección en una línea, puedes grabar una pequeña macro y ejecutarla tantas veces como necesites.
  • Permite la generación de firmas MD5 o SHA, para verificar la integridad de los ficheros.
  • Permite abrir varios ficheros y los organiza en pestañas, muy útil cuando estás trabajando con diferentes proyectos o simplemente como varios bloc de notas
  • Permite abrir ficheros guardados en aplicaciones que sincronizan con alguna nube, tipo Dropbox, OneDrive…
  • Guarda un pequeño archivo con toda la información, que permite que aunque apagues el ordenador o cierres la aplicación te mantiene la sesión con todos los ficheros abiertos, aun así se precavido y guarda siempre una copia.

Una de las características que más me gusta y me parece muy útil es su búsqueda y reemplazo, tiene un modo de búsqueda extendido, que te permite reemplazar con saltos de línea por ejemplo (\n) y viene muy bien para pequeños desarrollos.

Como ejemplo de IDE, vamos a utilizar VS Code

No es un IDE, su versión IDE es Visual Studio completo,  ¿Cuál es la diferencia entre ambos? Gracias a los plugins puedes convertir un editor de texto como el Code en un IDE super potente. Pero para las personas que no necesitan más, y prefieren moverse en un entorno sencillo y controlado es utilizar VS Code.

  • Entorno sencillo y amigable
  • Fácilmente ampliable gracias a sus extensiones
  • Es multiplataforma y está disponible en los tres grandes MacOS, Linux y Windows
  • Es mantenido por la comunidad y para la comunidad por lo que existe mucha información
  • Se puede personalizar facilmente gracias a JSON y javascript
  • Incorpora terminal, en el que poder desplegar comandos facilmente e interactuando con el propio código
  • Integra control de versiones de forma nativa
  • Integra un depurador avanzado, aunque se puede mejorar con las extensiones

Vimos como integrar extensiones en Visual Studio Code, y destacar la integración con PowerShell Core 7.1 y su personalización para convertirlo en PowerShell ISE. Para ello solo necesitamos tener instalado:

  • Visual Studio Code
  • PowerShell Core 7.1
  • Extension PowerShellPreview

Os dejamos una pequeña muestra de la buena imitación que consigue:

Saber utilizar este tipo de herramientas, nos ayudarán en nuestro día a día y podremos ir profundizando en Infraestructura como código para poder automatizar los despliegues de infraestructura de nuestro día a día.

Victor Rodilla @VictorRodilla

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.