Skip to content
🎬 Ver diapositivas
Objetivos
Qué veremos aquí
  • Desgranar el nombre del módulo: desarrollar, aplicación web, entorno servidor
  • Qué significa desarrollar una aplicación (analizar, diseñar, implementar)
  • Compilación frente a interpretación, y por qué PHP encaja en la web

Finalidad

Al terminar deberás…

  • Dar una definición decente de “desarrollar una aplicación”
  • Distinguir analizar / diseñar / implementar con un ejemplo pequeño
  • Explicar por qué en este módulo trabajamos con un lenguaje interpretado

El objetivo del módulo lo describe su propio nombre.

Desarrollo de aplicaciones web en entorno servidor

En esta introducción no programamos todavía: desmontamos esa frase por piezas.

Partes a analizar ​

1. Desarrollar
Analizar, diseñar e implementar un programa que resuelve un problema.
2. Aplicación web
No es un .exe de escritorio: vive en un navegador que pide y un servidor que responde.
3. Entorno servidor
El código que no ve el visitante. PHP y, más adelante, Laravel.

Las tres partes del nombre del módulo

Desarrollar una aplicación ​

Conocimiento previo

Qué es desarrollar una aplicación

Hay muchas respuestas posibles. En clase debería salir al menos una que se pueda defender.

Actividad

Aporta una definición

Intenta decir, en dos o tres frases, qué es desarrollar una aplicación. Luego la contrastamos con la de abajo.

Una definición que nos sirve ​

Dado un problema de naturaleza lógica:

Desarrollar una aplicación
  • Implementar o construir un programa
  • usando un lenguaje de programación
  • formado por un conjunto de instrucciones
  • que, ejecutadas en un entorno computacional,
  • solucionan de forma automatizada el problema planteado

Para llegar ahí no basta con “ponerse a picar”:

  1. Hay que entender muy bien lo que queremos hacer
  2. Hay que planificarlo
  3. Hay que realizar esa planificación y probarla

Mitos y consecuencias al desarrollar aplicaciones

Diseñando y desarrollando: los atajos se pagan más adelante.

Entender el problema sigue siendo lo primero

Una IA puede ayudarte a redactar un análisis, a inventar casos de prueba o a traducir un diseño a sintaxis. No entiende el problema por ti. Si el enunciado está mal leído, el código —tuyo o generado— también lo estará. En el examen no hay chat

Qué es implementar ​

Cuando decimos implementar nos referimos a:

  1. Analizar el problema
  2. Diseñar una solución algorítmica válida
  3. Escribir el código de esa solución en uno o varios lenguajes, interpretados o compilados

Fases: análisis, diseño e implementación

Actividad

Ecuaciones de segundo grado

Vamos a recorrer el esquema con una aplicación pequeña: ecuaciones de segundo grado.

El planteamiento (el que se expone en clase) es este:

  • Se trata de encontrar dos valores para que la ecuación se satisfaga (el valor de x)
  • Se especifica la ecuación que hay que aplicar
  • Eso ya es análisis: entender el problema que el cliente nos transmite

Enunciado: ecuación de segundo grado

Actividad

Análisis

Un posible análisis:

Análisis de una ecuación de segundo grado
Análisis de la ecuación de segundo grado

Contenido protegido

Introduce la contraseña para ver el contenido.

Actividad

Un posible diseño

Diseño de la ecuación
Diseño de la solución

Contenido protegido

Introduce la contraseña para ver el contenido.

Actividad

Implementación

Consiste en transcribir el diseño usando un lenguaje concreto, con su sintaxis.

Implementación de la ecuación de segundo grado
Implementación de la ecuación de segundo grado

Contenido protegido

Introduce la contraseña para ver el contenido.

Más adelante eso se hace en PHP. El esquema no cambia: lo que cambia es la sintaxis.

Compilación o interpretación ​

Pregunta

Compilación o interpretación

Las instrucciones escritas, de alguna manera, tienen que pasar a código máquina para ejecutarse. Pueden compilarse o interpretarse. ¿Cuál usamos en la web, y por qué?

Conocimiento previo

Compilación vs interpretación

Un compilador traduce antes a un ejecutable (o a bytecode). Un intérprete traduce mientras se ejecuta, instrucción a instrucción —o casi.

Pregunta

Java

¿Java es un lenguaje compilado o interpretado?

Java hace las dos cosas: se compila a bytecode y la máquina virtual lo interpreta (y a menudo lo acelera con JIT). No es un sí/no limpio; por eso la pregunta sirve para discutir, no para memorizar una etiqueta.

Pregunta

En un entorno de ejecución web, ¿qué tipo de modelo se debe usar?

Lo que nos interesa en DAWS
  • PHP es interpretado: Modificamos el archio .php y al recargar la página, el servidor interpreta y ejecuta el código en ese momento, no se compila (CGI)

  • La versión actual es PHP 8.5 (8.6 está en testing) además guarda bytecode en OPcache, así que no es “lento como en 2005”.

  • En internet también encontramos servidores y aplicaciones desarrollados con Go, Java, Python, PHP, etc. No existe una tecnología mejor en todos los casos: cada una tiene ventajas, inconvenientes y escenarios donde resulta más adecuada. En este módulo trabajaremos principalmente con PHP detrás de Apache, normalmente dentro de Docker.

  • No buscamos demostrar que PHP es mejor; buscamos aprender desarrollo web del lado servidor, necesitamos usar alguna tecnología, y usremos PHP.

Una aplicación web ​

Conocimiento previo

Qué es una aplicación web

En un ordenador solemos ver un programa con el que interactuamos. No todos los programas son del mismo tipo.

Hay software de escritorio, de tiempo real, científico, juegos… y aplicaciones web. Los lenguajes de propósito general pueden resolver casi cualquier algoritmo; lo que cambia es dónde se ejecuta y cómo llega el resultado al usuario.

En una app de escritorio el programa puede esperar a que teclees un valor. En la web no: el servidor recibe la solicitud junto con los datos (formulario, URL, JSON) y responde. Esa diferencia condiciona todo el módulo.

La continuación —cliente, servidor, URI, curl— está en Aplicación web.

BloqueQué es
PresentaciónHorario, exámenes, contacto
MotivaciónDe dónde partimos y cómo vamos a trabajar
1. IntroducciónEste tema: qué es desarrollar
2. AuxiliaresGit, Docker, IA, redes, Linux
3. Conceptos webCliente/servidor, WWW, qué es PHP
4. PHPEl lenguaje
5. LaravelMás adelante

👁 Visitas: 529