Blog del Máster
en Tecnologías de la Información Geográfica y Ciencia de Datos
Espaciales

Frameworks webmap

Frameworks en el desarrollo de aplicaciones webmap

Antes de ver la importancia de utilizar frameworks en el desarrollo de aplicaciones de mapas web, vamos a empezar definiendo un framework. Un framework es un entorno de trabajo como una plataforma diseñada para facilitar el desarrollo de aplicaciones (en este caso aplicaciones web) que proporciona los cimientos sobre los cuales construir nuestros proyectos.

Cada lenguaje de programación tiene sus propios frameworks, pero además también existen frameworks pensados para los distintos tipos de aplicaciones. Por poner algunos ejemplos, existen frameworks para diseñar aplicaciones web, videojuegos, aplicaciones móviles, etc. Además, para el caso que nos ocupa, dentro de las aplicaciones web encontramos frameworks de tipo backend (aplicación de la parte del servidor) y de tipo frontend (aplicación de la parte del cliente).

Este post es el primero de una serie dedicada al uso de frameworks para el desarrollo de aplicaciones webmap. Para empezar, en esta primera publicación de la serie, nos centraremos en las características más relevantes de estas herramientas para entender mejor su importancia y funcionamiento general.

Antes de ver cuáles son las principales aportaciones de un framework vamos a poner un poco de contexto.

¿Cuál es el contexto?

Cuando empezamos a dar los primeros pasos en el mundo de la programación, lo primero que aprendemos a utilizar es el código de algún lenguaje de programación (JS, python, PHP, etc) de forma directa. Es decir, creamos nuestras primeras aplicaciones utilizando sólo funciones básicas de esos lenguajes de programación.

Por otra parte, a medida que vamos adquiriendo práctica, nos vamos dando cuenta que las distintas aplicaciones que vamos desarrollando suelen compartir muchas piezas (o funcionalidades) más o menos complejas. Por ejemplo, muchas aplicaciones en entornos GEO requieren un registro de usuarios, un mapa con funciones de zoom, desplazamiento en el mapa (pan), etc. Unas funcionalidades que, a pesar de ser las mismas para todas las aplicaciones, probablemente no habremos estructurado siempre de la misma forma. Al fin y al cabo, ¡somos seres humanos!

Entonces, por una parte, habremos estado desarrollando código repetido y, por otra parte, probablemente habremos resuelto los mismos problemas de forma ligeramente distinta, lo cual, derivará en una coherencia y estructura de nuestros proyectos bastante mejorables. Imaginad, por ejemplo, qué sucederá cuando este tipo de aplicaciones deba ser gestionada por una persona distinta a la que la desarrolló.

Para resolver este tipo de situaciones es recomendable utilizar frameworks en el desarrollo de aplicaciones.

¿En qué consiste un framework?

Podemos entender un framework como la agrupación de tres tipos de elementos.

  • Un conjunto de reglas y convenciones de uso
  • Código extendido con funcionalidades adicionales
  • Herramientas de soporte al desarrollo

Reglas de uso y convenciones de uso

Cada framework define un conjunto de reglas (o normas) que debemos cumplir de forma obligatoria. Estas reglas no son arbitrarias si no todo lo contrario. Es decir, surgen en base de unos criterios y objetivos de buenas prácticas preestablecidos y estandarizados.

Por poner algún ejemplo, hay normas que hacen referencia al nombre y ubicación de los archivos que forman parte de nuestras aplicaciones o, incluso, al nombre que deben tener algunas de las funciones de nuestro código.

Código extendido con funcionalidades adicionales

Cuando utilizamos un framework tenemos a nuestra disposición, además de las funciones propias de cada lenguaje de programación (python, PHP, JS, etc.), otras funciones desarrolladas dentro del propio framework.

Estas funcionalidades adicionales están pensadas para facilitar las tareas más habituales de toda aplicación web. Por ejemplo, ya que casi todas las aplicaciones disponen de algún formulario para la introducción de datos, es casi seguro que nuestro framework disponga de funciones para la validación de esos formularios. De este modo nos ahorramos todo el código necesario para esa validación.

Otro ejemplo muy habitual son las funcionalidades, también muy recurrentes, relacionadas con nuestras bases de datos (MySQL, PostgreSQL, SQL Server, etc.). Haciendo uso de estas funciones podemos llevar a cabo cualquier tipo de consultas sin necesidad de conocer el lenguaje de SQL, sino simplemente haciendo uso de ese código extendido del propio framework.

