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

martes, 21 de julio de 2026

100 términos clave que abarcan todo el ciclo de vida del software

Aquí tienes una lista extendida y bien estructurada con 100 términos clave que abarcan todo el ciclo de vida del software, la gestión de proyectos, la infraestructura y las metodologías de desarrollo

Está pensada para que manejes el lenguaje técnico con total soltura tanto con desarrolladores como con clientes o entrevistadores.


1. Fundamentos de Programación y Paradigmas

Código fuente (Source Code): El conjunto de instrucciones escritas en un lenguaje de programación entendible por humanos.

Sintaxis: El conjunto de reglas gramaticales que definen cómo se debe escribir el código en un lenguaje determinado.

Variable: Un espacio reservado en memoria para almacenar un dato que puede cambiar durante la ejecución.

Constante: Un valor asignado que no cambia a lo largo de la ejecución del programa.

Algoritmo: Una secuencia finita y ordenada de pasos lógicos para resolver un problema o realizar una tarea.

Función / Método: Un bloque de código reutilizable diseñado para realizar una tarea específica.

Parámetro / Argumento: Valores que se le pasan a una función para que procese su lógica.

POO (Programación Orientada a Objetos): Paradigma basado en "objetos" que contienen datos (atributos) y código (métodos).

Clase: La plantilla o molde a partir del cual se crean los objetos en POO.

Instancia: El objeto concreto creado a partir de una clase.

Herencia: Capacidad de una clase de derivar propiedades y comportamientos de otra clase padre.

Polimorfismo: Capacidad de diferentes clases de responder al mismo mensaje o método de formas distintas.

Encapsulamiento: Ocultar los detalles internos de un objeto y exponer solo lo necesario hacia afuera.

Asincronía (Async/Await): Ejecución de tareas en segundo plano sin bloquear el flujo principal de la aplicación.

Callback: Función que se pasa como argumento a otra función para ser ejecutada cuando finalice una tarea.

Promesa (Promise): Un objeto que representa el resultado futuro de una operación asíncrona (éxito o fallo).

Recursividad: Una función que se llama a sí misma para resolver un problema dividiéndolo en casos más pequeños.

Compilador: Programa que traduce código fuente a lenguaje máquina antes de ejecutarlo.

Intérprete: Programa que lee y ejecuta el código línea por línea en tiempo real.

Librería (Library): Colección de código predefinido que el desarrollador llama cuando lo necesita.

Framework: Estructura o marco de trabajo que impone reglas sobre cómo organizar y construir la aplicación.


2. Desarrollo Frontend e Interfaz de Usuario

Frontend: La parte visible e interactiva de una aplicación web o móvil con la que interactúa el usuario.

UI (User Interface): Diseño visual de botones, pantallas, tipografías y elementos gráficos de la aplicación.

UX (User Experience): La experiencia, facilidad de uso y nivel de satisfacción del usuario al interactuar con el sistema.

Responsive Design: Diseño adaptativo que permite que una web se vea bien en celulares, tabletas y computadores.

DOM (Document Object Model): Representación en árbol de los elementos de una página web que el navegador procesa.

SPA (Single Page Application): Aplicación web que carga una sola página y actualiza el contenido dinámicamente sin recargar la pantalla.

SSR (Server-Side Rendering): Renderizado de la página web en el servidor antes de enviarla al navegador (mejora el SEO).

CSR (Client-Side Rendering): El navegador del usuario descarga el código JavaScript y construye la interfaz localmente.

Estado (State): Datos guardados en memoria que determinan cómo se debe ver y comportar la interfaz en un momento dado.

Componente: Pieza de interfaz independiente, modular y reutilizable (ej. un botón, un menú, un formulario).

CSS Grid / Flexbox: Herramientas de maquetación CSS para organizar elementos en filas y columnas de forma flexible.

Preprocesador CSS (ej. Sass): Herramienta que extiende CSS permitiendo variables, anidamiento y funciones avanzadas.

PWA (Progressive Web App): Aplicación web que ofrece una experiencia similar a una app nativa móvil (funciona offline, notificaciones push).

Hydration (Hidratación): Proceso en SSR donde el JavaScript se vincula al HTML estático enviado por el servidor para hacerlo interactivo.


3. Desarrollo Backend y APIs

Backend: La lógica del servidor, manejo de datos, seguridad y procesamiento detrás de escena.

API (Application Programming Interface): Interfaz que permite la comunicación entre dos sistemas o aplicaciones.

