La diferencia entre un framework y una biblioteca

¿Te gustaría aprender Frameworks Java Empresariales?
Tenemos los diplomados que necesitas.¡Haz clic aquí!

Los desarrolladores a menudo usan los términos “biblioteca” y “framework” indistintamente. Pero hay una diferencia.

Tanto los frameworks como las bibliotecas son código escrito por otra persona que se usa para ayudar a resolver problemas comunes.

Por ejemplo, supongamos que tiene un programa en el que planea trabajar con cadenas. Decides mantener tu código SECO (no te repitas) y escribes algunas funciones reutilizables como estas:

function getWords(str) {
   const words = str.split(' ');
   return words;
}
function createSentence(words) {
   const sentence = words.join(' ');
   return sentence;
}

Felicidades. Ha creado una biblioteca.

No hay nada mágico sobre los frameworks o la biblioteca. Tanto las bibliotecas como los frameworks son código reutilizable escrito por otra persona. Su propósito es ayudarlo a resolver problemas comunes de manera más fácil.

A menudo uso una casa como metáfora de los conceptos de desarrollo web.

Una biblioteca es como ir a Ikea. Ya tienes una casa, pero necesitas un poco de ayuda con los muebles. No tienes ganas de hacer tu propia mesa desde cero. Ikea te permite escoger y elegir diferentes cosas para poner en tu hogar. Usted tiene el control.

Un framework, por otro lado, es como construir una casa modelo. Tiene un conjunto de planos y algunas opciones limitadas cuando se trata de arquitectura y diseño. En última instancia, el contratista y el plano tienen el control. Y le informarán cuándo y dónde puede proporcionar su opinión.

La diferencia técnica

La diferencia técnica entre un framework y una biblioteca radica en un término llamado inversión de control.

Cuando utiliza una biblioteca, está a cargo del flujo de la aplicación. Usted elige cuándo y dónde llamar a la biblioteca. Cuando usa un framework, el framework está a cargo del flujo. Proporciona algunos lugares para que conecte su código, pero llama al código que conectó según sea necesario.

Veamos un ejemplo usando jQuery (una biblioteca) y Vue.js (framework).

Imagine que queremos mostrar un mensaje de error cuando se presenta un error. En nuestro ejemplo, haremos clic en un botón y pretenderemos que ocurre un error.

Con jQuery:

// index.html
<html>
   <head>
      <script src="https://code.jquery.com/jquery-3.3.1.min.js"
      </script>
      <script src="./app.js"></script>
   </head>
   <body>
      <div id="app">
         <button id="myButton">Submit</button>
       </div>
   </body>
</html>
// app.js
// A bunch of our own code, 
// followed by calling the jQuery library
let error = false;
const errorMessage = 'An Error Occurred';
$('#myButton').on('click', () => {
  error = true; // pretend some error occurs and set error = true
  if (error) {
    $('#app')
       .append(`<p id="error">${errorMessage}</p>`);
  } else {
    $('#error').remove();
  }
});

Observe cómo usamos jQuery. Le decimos a nuestro programa dónde queremos llamarlo. Esto es muy parecido a ir a una biblioteca física y sacar ciertos libros del estante como los queremos.

Eso no quiere decir que las funciones jQuery no requieran ciertas entradas una vez que las llamamos, pero jQuery en sí es una biblioteca de esas funciones. Estamos a cargo.

Obtén descuentos exclusivos de nuestros cursos en vivo en línea

Capacítate con los expertos

Con Vue.js

//index.html
<html>
   <head>
      <script src="https://cdn.jsdelivr.net/npm/vue"></script>
      <script src="./app.js"></script>
   </head>
   <body>
      <div id="app"></div>
   </body>
</html>
const vm = new Vue({
  template: `<div id="vue-example">
               <button @click="checkForErrors">Submit</button>
               <p v-if="error">{{ errorMessage }}</p>
             </div>`,
  el: '#vue-example',
  data: {
    error: null,
    errorMessage: 'An Error Occurred',
  },
  methods: {
    checkForErrors()  {
      this.error = !this.error;
    },
  },
});

Con Vue, tenemos que llenar los espacios en blanco. El constructor de Vue es un objeto con ciertas propiedades. Nos dice lo que necesita y luego, detrás de escena, Vue decide cuándo lo necesita. Vue invierte el control del programa. Conectamos nuestro código a Vue. Vue está a cargo.

La diferencia si se trata de una biblioteca o un framework es si hay o no una inversión de control.

Una nota sobre ser “obstinado”
A menudo escuchará que los frameworks y las bibliotecas se describen como “obstinados” o “sin opinión”. Estos términos son subjetivos. Intentan definir el nivel de libertad que tiene un desarrollador al estructurar su código.

Los frameworksson más obstinados que no, ya que, por definición, la inversión del control requiere una concesión de libertad de diseño de aplicaciones.

En resumen
Los frameworks y las bibliotecas son código escrito por otra persona que lo ayuda a realizar algunas tareas comunes de una manera menos detallada.
Un framework invierte el control del programa. Le dice al desarrollador lo que necesita. Una biblioteca no. El programador llama a la biblioteca donde y cuando la necesitan.

Te invitamos a ver todos los artículos que tenemos para ti, coméntanos que tal te pareció este articulo y compártelo con más personas.

¿Te gustaría aprender Frameworks Java Empresariales?
Tenemos los diplomados que necesitas. ¡Haz clic aquí!

About Author

GReyes

0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
Comentarios.
Ver todos los comentarios

¿Te gustaría aprender Frameworks Java?

X
0
¿Te gusta este articulo? por favor comentax