diff options
-rw-r--r-- | contenidos.md | 93 |
1 files changed, 92 insertions, 1 deletions
diff --git a/contenidos.md b/contenidos.md index 182ecf7..2296098 100644 --- a/contenidos.md +++ b/contenidos.md @@ -574,7 +574,7 @@ async function obtenerDitto(){ ## Resumen El JavaScript aquí mencionado cubre casi todo el uso básico. La [guía -profunda][js-deep] explica todo en mucho más detalle y añade más información +profunda][js-deep] explica todo en mucho más detalle y añade más información. # Programación del lado de cliente @@ -653,3 +653,94 @@ Es diminuto (~1kLoC) por lo que puede estudiarse con facilidad. [Tutorial de react en video][react-tutorial] [react-tutorial]: https://www.youtube.com/watch?v=QFaFIcGhPoM&list=PLC3y8-rFHvwgg3vaYJgHGnModB54rxOk3&index=1 + + + +# Programación en el lado del servidor + +En este curso se usa el entorno de ejecución NodeJS para trabajar en el lado +del servidor, que también se programa en JavaScript. + +NodeJS es diferente que el entorno de ejecución de JavaScript en el navegador. +En en lado del servidor las Web APIs no están disponibles del mismo modo que en +el navegador, ya que el entorno en el que se ejecuta es diferente: el navegador +es un programa visual, interactivo diseñado para hacer consultas Web que aporta +JavaScript como un lenguaje de extensiones mientras que NodeJS es un entorno de +ejecución de aplicaciones que por defecto no es gráfico. + + +El entorno del servidor se parece más a la programación clásica, ya que no se +ejecuta en el Sandbox del navegador: se dispone de acceso a archivos, +interfaces de red y otros recursos del sistema, que en el navegador no están +disponibles. + +## Frameworks de Back End + +### Express + +[Express][express] es un framework (para NodeJS) de programación Web de +lado del servidor. Su funcionamiento interno se centra en un único concepto: el +**middleware**. + +En Express el *middleware* se refiere a funciones que se ejecutan al recibir +consultas Web. + +Cada función *middleware* se registra en la aplicación, para una ruta y método +HTTP y se ejecutará cuando esta ruta y método sean accedidos por algún cliente. + +Como cada ruta y método pueden registrar varias funciones de *middleware* es +responsabilidad de cada función de *middleware* decidir si se pasa a la +siguiente o si se envía una respuesta, obviando el *middleware* restante. + +La [documentación de Express dispone de unas guías que describen el +funcionamiento a la perfección][express] + +[express]: https://expressjs.com + +### Flask + +[Flask][flask] es un framework de programación en el lado del servidor, muy +similar a Express, pero para el lenguaje Python. + +[flask]: https://flask.palletsprojects.com/en/2.2.x/ + +### Otros + +Hay infinidad de lenguajes y frameworks en los que realizar aplicaciones web +del lado de servidor. Aquí una lista de algunos muy usados: + +- PHP: Laravel, Symfony +- Python: Flask, Django +- Java: Spring +- Ruby: Sinatra, Ruby on Rails +- NodeJS: Express, Koa + + +## Anatomía de una aplicación Web + +Una aplicación Web del lado del servidor debe recibir consultas de los +clientes, procesarlas y retornar una respuesta. + +Las repuestas suelen ser documentos HTML, frecuentemente construidos de forma +dinámica en el servidor basándose en plantillas de documentos escritas +previamente e información adicional, normalmente obtenida desde una base de +datos. + +Además del HTML, las aplicaciones Web suelen ser capaces de servir archivos +estáticos tales como imágenes, archivos JavaScript para el lado del cliente, +hojas de estilos CSS y otros. Estos se entregarán directamente, sin procesar. + +<!-- + +# Apéndice: Test-Driven development (TDD) + +[Un tutorial con Jest muy sencillo][jest-tuto] + +[jest-tuto]: https://www.youtube.com/watch?v=G43sWqt8T98 +[jest-tuto-mejor]: https://www.youtube.com/watch?v=FgnxcUQ5vho + +[intro-tdd]: https://khalilstemmler.com/articles/test-driven-development/introduction-to-tdd/ + + +# Apéndice: El gestor de paquetes de NodeJS (NPM) +--> |