Skip to content

Latest commit

 

History

History
89 lines (73 loc) · 9.28 KB

fundamentos_js_I.org

File metadata and controls

89 lines (73 loc) · 9.28 KB

Fundamentos de JavaScript I

El objetivo de esta práctica es aprender y poner en práctica los conceptos fundamentales de JavaScript.

Repositorio de la práctica

El repositorio base de la práctica está disponible en: https://github.com/pedroprieto/practica_dwec_gestor_presupuesto

En esta segunda práctica se debe configurar el repositorio personal (el que se creó haciendo un fork del repositorio base) para añadir un segundo repositorio remoto. De esta manera, tu repositorio tendrá dos remotos:

  • El remoto principal, llamado origin, que estará conectado con tu repositorio de tu cuenta de GitHub. Es el que utilizarás normalmente para subir periódicamente los cambios (mediante git push) o para actualizarlo o clonarlo en otro equipo.
  • Un remoto secundario, llamado profesor, que será de solo lectura. Estará conectado con el repositorio base y solo se utilizará para incorporar a tu repositorio personal los enunciados y archivos base de las siguientes prácticas que vayamos realizando.

En el apartado de Preparación se indica cómo proceder para realizar estas tareas.

Recuerda que en todo momento estarás usando el mismo repositorio. Lo único que harás será incorporar nuevos cambios con los archivos de las siguientes prácticas.

Requisitos de software

Para poder realizar esta práctica y que funcione adecuadamente el entorno de test será necesario instalar el siguiente software en el equipo:

Desarrollo guiado por test

Para realizar la práctica se seguirán los principios del Desarrollo Guiado por Test. Para ello se proporciona en el repositorio una serie de ficheros que permiten ejecutar tests. Dichos tests comprobarán que el programa cumple con algunos de los requisitos de la práctica.

El repositorio se ha configurado para que se ejecuten los tests automáticamente en la nube de GitHub cuando se realice un push o una pull request. Para ello se hará uso del servicio GitHub Actions. Los ficheros presentes en la carpeta .github/workflows/ contienen la configuración necesaria para activar la acción de ejecución de tests. Dichos ficheros están convenientemente comentados. Se puede ver el resultado de la ejecución de los tests en la pestaña Actions del repositorio o bien en su página principal (un aspa roja indica fallo en algún test y un icono verde indica que se han superado). Fuente: https://docs.github.com/en/actions/guides/building-and-testing-nodejs

¡IMPORTANTE! Para que el servicio GitHub Actions se active en tu repositorio debes acceder a la pestaña Actions y activarlo. ./imagenes/activar_actions.png

Preparación

  1. Instalar los requisitos de software indicados
  2. Abrir un terminal
  3. Situarse en la carpeta del repositorio personal de la práctica
  4. Añadir el remoto secundario a tu repositorio personal. Para ello hay que ejecutar el comando:
    git remote add profesor https://github.com/pedroprieto/practica_dwec_gestor_presupuesto.git
        
  5. Incorporar a tu repositorio personal los cambios realizados por el profesor correspondientes a los archivos de esta práctica. Para ello hay que ejecutar:
    git pull profesor master
        
  6. Este comando descarga los cambios que ha realizado el profesor en el repositorio base y los integra en tu repositorio personal. Tras realizar este paso, seguramente git abra el editor configurado por defecto para que introduzcas un mensaje para crear un nuevo commit que integre tus cambios y los cambios del profesor. Debes introducir el texto y guardar los cambios.
  7. En principio no deben producirse conflictos. En caso de que se produzcan (por ejemplo, porque has editado el fichero .gitignore y yo también porque lo exigía la práctica), resuélvelos y notifícamelo a través de un Issue.
  8. Ejecuta el comando git push para subir los cambios a tu repositorio personal (el remoto principal) en GitHub y que queden guardados ahí también.
  9. Ejecutar el comando npm install. Este comando instalará todas las librerías de Node necesarias para ejecutar los tests. Dichas librerías se guardarán en una carpeta con nombre node_modules dentro del repositorio. Nótese que dicha carpeta está excluida del repositorio en el archivo .gitignore.
  10. Ejecutar el comando npm run test1 para lanzar los tests de esta práctica. Este comando podrá ejecutarse tantas veces como sea necesario. Por pantalla se mostrarán los tests que se pasan y los que no, de manera que se tendrá información sobre las acciones que hay que realizar. Los tests también se ejecutarán automáticamente en GitHub Actions al subir los cambios al repositorio y al realizar la pull request.
  11. Si se está utilizando VS Code se puede lanzar la ejecución de los tests desde el propio editor y utilizar breakpoints para interrumpir la ejecución y depurar el programa. Las configuraciones de lanzamiento creadas para ello están en el archivo .vscode/launch.json. ./imagenes/depurar.png
  12. Opcionalmente (recomendable), ejecutar el comando npm test para lanzar todos los tests presentes en el repositorio. Se deberá comprobar que se pasan los tests de las prácticas anteriores a la que se esté realizando. Lógicamente, si el repositorio incluye los tests de prácticas posteriores a la que se esté realizando, dichos tests no se pasarán (ya que el trabajo está todavía por hacer). Este último caso puede darse si la persona no está realizando la práctica propuesta en la semana actual (va con “retraso”, por así decirlo). En GitHub Actions se ejecutarán todos los tests en tareas independientes: así se podrá comprobar si el test de la práctica que se está realizando se ha pasado.