Herramientas de soporte al desarrollo

Además de las reglas y funciones adicionales, cuando utilizamos un framework también tenemos a nuestra disposición una serie de herramientas que nos facilitan todo el proceso de desarrollo de nuestras aplicaciones.

Estas herramientas pueden facilitar (según el framework) desde la concepción de modelo de datos (bases de datos, tablas y relaciones), hasta la interfaz de usuario (UI), pasando por otras herramientas de soporte al desarrollo como pueden ser herramientas de depuración, multi-idioma, etc.

Ventajas

Una de las principales ventajas de hacer uso de un framework en el desarrollo de aplicaciones, deriva precisamente del uso de reglas y convenciones de uso. Con estas reglas definimos la estructura y organización de nuestras aplicaciones de forma estandarizada facilitando la compresión y el trabajo en equipo. Si todos seguimos las mismas normas será más fácil que nos entendamos o, incluso, que yo pueda hacer tu trabajo y tú el mío.

En segundo lugar, el uso de funcionalidades extendidas, otorga robustez a nuestras aplicaciones ya que se trata de un código muy testeado y consolidado. Mucho más testeado que nuestro propio código. Además, haciendo uso de estas funcionalidades adicionales podemos olvidarnos de las partes más recurrentes de nuestras aplicaciones (registro de usuarios, validación formularios, operaciones con la BBDD, etc.) y centrarnos en aquello particular de cada nuevo proyecto.

Otra de las ventajas que también tiene que ver con el código extendido, es el uso de complementos o plugins que cada framework pone a disposición de sus usuarios. Unos complementos, desarrollados por la comunidad, que permiten ampliar considerablemente las funcionalidades propias de cada framework.

Finalmente, el uso de herramientas de soporte al desarrollo, facilita las tareas propias de cualquier desarrollo, como la migración de datos (importación y exportación), la generación de textos multi-idioma, la detección de errores en tiempo de ejecución, etc.

Desventajas

La principal desventaja de utilizar un framework en el desarrollo de aplicaciones es el tiempo que tenemos que invertir en el aprendizaje. No podemos utilizar un framework si antes no conocemos cuáles son las reglas que debemos seguir y cómo utilizar las herramientas que tenemos a nuestra disposición tanto de código extendido como de soporte al desarrollo.

El tiempo de aprendizaje es fundamental. Por este motivo adquiere especial relevancia la documentación disponible en la red y la calidad de esa documentación.

Otra posible desventaja es que, para desarrollos de pequeñas aplicaciones quizás no sea necesario someterse a ninguna metodología de ningún framework. Incluido es posible que no sea necesario utilizar ningún código extendido por lo que podríamos optar por no utilizar ningún framework. En sentido contrario, sin embargo, podemos afirmar que, cuanto más avanzamos en el uso de cualquier framework menos rígida nos parece su metodología y más natural su utilización.

Frameworks web más utilizados

Antes de entrar en la conclusiones, vamos a citar cuáles son las tendencias, según la plataforma StackOverflow, de los frameworks en el desarrollo de aplicaciones web más utilizados para cada lenguaje de programación:

En la parte del servidor:

En la parte del cliente:

Conclusión

El uso de frameworks en el desarrollo de aplicaciones forma parte de la evolución natural del desarrollo de aplicaciones. A medida que van surgiendo nuevos tipos de aplicaciones, también van surgiendo las herramientas apropiadas para agilizar la creación de ese tipo de aplicaciones.

Las ventajas de utilizar un framework son muy superiores a las desventajas. En este sentido, es fundamental valorar la documentación disponible en la red a modo de tutoriales, vídeos, etc. para reducir al máximo la curva de aprendizaje, así como la existencia de una masa crítica de usuarios que pueda darnos soporte en momentos puntuales.

En los siguientes posts de esta serie veremos en más detalle el uso de algunos frameworks de python, como son django y flask, y su uso en el desarrollo de aplicaciones webmap.


Si quieres profundizar más en los frameworks para programar mapas web y en concreto, en el framework Flask, te puede interesar el Curso de especialización en Programación de aplicaciones web map – backend e integración con frontend.

Toni Hernández
Ambientólogo y diplomado en informática. Trabajo como desarrollador de aplicaciones web map en el Servicio de SIG y Teledetección (SIGTE) de la Universitat de Girona. Me interesa la capacidad espacial de las bases de datos y el desarrollo de aplicaciones web map tanto del lado del cliente como del servidor.


Suscríbete a nuestra newsletter