Skip to content

Introducción

Biblioteca y API

Cuando desarrollamos software utilizamos bibliotecas o librerías que nos dan funcionalidad ya implementada. Estas bibliotecas contienen funciones y clases para llevar a cabo cierta tarea.

Por ejemplo, si nos queremos conectar con un motor de base de datos podemos leer la documentación sobre como funciona el protocolo, qué mensajes hay, que parámetros tienen e implementarlo desde 0. Esto nos llevaría mucho tiempo de desarrollo y no aportaría gran cosa a nuestra aplicación. Lo que buscaríamos es una biblioteca que sea capaz de hablar con nuestro motor de base de datos.

Estas bibliotecas tienen asociada una forma de ser utilizadas, lo que generalmente se conoce por su acrónimo en inglés API. Aunque API y biblioteca está íntimamente ligado, el concepto API es más genérico. La primera línea de la wikipedia en inglés tiene una definición buena:

An application programming interface ('API') is a computing interface that defines interactions between multiple software intermediaries. It defines the kinds of calls or requests that can be made, how to make them, the data formats that should be used, the conventions to follow, etc.

-- Wikipedia

Esto implica que un API puede ser una forma de acceder a más cosas a parte de una biblioteca. Podemos acceder a funcionalidad externa a nuestro sistema. Ejemplos son:

Patrones de diseño

En el mundo de la programación y la tecnología existen situaciones que tienen características muy parecidas, ante estas situaciones en la década de los 80/90 surgió el concepto de Patrón de diseño.

Ante estos problemas se pensó una solución robusta y lo suficiente genérica para que se pueda adaptar a cualquier situación.

Cada patrón describe un problema que ocurre infinidad de veces en nuestro entorno, así como la solución al mismo, de tal modo que podemos utilizar esta solución un millón de veces más adelante sin tener que volver a pensarla otra vez.

-- Christopher Alexander

Uno de los patrones de software más utilizado en el patrón MVC (o alguna de sus múltiples Variantes)

De forma general tenemos:

  • Modelos: almacenamiento de datos y operaciones de negocio própias
  • Vistas: Se preocupa d cómo presnetar los datos, aquí no hay nada de procesamiento
  • Controladores: simple intercambio de mensajes

El peso ha de estar en los modelos, al no estar asociados con la presentación usaremos los mimos modelos para la app móvil, la web o el servicio de datos (Ejemplo API REST usando JSON).

Frameworks

Dentro del mundo de desarrollo también tenemos Framework. Los frameworks están ligados a algún tipo de tarea como desarrollo web o desarrollo videojuegos. Estos framework tienen un conjunto de bibliotecas para facilitar el trabajo y marcan una estructura de cómo hacer el proyecto asegurando uno estándares de seguridad y reusabilidad.

Un framework de desarrollo web que implementa el patrón MVC es framework django

Puestos desarrollo web

Dentro del mundo de desarrollo web hay distintos perfiles de desarrollo:

  • Desarrollador Backend: Se encarga de el código ejecutado en servidor.
    • Acceso a datos
    • Seguridad autentificación
    • Generación de API
  • Desarrollador Frontend: Se encarga del desarrollo cliente.
    • Obtener datos y pintado
    • Usabilidad
    • Acceso seguro
  • Desarrollador Fullstack:
    • Desarrollador con experiencia en Back y Front
  • DevOps:
    • Desarrollador-administrador
    • Administrador-desarrollador

Conceptos clave/enlaces