Creación de software con un marco de trabajo vs biblioteca: lo que los reclutadores de tecnología necesitan saber

26 de febrero de 2020
marco de trabajo vs biblioteca

Como reclutador técnico, ya no basta con que conozcas sólo los nombres de ciertos lenguajes de programación, sino que también debes entender los fundamentos de cómo se hace el software.

Cuando se trata de crear un software de producción, hay dos factores muy importantes a considerar: El primero es que el desarrollo de aplicaciones es cada vez más complejo. El segundo es que los programadores siempre están tratando de ser más efectivos y más eficientes en su trabajo. Como resultado, cada equipo de programadores debe decidir si (o no) construir una aplicación utilizando un marco de software o una biblioteca de software (o un número de bibliotecas). 

For the same reason, you need to be aware of which libraries and frameworks are relevant to a given post you’re recruiting for. In this way, you’ll be able to seek out developers with the best fit for that position. Not only that, but it’s obvious a casi todos los candidatos cuando los reclutadores no han hecho su investigación. Fully understanding how lenguajes de programación, frameworks, and libraries work together will make you really stand out as a reclutador (además de hacerte sentir más seguro al hablar de "tecnología") con los candidatos.

The technical difference between a framework vs library?

As you can see in the graphic below, the technical difference between a framework vs library is the question of who is in control of certain key actions during the course of creating software (and when the software actually runs).

When a software developer uses a feature from a library, the developer is in control – in other words, the developer’s code is in full control of the sequence of events. However, with a framework, the direction of control is inverted (this is known as Inversión del control), ya que el marco controla al desarrollador, en este caso, el marco controla el código del desarrollador. En cierto sentido, un framework funciona de la misma manera que el llamado Principio de Hollywood: "No nos llames, nosotros te llamaremos".

marco de trabajo vs bibliotecaFuente: Fatos Morina

So what exactly are frameworks vs libraries? In particular, what is the difference between these two concepts?

¿Cuál es el propósito de los marcos y las bibliotecas?

As you probably know, application code written by programmers constantly changes as the application they are working on evolves and develops. However, frameworks and libraries are fundamental building blocks that do not change, and which are used as the structure of a particular application. Both libraries and frameworks have been developed by developers to prevent the need to carry out repetitive tasks over and over again. They can also provide some functionality without needing to implement that functionality from scratch.

¿Qué son las bibliotecas en la codificación?

A library is essentially a set of functions that a developer can access (“call”). These days, a library is usually organized into so-called “classes”. The whole idea of such a library is that it contains code that is reusable for a particular purpose in a specific domain. In this way, a library simplifies specific tasks by providing a set of generic functionalities. These are then ready to be used in (“plugged into”) a software program. For example, most programming languages provide libraries for functionality, such as formatting a string or logging the exceptions that may occur during runtime. By using appropriate libraries, developers are able to reduce the amount of code which they need to write. At the same time, well-known libraries have good documentation and have been well tested. Therefore, in most cases, it is better for developers to use a library rather than go to the time and trouble of writing, testing and documenting their own code.

¿Qué es un marco en la programación?

A framework can be described as an architecture that facilitates the implementation of software in a well-organized manner. Such a framework, therefore, embodies some pre-defined abstract design which is coupled with more built-in behavior than is the case with a library. In a framework, all the control flow is already in-place and there are a bunch of predefined hooks where the developers can place their own code. As a result, a framework defines a skeleton where the developers of a particular application define their own features to fill in the skeleton. In other words, you can think of a framework as a collection of patterns and libraries which help developers to build an application. On the downside, however, a framework also dictates the architecture of a given application. For example, it will define the overall structure, partitioning into classes, the key responsibilities of classes and how objects collaborate.

¿Cuándo es mejor usar un marco de trabajo en vez de una biblioteca?

As with just about any real-life issue, it’s a complex question that is difficult to answer clearly in every case. For example, a team with many junior developers may be better off with a framework, which therefore enforces a certain structure and particular standards, dictating to the team how it should build software. On the other hand, an experienced team who is working on an application that’s not run-of-the-mill and has niche functionality might be better off using a library (or libraries) rather than using a framework, because this gives them greater flexibility and control. In more extreme cases, it might even be better for a particular team of developers to build software entirely from scratch, without using either a framework or libraries.