REST / RESTful: Estilo arquitectónico común para APIs web que utiliza métodos HTTP estándar.

Endpoint: La URL o ruta específica donde se realiza una petición a la API (ej. /api/v1/users).

Payload: Los datos útiles o cuerpo de la información enviada dentro de una petición HTTP.

Petición HTTP (Request): Mensaje enviado por el cliente al servidor solicitando un recurso o acción.

Respuesta HTTP (Response): Datos y estado que el servidor devuelve al cliente tras procesar la petición.

Códigos de Estado HTTP:


200 OK: Petición exitosa.


400 Bad Request: Error en los datos enviados por el cliente.


401 Unauthorized: No autenticado / requiere inicio de sesión.


403 Forbidden: No se tienen permisos para acceder a este recurso.


404 Not Found: El recurso solicitado no existe.


500 Internal Server Error: Ocurrió un fallo en el servidor.

GraphQL: Lenguaje de consultas para APIs que permite pedir exactamente los datos necesarios, ni más ni menos.

WebSocket: Protocolo de comunicación bidireccional en tiempo real entre cliente y servidor (ej. chats).

Middleware: Software intermedio que procesa o valida peticiones antes de llegar a la lógica final (ej. verificar un token).

Autenticación (Authn): Proceso de verificar la identidad de un usuario (¿quién eres?).

Autorización (Authz): Proceso de verificar qué permisos tiene un usuario (¿qué puedes hacer?).

JWT (JSON Web Token): Formato compacto y seguro para transmitir información autenticada entre partes.

OAuth: Protocolo estándar que permite autorizar el acceso seguro sin compartir credenciales (ej. "Iniciar sesión con Google").

Rate Limiting: Control que limita cuántas peticiones puede hacer un usuario en un período de tiempo para prevenir abusos.

CORS (Cross-Origin Resource Sharing): Mecanismo de seguridad del navegador que restringe las peticiones HTTP entre distintos dominios.


4. Bases de Datos y Gestión de Información

Base de Datos Relacional (SQL): Almacenamiento estructurado en tablas con filas y columnas vinculadas por claves (ej. PostgreSQL, MySQL).

Base de Datos No Relacional (NoSQL): Almacenamiento flexible sin esquemas rígidos, basado en documentos, grafos o clave-valor (ej. MongoDB, Redis).

ORM (Object-Relational Mapping): Herramienta que mapea las tablas de la BD a objetos del código.

Migración: Script que registra y ejecuta cambios en la estructura de la base de datos de manera controlada.

Índice: Estructura en la BD que acelera drásticamente las búsquedas de información a costa de espacio extra.

Query (Consulta): Solicitud formal de lectura, inserción, actualización o borrado de datos.

CRUD: Acrónimo de las 4 operaciones básicas en datos: Create, Read, Update, Delete.

Transacción (ACID): Grupo de operaciones en la BD que se ejecutan como un solo bloque: o se cumplen todas o ninguna se guarda.

Cache / Caching: Almacenamiento de datos temporales en memoria ultrarrápida (como Redis) para evitar consultas repetitivas a la BD.


5. Arquitectura, Infraestructura y Nube

Monolito: Arquitectura donde toda la lógica, la interfaz y el servidor están integrados en un solo proyecto de código.

Microservicios: Arquitectura donde la aplicación se divide en pequeños servicios independientes comunicados por red.

Serverless: Modelo de nube donde el proveedor gestiona los servidores dinámicamente y solo se paga por el tiempo de ejecución del código.

Docker: Plataforma de contenedorización para empaquetar aplicaciones con sus dependencias exactas.

Contenedor: Entorno aislado y liviano donde corre una aplicación sin importar el sistema operativo anfitrión.

Kubernetes (K8s): Sistema de orquestación para automatizar el despliegue, escalado y gestión de contenedores.

Servidor Web (ej. Nginx, Apache): Software que escucha peticiones HTTP entrantes y entrega sitios web o enruta tráfico a las APIs.

Proxy Inverso: Servidor intermedio que recibe tráfico externo y lo distribuye eficientemente entre servidores internos.

Balanceador de Cargas (Load Balancer): Dispositivo o software que distribuye el tráfico entre varios servidores para evitar colapsos.

DNS (Domain Name System): Sistema que traduce nombres de dominio entendibles (empresa.com) en direcciones IP (192.0.2.1).