Tareas a realizar

Lectura

Lee atentamente los siguientes artículos y sus correspondientes subsecciones en caso de que las tengan:

Fichero de la aplicación

Crea un fichero llamado gestionPresupuesto.js en la carpeta js del repositorio. A no ser que se indique lo contrario, todo el código que se cree deberá guardarse en este fichero.

Variables globales

Crea las siguientes variables:

  • presupuesto - Valor inicial: 0

Funciones

Crea las siguientes funciones:

  • actualizarPresupuesto - Función de 1 parámetro que se encargará de actualizar la variable global presupuesto. Esta función comprobará que el valor introducido es un número no negativo: en caso de que sea un dato válido, actualizará la variable presupuesto y devolverá el valor del mismo; en caso contrario, mostrará un error por pantalla y devolverá el valor -1.
  • mostrarPresupuesto - Función sin parámetros que se encargará de devolver el texto siguiente: Tu presupuesto actual es de X €, siendo X el valor de la variable global presupuesto.
  • CrearGasto - Función constructora que se encargará de crear un objeto gasto. Esta función devolverá un objeto de tipo gasto. Deberá comprobar que el valor introducido sea un núḿero no negativo; en caso contrario, asignará a la propiedad valor el valor 0.

Objeto gasto

Propiedades

  • descripcion - Almacenará la descripción del gasto en formato cadena
  • valor - Almacenará el valor del gasto en formato numérico

Métodos

  • mostrarGasto - Función sin parámetros que muestre el texto: Gasto correspondiente a DESCRIPCION con valor VALOR €, siendo VALOR y DESCRIPCION las propiedades del objeto correspondientes.
  • actualizarDescripcion - Función de 1 parámetro que actualizará la descripción del objeto.
  • actualizarValor - Función de 1 parámetro que actualizará el valor del objeto. Se encargará de comprobar que el valor introducido sea un número no negativo; en caso contrario, dejará el valor como estaba.

Formato de la entrega

  • Cada persona trabajará en su repositorio personal que habrá creado tras realizar el fork del repositorio base.
  • Todos los archivos de la práctica se guardarán en el repositorio y se subirán a GitHub periódicamente. Es conveniente ir subiendo los cambios aunque no sean definitivos. No se admitirán entregas de tareas que tengan un solo commit.
  • Como mínimo se debe realizar un commit por cada elemento de la lista de tareas a realizar (si es que estas exigen crear código, claro está).
  • Para cualquier tipo de duda o consulta se pueden abrir Issues haciendo referencia al profesor mediante el texto @pedroprieto dentro del texto del Issue. Los issues deben crearse en tu repositorio: si no se muestra la pestaña de Issues puedes activarla en los Settings de tu repositorio.
  • Una vez finalizada la tarea se debe realizar una Pull Request al repositorio base indicando tu nombre y apellidos en el mensaje.