ESTRUCTURA DE DATOS: FUNCIONES PARA VECTORES

Cuando hablamos de estructuras de datos, es importante que conozcamos algunas funciones ya establecidas por librerías del mismo lenguaje de programación; en este caso enfocándonos a C++ ya que es el lenguaje que estamos usando para estos ejemplos. Estas funciones nos puedan facilitar el trabajo en la interacción con ciertas estructuras, como por ejemplo los vectores, donde veremos algunas funciones útiles para el manejo de estos. Si bien aquí no mostraremos la totalidad de funciones que puedan servirnos, al menos veremos las más comunmente usadas.

[ESTRUCTURA DE DATOS] ESTRUCTURA DE DATOS:  FUNCIONES PARA VECTORES

NORMALIZACIÓN VS DESNORMALIZACIÓN

La normalización y la desnormalización son dos caras de la misma moneda en el diseño de bases de datos: mientras la normalización busca orden, precisión y mínima redundancia dividiendo los datos cuidadosamente, la desnormalización acelera las lecturas duplicando información para ganar velocidad. Lejos de ser opuestas, ambas técnicas pueden convivir en un sistema bien diseñado, donde se equilibra la integridad de los datos con el rendimiento según las necesidades del proyecto.  

[BASE DE DATOS] NORMALIZACIÓN VS DESNORMALIZACIÓN

BUENAS PRÁCTICAS PARA REALIZAR COMMITS EN GIT

Git se ha consolidado como la herramienta de control de versiones por excelencia en el desarrollo de software. Sin embargo, su efectividad no depende únicamente del uso de comandos, sino también de las buenas prácticas asociadas a su uso, entre las cuales se encuentra la redacción de mensajes de commit. Un mensaje de commit bien redactado permite comprender con claridad qué cambios se han realizado, por qué se han hecho y cómo afectan al proyecto.

[SISTEMA DE CONTROL DE VERSIONES] BUENAS PRÁCTICAS PARA REALIZAR COMMITS EN GIT

ESTRUCTURA DE DATOS: MATRICES EN C++

Las matrices en C++, son vectores bidimensionales, aunque no necesariamente limitándose a esto, ya que pueden existir matrices de más dimensiones, sin embargo, no confundir con las reglas del álgebra linea donde las matrices solo pueden ser de 2 dimensiones, por tal motivo, entedamos que aquí estamos tratando el tema de las matrices desde un contexto de programación.

[ESTRUCTURA DE DATOS] ESTRUCTURA DE DATOS: MATRICES EN C++

SEGURIDAD EN BASES DE DATOS

La seguridad en bases de datos va más allá de los backups. Es clave controlar accesos, cifrar los datos y monitorear la actividad para prevenir robos o manipulaciones. También es necesario cumplir con normativas legales para evitar sanciones. Proteger la información es proteger la confianza y el futuro del sistema, evitando accesos no autorizados, mediante estrategias de seguridad y/o resguardo de la información.

[BASE DE DATOS] SEGURIDAD EN BASES DE DATOS

PRINCIPIOS DE DESARROLLO DE SOFTWARE SOLID

SOLID es un conjunto de cinco principios de diseño en programación orientada a objetos que mejoran la modularidad, escalabilidad y mantenimiento del código. Estos principios son, responsabilidad única, abierto/cerrado, sustitución de Liskov, segregación de interfaces e inversión de dependencias. Permitiendo crear software flexible, estructurado y preparado para cambios sin comprometer su estabilidad.

[INGENIERÍA DE SOFTWARE] PRINCIPIOS DE DESARROLLO DE SOFTWARE SOLID

DESARROLLO DE SOFTWARE I: PATRÓN DE DISEÑO MVC EN UNA APLICACIÓN DE JAVA SWING

Visto previamente los patrones de diseño y de arquitecturas de software, ahora veamos como debería estructurarse un proyecto de Java Swing, respetando el Modelo Vista Controlador (MVC). En este post se explicará brevemente la manera en que se debería estructurar un proyecto de Java haciendo uso de su librería de interfaces Swing, respetando 3 capas base, así como complementando con subcapas adicionales para el acceso a datos (DAO "Objeto de Acceso a Datos") y otros aspectos que puedan ser necesarios para este caso.

[DESARROLLO DE SOFTWARE I] DESARROLLO DE SOFTWARE I: PATRÓN DE DISEÑO MVC EN UNA APLICACIÓN DE JAVA SWING

BASE DE DATOS ORIENTADA A GRAFOS

Las bases de datos orientadas a grafos permiten representar y consultar datos con múltiples relaciones de forma natural y eficiente. Utilizan nodos y aristas para modelar conexiones complejas, lo que las hace ideales para aplicaciones como redes sociales, sistemas de recomendación o detección de fraudes. Destacan por su flexibilidad, buen rendimiento en consultas profundas y capacidad para escalar. Son una herramienta clave en un mundo donde entender las relaciones es tan importante como los datos en sí.