Escalabilidad Horizontal: Añadir más máquinas o servidores al sistema para soportar mayor carga.

Escalabilidad Vertical: Añadir más potencia (CPU, RAM) a una misma máquina existente.

Entornos (Environments):

Local: La computadora del desarrollador.

Staging / QA: Servidor idéntico a producción donde se realizan pruebas internas.

Producción (Prod): El entorno en vivo donde interactúan los usuarios finales.


6. DevOps, Git y Metodologías de Trabajo

Git: Sistema distribuido de control de versiones de código.

Repositorio (Repo): Espacio digital donde se guarda todo el código, archivos e historial de cambios de un proyecto.

Rama (Branch): Línea independiente de desarrollo dentro de Git para trabajar en funciones sin alterar la rama principal (main / master).

Merge: Acción de fusionar los cambios de una rama secundaria a la rama principal.

Pull Request (PR) / Merge Request: Propuesta de cambios en el código enviada para ser revisada antes de integrarla al proyecto.

Conflict (Conflicto de Git): Ocurre cuando dos desarrolladores modifican las mismas líneas de un archivo y Git requiere resolución manual.

CI/CD (Continuous Integration / Continuous Deployment): Automatización del proceso de pruebas, compilación y despliegue del software.

Despliegue (Deploy): El acto de publicar una versión del código en un servidor para que sea accesible por los usuarios.

Rollback: Restaurar la aplicación a una versión anterior estable después de que un despliegue falle.

Refactorización: Reescribir código existente para hacerlo más limpio y eficiente sin cambiar lo que hace externamente.

Deuda Técnica (Technical Debt): El costo acumulado de elegir soluciones rápidas e imperfectas hoy, lo que dificulta el desarrollo futuro.

Agile (Agilidad): Filosofía de desarrollo basada en iteraciones rápidas, adaptación al cambio y colaboraciones constantes.

Scrum: Marco de trabajo ágil basado en entregas periódicas organizadas por ciclos fijos.

Sprint: Periodo de tiempo fijo (usualmente 1 a 4 semanas) en el que el equipo completa un bloque de trabajo acordado.

Backlog: Lista priorizada de tareas, mejoras o errores pendientes de desarrollo en un proyecto.

Kamban: Sistema visual de gestión de trabajo organizado en columnas de estado (ej. Por hacer, En progreso, Completado).


7. Pruebas, Calidad y Seguridad

Bug: Error, fallo o defecto en el software que produce un resultado inesperado.

Unit Test (Prueba Unitaria): Evaluación que verifica el correcto funcionamiento de un bloque pequeño e aislado de código (ej. una función).

Integration Test (Prueba de Integración): Evaluación que verifica que varios módulos o servicios funcionen correctamente al trabajar juntos.

E2E Test (End-to-End): Prueba que simula el flujo completo de un usuario real en la aplicación, desde la interfaz hasta la BD.

QA (Quality Assurance): Área o procesos enfocados en asegurar que el producto cumpla con los estándares de calidad antes de salir a la luz.

Inyección SQL: Vulnerabilidad de seguridad donde un atacante inserta código SQL malicioso en un formulario para manipular la BD.

XSS (Cross-Site Scripting): Vulnerabilidad que permite a un atacante inyectar código JavaScript malicioso en las páginas que ven otros usuarios.

Webhooks: Mecanismo de notificaciones en tiempo real donde un sistema envía datos a otro vía HTTP tan pronto ocurre un evento.

SDK (Software Development Kit): Conjunto de herramientas, documentación y librerías facilitadas para construir apps en una plataforma específica.

Logs / Logging: Registros detallados guardados en texto sobre los eventos, errores o actividad que ocurren en el servidor en tiempo real. 

domingo, 22 de septiembre de 2024

Conoce los 10 PRINCIPIOS para programar mejor


1 - KISS: Mantenlo simple, estúpido
2 - DRY: No te repitas a ti mismo
3 - Si no está roto, no lo arregles
4 - Composición sobre Herencia
5 - SRP: Principio de Responsabilidad Única
6 - SoC: Separación de Preocupaciones
7 - YAGNI: No lo vas a necesitar
8 - Escribe para el mantenedor y Ley de Curly
9 - Evitar optimización prematura
10 - Documentación

miércoles, 8 de abril de 2020

Cómo obtener la fecha en español, con el formato nombre del mes dia y año

