Frameworks de JavaScript
Los frameworks o marcos de trabajo podrían definirse como una especie de
plantilla, a partir de la cual el desarrollador genera su aplicación web.
Vendría a ser la base para la organización y el desarrollo de todo el software. Los
frameworks posibilitan que el trabajo del Full Stack Developer —el profesional que
se dedica a la creación y mantenimiento de aplicaciones web— sea mucho más
rápido, porque no tiene que emplear su tiempo en programar partes comunes a
todas las aplicaciones, que ya tendrían su código escrito en estas estructuras.
La utilización de frameworks o marcos de trabajo se ha generalizado en los
últimos años cuando se manejan determinados lenguajes de programación.
Concretamente, para la elaboración de aplicaciones web, la tecnología más
empleada es JavaScript (JS) y, por ello, los principales frameworks de
JavaScript están destinados al desarrollo de apps.
Los frameworks JS son una parte fundamental del desarrollo front end, porque
ponen a disposición de los diseñadores toda una gama de herramientas con las
que poder crear sus aplicaciones de manera segura, fácil y testada.
Existen diferentes frameworks con diferentes posibilidades.
Angular
Gestado por Google, Angular es uno de los frameworks de JS más potentes y la
mejor opción cuando se pretende originar sitios web de una sola página con
elementos interactivos. Entre sus funcionalidades destaca la posibilidad de
actualización en tiempo real desde diferentes dispositivos. Es decir, cualquier
diseño se cambia de manera simultánea en la web y en la aplicación.
Angular aporta todo lo necesario para adquirir un buen conocimiento de
arquitectura por componentes y es una herramienta muy importante a nivel
laboral. Una de sus principales ventajas es que una vez dominado, es más
sencillo aprender otros frameworks, algo que no sucede a la inversa. Por eso,
es una herramienta básica para los desarrolladores.
React
No es propiamente un framework, sino una biblioteca que, en este caso, ha sido
implementada por Facebook. React permite generar aplicaciones web muy
intuitivas, ofreciendo un marco de trabajo versátil, robusto y muy fiable.
Además de Facebook, también las aplicaciones de Instagram o Airbnb están
realizadas con esta tecnología.
[Link]
Se caracteriza por apoyarse en una interfaz de programación de aplicaciones muy
simple que, sin embargo, permite desarrollar elementos dinámicos de
interconexiones realmente sofisticadas. La principal característica de [Link] es
la posibilidad de seleccionar los módulos que al programador le interesan y
descartar los demás.
Es una alternativa muy válida a React o Angular y se espera que en algún
momento supere a sus competidores en el mercado. La empresa
japonesa Nintendo emplea Vue en varios de sus sitios web oficiales.
Ember
Desde su introducción en el mercado en 2015, Ember no ha dejado de ganar
popularidad por su gran versatilidad. Además, ofrece lo que se conoce como
enlace de datos bidireccional, que permite la actualización en tiempo real
cuando se accede desde diferentes dispositivos.
Es utilizado por webs como LinkedIn o aplicaciones de escritorio como la de
música de Apple.
Node JS
La característica principal de Node JS es que no se ejecuta en el navegador, sino
en el lado del servidor y tiene como finalidad construir fácilmente aplicaciones
escalables. Es el framework ideal para crear apps que vayan a tener un tráfico muy
elevado en tiempo real.
Las aplicaciones web, PayPal o Uber han empleado Node en su
desarrollo. Meteor
Se suele usar en la generación de aplicaciones web en tiempo real y posee
una estructura basada en eventos. Este framework se sitúa entre la base de
datos y la interfaz del usuario, sincronizando una parte con la otra. Meteor es
gratuito, de código abierto y facilita la creación rápida de prototipos.
Frameworks PHP
En contra de la creencia popular, PHP no está muerto. Todavía es ampliamente
utilizado por sitios, incluyendo grandes nombres como Facebook y Wikipedia.
De acuerdo con W3Techs, PHP es usado por alrededor del 79% de todos los
sitios web. Es ocho veces más popular que [Link], su rival más cercano en los
lenguajes de programación del lado del servidor (server-side).
Los frameworks PHP suelen seguir las mejores prácticas de codificación. Por
ejemplo, dividen el código claramente en varios directorios según la función.
Te obligan a organizar el código de una forma más limpia, ordenada y sostenible.
Hay muchas amenazas de seguridad de PHP, incluyendo la secuencia de
comandos en sitios cruzados, los ataques de inyección SQL y la falsificación de
petición en sitios cruzados. A menos que tomes las medidas adecuadas para
asegurar tu código, tus aplicaciones web PHP serán vulnerables.
El uso de un framework PHP no es un sustituto para escribir código seguro, pero
minimiza la posibilidad de ataques de hackers. Los buenos frameworks tienen
incorporadas la limpieza de datos y defensas contra las amenazas comunes
mencionadas anteriormente.
Dado que muchas aplicaciones web se conectan a una base de datos, deberías
conocer las bases de datos y la sintaxis SQL. Cada framework PHP tiene su
propia lista de bases de datos soportadas.
Es útil comprender un modelo de mapeo de mapeo objeto-relacional (ORM). ORM
es un método para acceder a los datos de la base de datos usando la sintaxis
orientada a objetos en lugar de usar SQL. Esto significa que puedes escribir tus
consultas a la base de datos en el conocido PHP, aunque puede haber ocasiones
en las que querrás utilizar SQL.
Muchos frameworks PHP tienen su propio ORM incorporado. Por ejemplo, Laravel
usa el ORM Elocuente. Otros usan un ORM de código abierto como Doctrine.
Entender cómo funcionan los servidores web como Apache y Nginx es útil. Es
posible que tengas que configurar los archivos del servidor para que tu aplicación
funcione de manera óptima.
Probablemente harás gran parte de tu desarrollo localmente, por lo que necesitas
saber sobre el localhost, también. Otra opción es crear y probar tu aplicación en
un entorno virtual usando Vagrant y VirtualBox
La arquitectura del Modelo Vista Controlador
Los frameworks PHP típicamente siguen el patrón de diseño del Modelo-vista
controlador (MVC). Este concepto separa la manipulación de los datos de su
presentación.
Una analogía del patrón MVC es como pedir un cóctel en un bar.
El usuario es el patrón que llega al bar (el View) para tomar un cóctel. El usuario El
usuario pide su bebida al camarero (el Controlador).
El Controlador hace el pedido usando el Modelo: la receta, los ingredientes y el
equipo. Dependiendo del cóctel, pueden usar cualquiera de los siguientes
ingredientes, u otros:
• Alcohol
• Jugo de frutas
• Hielo
• Limón
• Vaso
• Coctelera
• Olive
• Agitador
El cóctel terminado se sirve en la barra para que el usuario lo disfrute. Si el usuario
quiere otra bebida, debe hablar primero con el Controlador. No se les permite
acceder al Modelo y mezclar su propia bebida.
En términos de la aplicación PHP, el MVC podría corresponder a lo siguiente:
• Modelo: una base de datos
• Vista: una o varias páginas HTML
• Controlador: funciones para acceder y actualizar la base de datos
Sentirse cómodo usando una interfaz de línea de comandos (CLI) ayuda cuando
se usa un framework PHP. Laravel tiene su propia CLI, la Consola Artisan. Usando
el comando «make» en Artisan puedes construir rápidamente modelos,
controladores y otros componentes para tu proyecto.
La familiaridad con la línea de comandos también es clave para usar el
administrador de paquetes PHP Composer . El Yii Framework es uno de los varios
que usa Composer para instalar y administrar dependencias, paquetes que son
necesarios para que una aplicación se ejecute.
Packagist es el principal repositorio de paquetes que puedes instalar con
Composer. Algunos de los paquetes más populares de Composer funcionan con el
framework Symfony.
Wikipedia tiene una lista de 40 frameworks PHP, pero algunos de ellos se
describen mejor como sistemas de gestión de contenidos
Laravel
Laravel está catalogado como «El framework PHP para artesanos de la web». Fue
desarrollado por Taylor Otwell, quien quería un framework con elementos que
CodeIgniter no tenía, como la autenticación de usuario.
Laravel utiliza un motor de plantillas llamado Blade. Una ventaja que tiene sobre
otros motores de plantillas es que puedes usar PHP dentro de Blade, lo que no
puedes hacer con los otros.
Packalyst, una colección de paquetes Laravel, tiene más de 15.000 paquetes que
puedes usar en tus proyectos.
Laravel proporciona una gama de características y métodos de seguridad, que
incluyen las siguientes:
• Autenticación
• Autorización
• Verificación del correo electrónico
• Cifrado
• Hashing
• Restablecer la contraseña
El Elocuente ORM y el Fluent Query Builder de Laravel protegen contra los
ataques de inyección SQL al utilizar la vinculación de parámetros PDO. La
protección Cross-Site Request Forgery (CSRF), que utiliza un token de formulario
CSRF oculto, también está activada de forma predeterminada.
La herramienta de línea de comandos de la consola Artisan que tiene Laravel
acelera el desarrollo al permitir a los desarrolladores automatizar tareas repetitivas
y generar rápidamente el código del esqueleto.
¿Quiénes utilizan Laravel?
• Archivo de Vogue – moda
• Ascot – hipódromo
• Camping World RV & Outdoors – venta al por menor
• [Link] – motor de búsqueda de restaurantes
• Barchart – acciones y participaciones
• Visita Maine – turismo
• Fischer Homes – construcción
• Explorar Georgia – turismo
Symfony
Symfony es al mismo tiempo un framework de PHP como una colección de
componentes de PHP para la construcción de sitios web.
Las ventajas de Symfony
Symfony es una excelente opción para sitios web y aplicaciones que necesitan ser
escalables. Su sistema de componentes modulares es muy flexible y te permite
elegir los componentes que necesitas para tu proyecto.
Symfony soporta la mayoría de las bases de datos de los frameworks populares
de PHP:
• Llovizna
• MySQL
• Oracle
• PostgreSQL
• SAP Sybase SQL Anywhere
• SQLite
• SQLServer
La mejor manera de interactuar con tus bases de datos es a través de la Doctrina
ORM. Symfony utiliza mapeadores de datos para asignar objetos a la base de
datos. Esto mantiene el modelo de objetos y el esquema de la base de datos
separados, lo que significa que si se cambia una columna de la base de datos no
es necesario hacer muchos cambios en la base de datos.
¿Quiénes utilizan Symfony?
• Sainsbury’s Magazine – editorial
• Intelius – busca datos públicos sobre las personas
• Sitio web de Sony VAIO UK – venta al por menor
• Tienda Sabatier – venta al por menor
• Distrito de los Pies – venta al por menor
• Premio Nobel de la Paz
CodeIgniter
El framework CodeIgniter te ayuda a construir aplicaciones web rápidamente, ya
que tiene una configuración mínima.
CodeIgniter es flexible: fomenta el desarrollo con la arquitectura MVC, pero
también puedes codificar aplicaciones no MVC.
El framework incluye defensas contra los ataques CSRF y XSS, además de
escapes sensibles al contexto y una Política de Seguridad de Contenidos.
CodeIgniter soporta múltiples métodos de caching, acelerando las aplicaciones.
¿Quiénes utilizan el CodeIgniter?
• G-Shock – venta al por menor
• WooBox – marketing
• Buffer – tecnología
• TestandTrack – educación
• Casio – tecnología
• Bike Easy – exteriores
• Barracuda – seguridad informática
• FuelCMS – sistema de gestión de contenidos
Otros
Zend Framework / Laminas Project
Yii (Framework)
CakePHP
Slim
Phalcon
FuelPHP
Frameworks para Python
Python es un lenguaje de programación versátil y potente que se puede utilizar
para una amplia gama de aplicaciones, incluyendo desarrollo web, ciencia de
datos, machine learning e inteligencia artificial. Cuando se desarrolla una
aplicación web con Python, es importante elegir el framework adecuado para las
necesidades del proyecto.
Django
Flask
Pyramid
Bottle
Zope
TurboGears
[Link]
web2py
cerezapy
Sanic
Masonite
Falcon
CubicWeb