Sunday, March 26, 2023
Saturday, March 25, 2023
Friday, March 24, 2023
Open–closed principle (OCP)
Sobre el principio
Ejemplo del uso del OCP
En resumen...
Wednesday, March 15, 2023
Control de versiones
¿Qué es un sistema de control de versiones?
Un sistema de control de versiones (VCS) es una herramienta que permite a los desarrolladores rastrear y administrar los cambios realizados en el código fuente de un proyecto de software a lo largo del tiempo.
Revisando la historia, el primer sistema de control de versiones (VCS) fue SCCS (Source Code Control System), creado por Marc Rochkind en los laboratorios Bell de AT&T en la década de 1970. SCCS permitía a los desarrolladores guardar y recuperar versiones anteriores del código fuente, y también permitía a varios desarrolladores trabajar en el mismo código fuente sin sobrescribir los cambios de los demás. SCCS se convirtió en una herramienta muy popular en los años 80, pero fue reemplazado por CVS (Concurrent Versions System) a mediados de la década de 1990. A partir de ahí, se han desarrollado muchos otros sistemas de control de versiones, como Subversion, Git y Mercurial, cada uno con sus propias ventajas y desventajas.
Sistemas de control de versiones más populares
Los sistemas de control de versiones más populares en el mercado son:
- Git: Es un sistema de control de versiones distribuido, rápido y escalable. Es el más utilizado por la comunidad de desarrolladores en todo el mundo.
- Subversion (SVN): Es un sistema de control de versiones centralizado, utilizado ampliamente en proyectos de código abierto. Aunque ya no es tan popular como Git, sigue siendo utilizado por algunas empresas y organizaciones.
- Mercurial: Es un sistema de control de versiones distribuido, similar a Git. Aunque no es tan popular como Git, es utilizado por algunos desarrolladores y empresas.
- Perforce: Es un sistema de control de versiones centralizado, utilizado principalmente en la industria de los videojuegos y la animación.
- CVS (Concurrent Versions System): Fue uno de los sistemas de control de versiones más populares en los años 90 y principios de los 2000. Aunque ha sido reemplazado en gran medida por Git y SVN, todavía hay algunos proyectos que lo utilizan.
¿Qué información podemos obtener de un sistema de control de versiones?
Un buen sistema de control de versiones permite responder la siguientes preguntas:
- ¿Quién ha hecho cambios en esta línea de código?
- ¿Cuál es la diferencia entre la versión actual y la de la semana pasada?
- ¿Cuántas líneas de código hemos cambiado en este release?
- ¿Qué archivos hemos cambiado con mayor frecuencia?
Flujos de trabajo
- GitFlow: Un flujo de trabajo basado en Git que utiliza ramas para gestionar el ciclo de vida del software, incluyendo características, versiones y correcciones de errores.
- GitHub Flow: Un flujo de trabajo simplificado que utiliza ramas para nuevas características y correcciones de errores, y utiliza pull requests para revisión y aprobación antes de fusionar los cambios en la rama principal.
- Centralized Workflow: Un flujo de trabajo centralizado donde todos los desarrolladores colaboran en una rama principal, lo que facilita el control de versiones y la gestión del código fuente.
- Feature Branch Workflow: Un flujo de trabajo basado en ramas, donde cada nueva característica o corrección de errores se implementa en una rama separada, antes de fusionar los cambios en la rama principal.
- Release Flow: Un flujo de trabajo que se enfoca en la gestión de versiones, donde se crean ramas separadas para cada versión del software, lo que permite la implementación de correcciones de errores y la adición de nuevas características sin afectar la versión actual.
- Trunk-Based Development: Donde todos los desarrolladores trabajan en la misma rama principal, y los cambios se integran continuamente. Este enfoque es adecuado para proyectos pequeños y medianos con entregas rápidas y frecuentes.
En resumen
Tuesday, March 14, 2023
Get SQL Server Database Size, Location for all Databases
SELECT
DB_NAME(database_id)
AS
[
Database
Name
],
Name
AS
[Logical
Name
],
Physical_Name
AS
[Physical
Name
],
(
size
*8)/1024
AS
[
Size
- MB]
FROM
sys.master_files
WHERE
database_id > 4
If you want to combine Data File & Log File Size:
SELECT
DB_NAME(database_id)
AS
[
Database
Name
],
SUM
((
size
*8)/1024) [
Size
- MB]
FROM
sys.master_files
WHERE
database_id > 4
group
by
DB_NAME(database_id)
order
by
DB_NAME(database_id)
API Gateway with ASP.NET Core
Grandes preguntas: ¿Repites mucho código en cada nuevo microservicio? ¿Haces que tus frontends llamen múltiples endpoints para obtener lo qu...
-
Es hora de aprender seriamente DevOps ¿Porqué? Así es. Es necesario empezar por el porqué. Descubrir el propósito, hallar la motivación que...
-
Grandes preguntas: ¿Repites mucho código en cada nuevo microservicio? ¿Haces que tus frontends llamen múltiples endpoints para obtener lo qu...
-
Hace poco, tuve una charla amena y extendida con un amigo que trabaja como líder técnico de un grupo de cinco personas en una consultora de ...