Es normal que en una página web queramos imprimir la fecha mostrando el nombre del mes, por que normalmente lo que hacemos es imprimir una fecha estilo 3/04/2020  y no es lo ideal, ya que para visualizar eventos en un programa, blogs, entre otros el formato ideal es tener el nombre del mes y en español, ya que por defecto en Mysql aparece la fecha en formato us.

El siguiente código fue implementado dentro de PHP y se puede implementar para sus programas:


$res=mysqli_query($enlace,"SET lc_time_names = 'es_ES';");
$res=mysqli_query($enlace,"SELECT id,titulo,DATE_FORMAT(fecha,'%M %d %Y') as fecha FROM blog order by id desc limit 3 ");

martes, 7 de abril de 2020

Cómo insertar un texto en css en la posición que deseamos

Con text indent establecemos la sangría que queremos en el texto

.texto{
 text-indent:0px;
   margin-left: 75px;

}

lunes, 30 de marzo de 2020

Cómo borrar un archivo subido en base de datos

Para eliminar un archivo cargado en un servidor debemos ingresar el siguiente código en nuestro programa:

  // Procedemos a borrar
     if (!unlink('uploads/'.$archivo)) {
          // impirmimos error al borrar
          echo 'Error al borrar';
     } else {
          // Archivo borrado
          echo 'Archivo borrado';
     }
 

miércoles, 25 de marzo de 2020

Cómo aumentar tamaño a la letra y espacio entre lineas en CSS

Estas dos líneas de código nos sirven de referencia para aplicar a nuestra página web y crear textos mas grnades, los cuales se debe tener en cuenta que a mayor tamaño en el font size, mayor line-height debe haber para mejor visualización. Tener en cuenta el tema responsive en este caso.

font-size: 20px; line-height: 40px;

martes, 24 de marzo de 2020

Cómo hacer botones responsive para tu web con desplazamiento horizontal

Cuando desarrollamos un sitio web es normal que para algunas funciones tengamos varios botones y en este caso es importante tener en cuenta la visualización responsive, ya que puede ser muy molesto para los usuarios entrar por celular a una página web que se vean muchos botones hacia abajo, lo cual podría generar que estas personas dejen de entrar al sitio solo pro el hecho de que nuestra web no tiene buena experiencia de usuario. Para esto haremos lo siguiente

Dentro del código css  añadiremos estas dos líneas de código. No olvidar darle un nombre class al div para poder que el css tome el valor. Aquí veremos un ejemplo:

.resp{

Overflow:auto;
White-Space:nowrap;
}

domingo, 22 de marzo de 2020

Cómo enviar una variable eliminando los últimos caracteres

En php es normal que necesitemos imprimir un valor de una cadena eliminando caracteres de un valor que no queramos mostrar y para esto debemos hacer lo siguiente:

<?php
   $rest 
substr("camisa"0, -1);  // devuelve "camis"

   $rest substr("camisa"2, -1);  // devuelve "mis"
   $rest substr("camisa"4, -4);  // devuelve false
   $rest substr("camisa", -3, -1); // devuelve "is"
?>

Código basado en https://www.php.net/manual/es/function.substr.php

Cómo crear un árbol de navegación para tu sitio web

Para realizar un árbol de navegación hay que realizar lo siguiente:


Creamos un programa php en donde crearemos uba variable, la cual vamos a imprimir
 para obtener de la base de datos la ruta de navegación. Por ejemplo Inicio/quienes somos


  <?php

        $s=$_SERVER['SCRIPT_NAME'];
         print('<p><a href="index.php">Inicio</a>'.$s.'</p>');

?>

Como imprimir el nombre de mes en español para una página web

Para imprimir el nombre en español de un número de mes hay que hacer lo siguiente

 setlocale(LC_TIME, 'es_ES.UTF-8');
        $numero =3;
        $fecha = DateTime::createFromFormat('!m', $numero);
        $mes = strftime("%B", $fecha->getTimestamp());
         print($mes);


jueves, 19 de marzo de 2020

Cómo arreglar el problema de tildes al mostrar un contenido en tu web con Mysqli

Es normal que cuando estamos empezando a programar, subimos contenidos desde formularios y desde bases de datos. El problema es que algunas veces vemos que no configuramos apropiadamente las tíldes para que nuestra web las reconozca. La solución es la siguiente:

$conexion = mysql_connect($host,$user,$pass);
mysqli_set_charset($conexion, 'utf8'); 

miércoles, 4 de marzo de 2020

