General

Esta es la categoría general donde pongo los posts que no encajan con el resto de categorías. Y algunos posts, que aunque encajan en alguna otra categoría, también los he considerado de interés general en informática. Aquí puedes encontrar contenidos varios sobre utilidades como programas, sistemas operativos, herramientas de mantenimiento y cosas de este estilo que me han parecido interesantes.

Cómo mejorar la calidad del software con PHPSTAN

2022-11-20 - Categorías: General / PHP
Check quality with PHPSTAN

Siguiendo con posts anteriores sobre herramientas para medir y mejorar la calidad del software como PHP-CS-FIXER, PHPDEPEND, PHPLOC o PHPCPD, llegamos a otra gran herramienta que es PHPSTAN. Con esta herramienta podemos encontrar errores en la programación en PHP sin llegar a haber programado y ejecutado los tests de integración.

Es decir, esta herramienta llamada PHPSTAN:
https://phpstan.org/
..analiza el código fuente de forma estática, reportando en varios niveles de exigencia, errores en la programación con los que podemos ir mejorando todo, incluso sin tener tests programados.

Continuar leyendo..

Java Spring Boot & Angular: cómo automatizar la compilación de un proyecto para desplegar en un servidor

2022-07-25 - Categorías: Angular / General / Java / Java Spring Boot
Spring Boot Angular Maven

Dejo aquí este codekata o howto de copia y pega para montar la estructura de un proyecto general con Maven, usando Spring Boot en el backend y Angular en el frontend. La idea de este post es automatizar el despliegue en producción de este tipo de proyectos, cómo comenzar a montar el despliegue continuo.

En líneas generales, consite en compilar el micro-servicio Spring Boot embebiendo todo el frontend en Angular dentro del mismo empaquetado .jar. Con unas configuraciones en los ficheros POM de Maven, y en el JSON de configuración Angular, podemos automatizarlo.

Vamos al grano..

Continuar leyendo..


Controlando el acceso exclusivo a memoria compartida en Java

2022-06-19 - Categorías: General / Java

Este post es continuación de este otro sobre paralelizar procesos para acelerarlos usando memoria compartida. Quedó en el aire la sincronización de los procesos. Esto se puede hacer de varias formas, pero si simplemente queremos evitar que dos procesos escriban a la vez en la misma zona de memoria compartida, lo podemos implementar con la palabra reservada synchronized.

Si dos procesos no deben escribir a la vez en la memoria compartida y lo hacen, se perderá información, habrá malfuncionamiento del sistema completo.

Vamos al grano que es más fácil leer el código que explicarlo..

Continuar leyendo..

Acelerando, paralelizando, concurrencia, memoria compartida entre procesos en Java

2022-06-19 - Categorías: General / Java

Hoy traigo otro codekata, un howto o resumen sobre Java, y el manejo de procesos. Se trata de un tema recurrente, para acelerar procesos paralelizándolos y coordinándolos entre sí. Este post se centra en cómo usar una memoria compartida, entre 30 procesos en paralelo, que van escribiendo información en dicha memoria compartida.

En Java se facilita mucho todo esto, tiene funcionalidades que ayudan como por ejemplo: la clase Thread, los parámetros por referencia, la palabra reservada synchronized, o el manejo de hilos en núcleos diferentes del procesador de forma transparente para el programador gracias al JRE.

Resumiendo, esto es un esqueleto para tratar de multiplicar x30 la velocidad de un programa, usando procesos concurrentes, y compartiendo los resultados en memoria.

A grano..

Continuar leyendo..



Java Spring Boot: empezando con JPA Hibernate y Mariadb

2022-04-30 - Categorías: General / Java / Java Spring Boot
Spring-boot

Este post es un codekata en Java usando el ORM Hibernate junto con Spring Boot. Spring Boot es una tecnología de desarrollo para Java que tenemos disponible en Spring, que orienta un proyecto a crear microservicios y se facilita mucho la programación.

Por otro lado, con Hibernate tenemos un ORM, en el que la creación de bases de datos, su manteniento y trabajo diario se facilita. Se puede llegar a mantener un proyecto con Hibernate sin tener que picar ninguna línea de código SQL. Esto facilita de nuevo mucho la programación.

Este post sirve de codekata de copia y pega para el caso de Mysql/Mariadb/Oracle, etc..

¡Vamos al grano con el codekata!

Continuar leyendo..

Java Spring Boot: montando un productor y consumidor de Kafka

2022-04-27 - Categorías: General / Java / Java Spring Boot
Spring-boot

Esto es un codekata en Java con el framework de desarrollo Spring, en concreto usando la tecnología Spring Boot, para usar Apache Kafka.

Con Spring Boot conseguimos que el proyecto esté orientado a ser un microservicio, teniendo el servidor web Tomcat embebido. Por otro lado, mediante Kafka podemos dividir las aplicaciones en microservicios, comunicarnos entre sistemas con mensajes, convertir en asíncronos procesos pesados para recibir altos picos de peticiones procesando en background después, etcétera.. ¡vamos al grano!

Continuar leyendo..

Cómo implementar una Arquitectura Hexagonal con Symfony Flex (editado)

2022-04-12 - Categorías: General / PHP / Symfony
Symfony Hexagonal

Este es un codekata en PHP con Symfony Flex para montar una estructura usando Arquitectura Hexagonal, en unos minutos, para un proyecto nuevo.

Symfony tiene su propia estructura por defecto, nos invita a seguir una serie de directorios en donde se guardan los controladores, repositorios, entidades, etc.. Esto esta muy bien, puede parecer que nos cierra a dicha estructura, pero nada más lejos de la realidad. Igual que en cualquier otro proyecto en puro PHP, con Symfony se puede estructurar todo como queramos.

Continuar leyendo..

PHP: implementando el patrón de diseño Command/Commando

2022-02-27 - Categorías: General / PHP

Continuando con el repaso a los patrones del diseño del software, llegamos al Command o Comando. También es llamado el patrón Action o Transaction. Permite encapsular acciones en objetos programados, de forma que facilita el mantenimiento y ampliación de la aplicación que tengamos entre manos.

Esto facilita el uso de colas, la ejecución en background, mantenimiento de estados, tener históricos, poder revertir cambios, etc.. desacoplando interfaces, puertos, clientes, controladores, etc.. del resto de la aplicación, haciendo independiente la forma de ejecución de todas estas acciones de la forma en que se lancen.

Es decir, si independizamos las acciones en comandos, nos dará igual si luego se llaman desde interfaces gráficas, una o varias, desde línea de comandos, peticiones en una API RESTful, etcétera.

Continuar leyendo..

El ABC con Spring Boot

2022-02-23 - Categorías: General / GNU/Linux / Java
Spring-boot

Pequeño howto o codekata para empezar rápido con Spring Boot en local. En este post vemos el SDK Man! que facilita mucho el trabajo. Es la herramienta que se recomienda desde la documentación oficial de Spring, es para entornos basados en UNIX, como GNU/Linux, Mac.. Se puede instalar siguiendo las instrucciones desde https://sdkman.io/. Podemos ejecutar el instalador con:

Continuar leyendo..

© 2022 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.