Golang Closures

Para comprender los closures en Go primero debemos comprender sobre funciones anónimas. Las funciones anónimas son simplemente funciones que hemos creado sin un nombre y que luego asignamos a una variable o que usamos directamente. Veamos el ejemplo a continuación en donde hemos asignado una función a la variable “a” . No hay nombre definido… Read More »

Go Channels

Qué son los channels en Golang En Golang los channels son canales que usas para comunicarte con Goroutines. A través de estos canales puedes enviar de un extremo a otro información. Para este fin utilizamos el operador

Como usar Spring Boot Retry

Descripción Spring Boot Retry ofrece una forma simple para reintentar alguna operación que ha fallado. Esto es útil sobre todo cuando se tratan errores temporales o transitorios como el acceso a un recurso externo. Spring Boot Retry puede configurarse de forma declarativa mediante anotaciones o definiendo una config general. Vamos a ver aquí cómo utilizar… Read More »

Java como cambiar el time zone a un Date

Vamos a examinar cómo cambiar el time zone de un date en java de distintos modos. Como cambiar el timezone de un java.util.Date usando SimpleDateFormat Debemos tener claro que la clase Date en Java no tiene time zone. java.util.Date representa la cantidad de segundos transcurridos desde la medianoche 1 de enero de 1970 a las… Read More »

Java Convertir un List a un Map usando Stream

En este articulo veras como convertir un list a un map utilizando para ello un Stream disponible desde Java 8. ¿Cómo convertir un List a un Map? Partiendo de una lista de productos creamos un Stream Usar Collectors.toMap para crear un map Luego haces uso del Stream y “Collectors.toMap” en donde para este ejemplo usamos… Read More »

Go como usar Goroutines

Un Goroutine es un hilo de ejecución ligero manejado por GO. Gorutine son funciones o métodos que se ejecutan simultáneamente. Podemos entenderlas como “hilos ligeros” con un costo mucho menor que un hilo tradicional. Supongamos que tienes dos funciones Si llamas a estas funciones de la forma habitual tendrías este resultado. Observa cómo la ejecución… Read More »

Java 8 Stream map flatMap y filter

Stream map te permite leer cada elemento y transformar los valores que se encuentran en el Stream entregandote otro Stream con el resultado para seguir realizando operaciones. Cómo usar Stream map Como puedes ver en el ejemplo a continuación map() recibe una función como parámetro para realizar alguna transformación sobre cada elemento y devuelve otro… Read More »

Java 8 Variable Scope en Lambda

Variable Scope en Lambdas El acceso a variables dentro de lambdas puede ser algo confuso, pero es sencillo si lo ves con un ejemplo. Observa este código en el cual accedemos a los parámetros “text” y “count” desde la expresión lambda. Cuando llamamos al método showText este ejecutará un nuevo hilo con la expresión lambda… Read More »

Java 8 Constructor por Referencia

Java Constructor por Referencia En Java 8 se han introducido importantes cambios como lambdas, interfaces funcionales y métodos por referencia. Veamos ahora cómo hacer uso de constructores por referencia. Si no has leido el articulo sobre métodos por referencia te recomiendo que le des un vistazo porque tiene mucho en común con el artículo a… Read More »

Java 8 Optional

Java 8 Optional Evitar los Nullpointer es uno de los problemas con los que habitualmente nos encontramos los programadores en Java. Continuamente realizamos operaciones para verificar que el valor no sea null o tener la precaución de devolver valores not null y a pesar de esto es habitual el fallo por los null pointer. Java… Read More »

Java 8 como usar fechas y horas con la api java.time

Java 8 nos trae al fin una nueva api para el manejo de fechas. Nos encontramos dentro del paquete java.time con nuevas clases para resolver los problemas con fechas como LocalDate, horas con LocalTime o la combinación de fecha y hora con LocalDateTime. También incluye como es debido dentro de esta api el uso de… Read More »

Java – como usar ExecutorService

Java ExecutorService ExecutorService nos simplifica las tareas asincronas proveyendo un pool de hilos que son manejados por esta API abstrayendonos del trabajo de crearlos y asignarles tareas a estos hilos. Utilizando la factory class Executors La forma más común para crear una instancia de ExecutorService es a través de la factory class Executors. Por ejemplo… Read More »

Go Tipos Básicos

Go Types – Go Tipos básicos ¿Cuáles son los tipos básicos definidos en Go? Go define diferentes tipos básicos entre los que puedes encontrar booleanos, string, numéricos enteros (con signo o sin signo), flotantes (números reales) y números complejos. Este recuadro te muestra los tipos básicos definidos en Go Los tipos int, uint y uintptr… Read More »

Go Errors

Go Errors ¿Cómo manejar los errores en Go? Go utilizar como concepto de error cualquier devolución a través de alguna implementación de la interfaz “error” provista por el lenguaje Para usar esta interfaz y devolver un error puedes utilizar una implementación ya provista por Go sobre esta interfaz haciendo uso de la función errors.New() del… Read More »

Go Punteros

Go Punteros (Pointers) ¿Qué son los punteros en Go? Un puntero es una referencia al valor almacenado en memoria. Para obtener la referencia al puntero del valor debes usar el símbolo “&” por delante y para obtener la desreferencia usas el símbolo “*” Por defecto Go envia los argumentos como valor, si deseas que los… Read More »

Go Interfaces

Go Interfaces ¿Qué son las interfaces en Go? En Go una Interface es un conjunto o colección de métodos que deberán ser implementados. Por ejemplo, suponemos que deseas una interfaz para figuras geométricas IShape que defina un método de cálculo del área para todos los tipos de figuras Ahora lo que haces es implementar esa… Read More »

Go conceptos básicos con ejemplos

Te explico los conceptos básicos de Go para iniciarte en este lenguaje. Go es un lenguaje simple de aprender, si ya conoces cualquier otro lenguaje en pocas horas puedes comprender su semántica.

Go Hola Mundo

¿Cómo escribir un hola mundo en Golang? En Go escribes un ‘hola mundo’ de este modo: -Los paquetes se definen en la primer línea como “package” -A continuación van los “import” -El ‘main’ del programa se inicia con func main() ¿Como ejecutar hello-world.go? ¿Cómo hacer un build de hello-world.go? …

Como instalar Go en Mac OS

Para instalar Golang en Mac OS sigue estos pasos: Descargar la versión de golang para Mac desde esta dirección: https://golang.org/dl/ Al finalizar la descarga, ejecuta el archivo pkg descargado. Sigue los pasos del instalador de go   Al finalizar la instalación go queda en la carpeta /usr/local/go Crea tu espacio de trabajo Go utiliza como… Read More »

Strategy Pattern con Spring Boot

Strategy Pattern con Spring Boot Un buen patrón para resolver la complejidad cuando debes implementar diferentes comportamientos según algún estado es el patrón strategy. Un patrón strategy encapsula comportamiento que podemos intercambiar en ejecución. Es decir, cambiar el comportamiento o lógica de negocio acorde al estado del modelo o contexto en el que te se… Read More »