Como proteger tu web de SQL injection con Mysqli

Para mejorar la seguridad de tu sitio web, es recomendable tener prioridad en revisar las consultas sql, las cuales son vunerables en el momento de crear una web y eslo lo podemos hacer por PDO o por Mysqli, dependiendo de cual versión usamos en PHP. Lo más recomendable es dejar de usar Mysql ya que está en este momento obsoleto y ya no es tan seguro. Es necesario migrar a Mysqli.  A continuación podemos ver un ejemplo para que puedan ejecutar en localhost:

<?php
try {
    $conn = new mysqli('localhost', 'root', '','bd');

    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
    //MySQLi,
  class Usuario {
  public $id;
  public $fecha;
  public $titulo;

  public function info(){
//devolvemos resultados de estos campos de la tabla
    return '#' . $this->id . ': ' . $this->fecha . ' ' . $this->titulo;
  }
}
    $query = "SELECT * FROM tabla";
if ($result = $con->query($query)) {
  while ($user = $result->fetch_object('Usuario')) {
    echo $user->info() . "\n";
  }
}
// mysqli,
$query = $con->prepare('SELECT * FROM tabla WHERE id = ?');
$query->bind_param('s', $_GET['id']);
$query->execute();
 $result = $query->get_result();
    while ($row = $result->fetch_assoc()){
       //aquí se imprime los resultados de los campos seleccionados
    }
?>

Recomiendo visitar el artículo https://cursos.mejorcodigo.net/article/pdo-vs-mysqli-cuales-son-las-diferencias-37 en donde se aprendió a realizar este tipo de código para mejorar la seguridad en nuestras páginas web.

Enlace Relacionado

domingo, 1 de marzo de 2020

Cómo imprimir los primeros caracteres de una cadena en Php

Creamos una función conocida como subst de 0 al número que deseamos poner límite.

$string= substr($string, 0, 100);

Luego de crear la función la ejecutamos para verificar que funciona correctamente imprimiendo un texto en el programa. 

echo $string

Recomiendo ingresar a Cómo usar PHP para desarrollar una web o software para conocer más sobre este lenguaje de programación.

lunes, 28 de octubre de 2019

Cómo usar PHP para desarrollar una web o software

Qué es Php?

El Procesador de Hipertexto es uno de los Lenguajes de código abierto más populares para programar, el cual puede ser incrustado en HTML. Es muy usado en páginas web en Manizales, Colombia y en todo el mundo.

php en colombia


Qué herramienta usar para programar en PHP?

Recomiendo utilizar Sublime text, o notepad++; estos dos son programas que se pueden descargar gratis en internet y muy útiles para programar fácilmente.

Qué programa descargar para gestionar las bases de datos?

Para realizar programas en el equipo y ejecutarlos en éste es necesario un SGBD (Sistema de Gestión de Base de Datos) y recomiendo usar Xampp o Wamp.


Luego de tener instalado el Software para programar y el SGBD podemos seguir con las pruebas reales en nuestro equipo.

Crea tu Primer programa en PHP

<html>
   <head>
     <title> Hola mundo</title>
   </head>
        <body>
            <?php  echo '<p>hola mundo</p> ' ; ?>
         </body>
</html>

Cómo obtener la información del sistema usando PHP

<? php info(); ?>

Imprimir una Variable en PHP

  <?php
 echo $_SERVER ['HTTP_USER_AGENT'];
  ?>

Como resultado tendremos algo así:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Otro ejemplo de variables en PHP

<?php
$author ="Julian Alzate";
 echo $author;
?>

Como resultado obtendremos:

Julian Alzate

Cómo sumar dos variables:

<?php
$n1= 3;
$n2= 4;
$resultado= $n1+ $n2;
echo "El resultado es:" . $resultado;
?>

Como resultado tendremos:

El resultado es: 7

Estructura de una conexión en BD usando PHP

<?php
$consultasql="SELECT * FROM tablaPrueba";
$mysql=mysql_connect("localhost","root","") or die("No pudo conectarse a $servidor!!!!" . mysql_error());
mysql_select_db("prueba") or die("No pudo seleccionarse la BD $bd.");
$resultado=mysql_query($consultasql);

/* aquí va el código */

mysql_free_result($resultado);
mysql_close ($mysql);
?>



Si desea conocer más sobre cómo programar en PHP ingresa a  Desarrolladores PHP en Colombia

Blogs Colombia