Tabla de Contenido
En este artículo te explicaré algunos conceptos de programación que hubiera preferido aprender antes.
El primero de estos conceptos de programación o herramienta que quiero mencionarte son las variables de entorno.
Variables de entorno
Las variables de entorno, son cadenas de texto que nos permiten guardar los secretos de nuestra aplicación, es decir, cada vez que nosotros tenemos una API que consumir, los datos de conexión a la base de datos, una llave secreta, o un token, son información sensible para nuestra aplicación, por lo tanto, no la deberíamos de exponer.
Las variables de entorno las utilizamos para 2 cosas principalmente: La primera es para poder guardar y proteger la información sensible para nuestros proyectos y la segunda es para poder intercambiar la información que utilizamos con base en el entorno en el que estemos trabajando.
Cuando estamos realizando un desarrollo, comúnmente generamos servidores locales para empezar a trabajar, utilizando herramientas como XAMPP o Node, solo por mencionar algunos, ese entorno lo nombramos entorno local.
Después, podemos tener un entorno de sandbox, que básicamente es un entorno de pruebas en un servidor que probablemente será muy similar o de iguales características que el de producción, el cuál es el último entorno en donde ya subimos todo nuestro proyecto optimizado, y configurado.
En el texto anterior, te describí al menos 3 entornos que ocupamos para desarrollar, entonces, en cada entorno podríamos tener variables distintas, que se vayan configurando o ajustando con base en los requerimientos que tengamos en ese momento.
Es importante que te exprese que este archivo de variables den entorno(.env) no lo debemos de compartir o subir a nuestros repositorios, ya que estaríamos comprometiendo la primera razón por la que los usamos, guardar y proteger información sensible de nuestro proyecto.
Una de las estrategías que normalmente se utilizan para este tipo de archivos, es crear un archivo .env.dist o .env.local, en el cual ponemos el nombre de las variables que utilizamos en el proyecto, sin agregar los valores de la variable, esto es para poder tener la referencia de que existen las variables y que cada quien pueda adaptar esas variables a sus entornos correspondientemente.
Si te interesa conocer como utilizar las variables de entorno, te dejo un video de mi canal de Youtube
Además, también tengo un artículo sobre variables de entorno.
El segundo de estos conceptos de programación o herramienta que quiero mencionarte son los repositorios.
Repositorio
Un repositorio es un espacio que contiene todos los archivos de tu proyecto, así como el historial de cambios y versiones que se han realizado a través del tiempo. Este repositorio puede ser de dos tipos: público o privado, como su nombre indica, el público permite que cualquier persona pueda ver el código, mientras que el privado no se expone a todos.
Existen múltiples sistemas de gestión de versiones que te permiten crear repositorios, tal vez el más famoso sea Github, sin embargo, también existen algunos como BitBucket, GitKraken, entre otros más.
Cada repositorio se compone de Ramas, en estás ramas se pueden crear diversas estrategías para poder colaborar o actualizar la información del proyecto, creando forks o Pull Request, pidiendo a tus compañeros que hagan Code Reviews y que al momento de realizar un merge a la rama Main, se desplieguen actions de CI/CD.
Si te interesa conocer más acerca de este tema, te dejo una lista de reproducción en mi canal de Youtube
El tercero de estos conceptos de programación o herramienta que quiero mencionarte son los controladores.
Conceptos de Programación: Controladores
Un controlador, es una clase en php que sirve para poder segmentar la lógica de las peticiones que nos llegan, con esto, logramos una mejor organización del código y comúnmente van asociados a una clase auxiliar denominada helper, en donde definimos todos los métodos que utilizaremos dentro del controlador.
Imagina que el objetivo del controlador es que podamos tener una lista declarativa de las acciones que vamos a realizar en el endpoint o servicio que estemos trabajando. Es decir, un controlador debe de expresar lo que se busca alcanzar o lo que se pretende obtener, no como hacerlo(imperativo), para este caso, tenemos los helpers.
El cuarto de estos conceptos de programación o herramienta que quiero mencionarte son los helpers.
Conceptos de Programación: Helpers
Un helper, como su nombre lo indica es una función que ayuda a realizar las operaciones que vamos definiendo en el controlador, mientras que en el controlador podremos una instrucción como:
$telefonos_filtrados = filtrar_telefonos_por_estado($telefonos);
PHPEn el helper definiremos todas las instrucciones a realizar para poder declarar la función filtrar_telefonos_por_estados. El objetivo de utilizar helpers es evitar exponer todas las instrucciones que construyen nuestra aplicación, sino tener una estructura lógica que permita que cualquier desarrollador pueda continuar con el desarrollo.
El quinto de estos conceptos de programación o herramienta que quiero mencionarte son las rutas.
Conceptos de Programación: Rutas
Las rutas son el punto final en donde consumiremos algún servicio, este endpoint o servicio tiene asociado un número de métodos que te permiten realizar las acciones de administración como consulta, actualización, inserción y eliminación.
Solo por mencionar algunos métodos, existen: GET, POST, PUT, PATCH, DELETE. A cada uno de estos métodos les podemos asociar una serie de instrucciones para poder consultar, actualizar, insertar y eliminar información.
Cada vez que nosotros apuntamos a esos métodos y servicios, estamos realizando una REQUEST, por lo que muchos lenguajes de programación, generan una clase Request que permite manipular tanto la data como la metadata de esta petición.
Si deseas conocer más acerca de estos temas, te dejo un curso en mi canal de Youtube sobre como crear una API con Laravel Lumen
El sexto de estos conceptos de programación o herramienta que quiero mencionarte son los seeders.
Conceptos de Programación: Seeders
Se define como un método simple para sembrar su base de datos con datos de prueba, es decir, agregar información aleatoria que permita ser utilizada en todas las operaciones del modelo. utilizando clases semilla (Seed).
Todas las clases de semillas se almacenan en el directorio database/seeds.
Las clases de semillas pueden tener el nombre que desee, pero probablemente deberían seguir alguna convención razonable, como nombretablaSeeder, etc.
De manera predeterminada, se define una clase DatabaseSeeder. Desde esta clase, puede utilizar el método de llamada para ejecutar otras clases semilla, lo que le permite controlar el orden de siembra.
El séptimo de estos conceptos de programación o herramienta que quiero mencionarte son los ORM.
Conceptos de Programación: ORM
El Object-Relational Mapping, Es un modelo de programación cuyo objetivo consiste en realizar una asociación de la base de datos como motor de persistencia, en un paradigma orientado a objetos, cuyos métodos y atributos, se encuentran definidos en dicha clase.
Un ORM utiliza una serie de Modelos, en donde cada modelo se asocia a una tabla de la base de datos y nos permite realizar una serie de operaciones comunes denominados métodos.
El octavo de estos conceptos de programación o herramienta que quiero mencionarte son los modelos.
Conceptos de Programación: Modelos
Un modelo es una clase que representa a una tabla dentro de las bases de datos, y se utilizan para poder interactuar con la base de datos y realizar operaciones de administración como la inserción, edición, eliminación o consultas dentro de las bases de datos.
Por ejemplo, normalmente cuando iniciamos con la programación y bases de datos, generamos una tabla manualmente, agregando los campos, tipos de datos, tamaños de campo y atributos dentro de la base de datos, sin embargo, el concepto de modelo, se centra en generar una interfaz que asocie código del lenguaje de programación, con la tabla, estructura o schema que estemos desarrollando.
Si te ha gustado este artículo y te aporta valor te pido me sigas en mi:
🖥️ Youtube: https://www.youtube.com/@eightdev?sub_confirmation=1
🎵 Tik Tok: https://www.tiktok.com/@8devmx
✅ Facebook: https://www.facebook.com/8devmx/
📸 Instagram: https://www.instagram.com/8devmx/