Mostrando las entradas con la etiqueta Golang. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Golang. Mostrar todas las entradas

martes, agosto 29, 2023

[Action Required] AWS Lambda end of support for the Go 1.x runtime

Hace unos días me llegó un mail con el título "[Action Required] AWS Lambda end of support for the Go 1.x runtime". 

En el mail explica los motivos y tiene los links a blogs de como hacer esta migración. Por lo que pude entender y el fondo de esto es que quieren que cuando se usen lambdas en go se usen con la arquitectura arm64 y no con x86_64. En mi caso lo tenía todo con x86_64 y ahora estoy haciendo el cambio ya que como indica la nota es mucho más barato usar esto.

En mi caso el cambio fue mínimo dado que solo tuve que cambiar el nombre del handler por bootstrap y listo, luego también cambiar la configuración en la lambda para que use la nueva arquitectura. Los detalles y la explicación en detalle se encuentra en este link.

miércoles, mayo 31, 2023

A tour of Go

 A tour of Go es un pequeño recorrido por las características del lenguaje. La verdad que es muy recomendable si estas iniciando en go o si quieres tener las básicas del mismo. Tengo que admitir que no le di mucha importancia cuando comencé con esto pero me hubiera ahorrado muchos dolores de cabeza si lo hubiera seguido desde mis inicios en Go.



lunes, marzo 20, 2023

GitHub Copilot (Go)

 Desde hace unas semanas en la StartUp que me encuentro trabajando surgió la idea de utilizar GitHub Copilot. La verdad que al principio no podía darme cuenta de como poder sacarle provecho a esta herramienta de AI.

Con el correr del tiempo me di cuenta que la herramienta analiza tu forma de programar y según el contexto de tu código le puedes sacar mas o menos provecho.  Lo bueno que esta herramienta te completo o sugiere el código que debes poner según el contexto de tu código.

En mi caso le pude sacar mucho provecho creando las pruebas unitarias ya que me proponía los test unitarios que me faltaban hacer o me los completaba.

Ejemplo:

Debía escribir prueba unitarias para encriptar y para desencriptar por lo que solo con el nombre que le puse a la func ya comenzó a proponerme código.  


func TestRsaEncrypt(t *testing.T) {
//GenerateKeyPair(2048)
pub, _, err := CreateKeys(2048)
if err != nil {
t.Error(err)
}
// encrypt
encrypted, err := RsaEncrypt([]byte("hello world"), []byte(pub.String()))
if err != nil {
t.Error(err)
}
assert.NotNil(t, encrypted)
}

Copilot detecto que quería realizar un test para hacer una encriptación RSA por lo que solo con nombrar la func el completo el código. En realidad solo escribí la primer línea y el resto me lo propuso. Hasta ahí me había sorprendido ya que me propuso el código de forma correcta pero mi sorpresa fue al hacer el unit test para el Decrypt.

func TestRsaDecrypt(t *testing.T) {
//GenerateKeyPair(2048)
pub, pri, err := CreateKeys(2048)
if err != nil {
t.Error(err)
}
// encrypt
encrypted, err := RsaEncrypt([]byte("hello world"), []byte(pub.String()))
if err != nil {
t.Error(err)
}
// decrypt
decrypted, err := RsaDecrypt(encrypted, []byte(pri.String()))
if err != nil {
t.Error(err)
}
assert.Equal(t, "hello world", string(decrypted))
}

Al poner el título de la función me propuso todo el código, solo con un error el cual tuve que corregir pero me ahorre de escribir mas de 15 líneas.


En síntesis:

La herramienta es muy potente, solo debemos ayudarla teniendo un buen código ya que toma como contexto el código de nuestro repo para proponer código siguiendo nuestra lógica. Es importante los comentarios y los nombres de las funciones o estructuras. Creo que este tipo de herramientas se están haciendo cada día mas populares y como desarrollador es importante que aprendamos a convivir con este tipo de ayuda dado que nos brinda la posibilidad de aumentar nuestra productividad.



lunes, enero 23, 2023

Mejor canal de youtube para aprender Golang

 Desde hace unos meses comencé a trabajar como Arquitecto de soluciones en una Startup Cloud Native que usa Golang para sus desarrollos. Lo interesante de esta propuesta es que mi experiencia esta basada en Java por lo que tuve que aprender Go rápidamente. Esto me llevo a investigar recursos de aprendizaje y existen miles de lugares para aprender. Por suerte me cruce con un canal de youtube que tiene un curso de golang que tiene en cuenta las buenas prácticas con ejemplos prácticos reales.

El curso se llama:  Golang Crash Course y la verdad que provee todo lo que necesitas para ser un experto en Go.

A pesar que había trabajado el año anterior con Go no tenía la experiencia necesaria hasta que pude encontrar este curso, realmente recomiendo este curso ya que cubre todo lo que necesitamos para crear aplicaciones profesionales en Goland. 


Happy code