Qué hay que tener en cuenta cuando se evalúa a los candidatos que necesitan conocer ciertos marcos o bibliotecas

Aquí hay un mini-FAQ sobre cómo los lenguajes de programación, marcos y bibliotecas de software se utilizan en el mundo real. Donde sea relevante, también hemos añadido algunas sugerencias sobre lo que hay que tener en cuenta al seleccionar candidatos.

  • P: ¿Pueden los programadores codificar una aplicación sin una biblioteca o un marco de trabajo, pero usando sólo su propio código escrito desde cero?

R: Sí, pueden, pero esto siempre llevará más tiempo.

  • P: ¿Pueden los programadores codificar una aplicación usando un marco de trabajo y algo de su propio código?

R: Sí, pueden.

  • P: ¿Pueden los programadores codificar una aplicación usando una biblioteca (o más de una biblioteca) además de su propio código?

R: Sí, pueden.

  • P: ¿Pueden los programadores escribir su propia biblioteca?

R: Sí, y la mayoría de los programadores hacen esto en el curso de su propio trabajo. Es una de las mejores maneras de evitar cualquier forma de duplicación, que a todos los programadores les disgusta. Los desarrolladores a veces deciden liberar a la comunidad bibliotecas que han demostrado ser particularmente útiles. Como reclutador, vale la pena preguntar a los candidatos si han hecho tales contribuciones de código abierto.

  • P: ¿Pueden los programadores codificar una aplicación usando un marco de trabajo más una biblioteca (o más de una biblioteca) más su propio código?

R: Sí, pueden. Si un equipo de desarrolladores ya está familiarizado con un marco de trabajo y las bibliotecas pertinentes, y el marco de trabajo en particular se ajusta bien al dominio en el que trabajará el nuevo software, entonces es probable que este enfoque sea el más eficiente y eficaz. Esto significa que, al reclutar, se busca a desarrolladores que ya estén familiarizados con los marcos y bibliotecas que su equipo utiliza actualmente.

  • P: ¿Es posible que una biblioteca se vuelva obsoleta?

R: Sí, pero es poco probable que esto le ocurra a una biblioteca conocida que proporcione una funcionalidad significativa.

  • P: ¿Es posible que un marco se vuelva obsoleto?

R: Sí, y esta es una de las posibles desventajas de usar un marco. Los marcos vienen y van, e incluso si un marco es popular durante mucho tiempo, cualquier marco puede cambiar drásticamente de una versión principal a otra versión principal. Por supuesto, los creadores/mantenedores de marcos populares tratan de limitar esos cambios, pero puede ocurrir y ocurre. Deberías tratar de mantenerte al día, al menos, de los cambios importantes en los marcos utilizados por tu equipo.

  • P: ¿Pueden los programadores crear su propio marco de trabajo?

A: Yes. After a team of programmers have finished creating a new type of software, it quite often happens that, based on their particular experience, they later create a framework which is designed to make it possible to create a similar type of software in a way which is significantly more effective and efficient. It’s a good idea to review resumes to see if candidates have had any such experience.

Conclusión

To reiterate, as a technical recruiter, it’s very important that you screen candidates not only in terms of programming languages, but also in terms of frameworks and libraries.

We know that some of the technical language used to talk about programming languages, software frameworks and libraries can be confusing. If you have any doubts, we recommend that you take a look at the glossary which we have prepared specially for this purpose: https://devskiller.com/glossary-it-terms-tech-recruiters/.

Compartir correo

Es más que un simple boletín de noticias

Reciba información útil directamente en su bandeja de entrada y aprenda más sobre la contratación de tecnología.

Verificar y desarrollar las habilidades de codificación sin problemas.

Vea los productos DevSkiller en acción.

Certificaciones de seguridad y cumplimiento. Nos aseguramos de que sus datos estén seguros y protegidos.