[BASE DE DATOS] BASE DE DATOS ORIENTADA A GRAFOS

ESTRUCTURA DE DATOS: MÉTODOS DE ORDENAMIENTO EN C++

Los métodos de ordenamiento en el contexto de programación, son algoritmos que permiten ordenar datos de acuerdo a la necesidad en la que se quiera mostrar dichos datos, sea de manera ascendente o descendente. En cada caso se pueden aplicar diferentes algoritmos como los de bubble sort, selection sort, insertion sort, shell sort, shake sort y qick sort; claro que pueden existir otro más, sin embargo, en este post veremos cada uno de los mencionados, de forma breve.

[ESTRUCTURA DE DATOS] ESTRUCTURA DE DATOS: MÉTODOS DE ORDENAMIENTO EN C++

DESARROLLO DE SOFTWARE I: ARQUITECTURAS SOA, MSA Y MICROFRONTEND

En este post trataremos brevemente varias arquitecturas de software, lo juntamos en un solo post, por tener muchas similitudes, y, a su vez, por inspirarse unas en otras; siendo que SOA es el predecesor de MSA y MSA es la inspiración para haber surgido los Microfrontend. Todas estas arquitecturas, aunque ya tienen tiempo, recientemente se van adoptando en las empresas, por tanto, veremos y entenderemos sus fundamentos conceptuales.

[DESARROLLO DE SOFTWARE I] DESARROLLO DE SOFTWARE I: ARQUITECTURAS SOA, MSA Y MICROFRONTEND

DESARROLLO DE SOFTWARE I: PATRÓN DE DISEÑO GUIADO POR EL DOMINIO (DDD)

El patron de Diseño Guiado por el Dominio (DDD), y, específicamente para esta publicación, considerando su implementación en N capas, es un patrón de desarrollo de software donde se tiene la filosofía de que toda la lógica de la aplicación recaiga en el negocio, en este sentido, se debe estructurar un proyecto, con una o un conjunto de clases que gestionen toda esta lógica, por lo tanto, hay que abstraer cuidadosamente la parte lógica, de la parte visual, así como los datos, el acceso a datos, el repositorio de datos y demás capas.

[DESARROLLO DE SOFTWARE I] DESARROLLO DE SOFTWARE I: PATRÓN DE DISEÑO GUIADO POR EL DOMINIO (DDD)

DESARROLLO DE SOFTWARE I: PATRÓN DE DISEÑO MODELO VISTA CONTROLADOR (MVC)

El patrón de diseño de software Modelo Vista Controlar o simplemente MVC, es un patrón que se divide como base en 3 capas, de tal manera que una se encarga de la exposición de datos a los clientes, una segunda capa se encargará de la parte lógica de la aplicación y la tercera tendrá el rol de reflejar los datos de la base de datos. Esto no quiere decir que se limite a una implementación de 3 capas en su totalidad, sino que puede extenderse a más sub capas, entonces, veamos de que puede tratar todo esto.

[DESARROLLO DE SOFTWARE I] DESARROLLO DE SOFTWARE I: PATRÓN DE DISEÑO MODELO VISTA CONTROLADOR (MVC)

ESTRUCTURA DE DATOS: ARREGLOS EN C++

En este post veremos lo que son los arreglos bajo la perspectiva de una estructura de datos, siendo que estos son estructuras líneas. Empezaremos con unos ejemplos simples y serán seguidos por otros post donde detallaremos y trataremos de abarcar los temas fundamentales de estructuras de datos en C++. En este caso en particular, veremos más que desde la base, un repaso de lo que son los arreglos, debido a que esto sería más de la parte de fundamentos de la programación.

[ESTRUCTURA DE DATOS] ESTRUCTURA DE DATOS: ARREGLOS EN C++

¿QUÉ ES JWT?

JWT, o JSON Web Token, es un estándar abierto utilizado para transmitir información de forma segura y compacta entre dos partes. Su uso principal es en autenticación y autorización, gracias a su estructura que combina encabezado, carga útil y firma digital. Actualmente es una solución ampliamente adoptada en APIs, aplicaciones web y sistemas distribuidos, por su capacidad de validar identidades sin mantener sesiones en el servidor.

[OTROS] ¿QUÉ ES JWT?

BASES DE DATOS DISTRIBUIDAS

Las bases de datos distribuidas permiten almacenar datos en múltiples servidores geográficamente dispersos, mejorando la escalabilidad y la disponibilidad. Usan técnicas como particionado y replicación para gestionar grandes volúmenes de información. Aunque ofrecen ventajas, como una mayor tolerancia a fallos, enfrentan desafíos como la latencia y la consistencia eventual.

[BASE DE DATOS] BASES DE DATOS DISTRIBUIDAS