La programación es una habilidad fundamental en la era digital en la que vivimos, y es especialmente relevante para carreras en tecnología, ciencias de la computación, ingeniería y otros campos relacionados. A continuación, te brindamos algunas preguntas frecuentes y respuestas útiles que pueden ayudarte en tu curso de programación:
Pueden encontrar una guía de cómo documentar aquí.
Pueden encontrar una guía de cómo funcionan los constructores en Scala aquí.
El método toString
es un método en Scala que devuelve un string que representa a un objeto.
Es usado generalmente para propósitos de debugging y logging, y puede ser sobreescrito para proveer
una implementación personalizada.
Pueden encontrar una guía de cómo funciona el método toString
aquí.
Los métodos equals
y hashCode
son métodos en Scala que se utilizan para comparar dos objetos
y generar un valor hash para un objeto, respectivamente.
Estos métodos son comúnmente utilizados en colecciones y estructuras de datos, además de en tests.
Pueden encontrar una guía de cómo funcionan los métodos equals
y hashCode
aquí.
Sí, pero pregunta antes de hacerlo. Puedes utilizar cualquier herramienta que provea el lenguaje, pero si no lo hemos visto en clases te arriesgas a utilizarlo mal; en este caso, es mejor no ocupar una herramienta a ocuparla mal.
El testing es una parte crucial de la programación, ya que ayuda a asegurarse de que su código funciona correctamente y cumple con los requisitos del proyecto. En esta sección, se proporcionarán algunas pautas útiles para ayudarlo a organizar y escribir pruebas efectivas.
No.
Algunas buenas prácticas para organizar sus pruebas son las siguientes:
-
Utilice una convención de nomenclatura clara y consistente para sus pruebas. Esto hace que sea fácil entender qué se está probando y encontrar pruebas específicas cuando sea necesario. Se recomienda nombrar las clases de prueba con el nombre de la clase que se está probando y agregar el sufijo
Test
. Por ejemplo, si está probando la claseString
, podría llamar a la clase de pruebaStringTest
. Otros nombres comunes para las clases de prueba son agregar el sufijoSpec
oSuite
, por ejemplo,StringSpec
oStringSuite
. -
Agrupe las pruebas relacionadas juntas. Esto podría ser por clase, módulo o funcionalidad. Se recomienda crear una clase de prueba por cada clase que tenga su implementación. Si tiene una clase con muchas pruebas, puede dividirla en varias clases de prueba. Cada archivo debiera contener una sola clase de prueba.
-
Utilice métodos de configuración y desmontaje para evitar la duplicación de código (
beforeEach
yafterEach
en MUnit), aunque es probable que no necesite los métodos de desmontaje. Los métodos de configuración se utilizan para configurar el entorno de prueba y cualquier dato que sea necesario para la prueba, mientras que los métodos de desmontaje se utilizan para limpiar después de que la prueba esté completa. Al utilizar métodos de configuración y desmontaje, puede evitar duplicar código en varias pruebas. -
Utilice nombres descriptivos y concisos que expliquen lo que está probando. Por ejemplo, en lugar de escribir algo como
test("Test constructor")
, utilice algo comotest("A String should be created from a Character array")
. Además, separe cada caso de prueba en bloquestest
individuales, en lugar de agrupar varios casos de prueba en un solo bloquetest
. -
Utilice la misma organización de código que la que utiliza en su implementación. Por ejemplo, si tenemos la siguiente estructura para nuestra implementación:
src
└── main
└── scala
└── example
├── String.scala
└── StringOps.scala
Entonces, nuestra estructura de pruebas debiera ser:
src
└── test
└── scala
└── example
├── StringTest.scala
└── StringOpsTest.scala
- Agregue comentarios y documentación sólo en casos en que la lógica del test es complicada, un nombre descriptivo y conciso para sus tests debiera ser suficiente en la mayoría de los casos.
Anda a File | Invalidate Caches
marca todas las checkboxes y espera a que se reinicie
completamente IntelliJ.
Lo más probable es que no hayas clonado correctamente el repositorio.
Para clonarlo debes ir a tu repositorio en GitHub y hacer click en el botón Code
(El botón
verde D:), ahí, dependiendo de cómo hayan configurado Git deben copiar el link HTTPS, SSH o GitHub
CLI.
Luego, con el link copiado, hacen:
git clone <link HTTPS o SSH>
# Con GitHub CLI sólo tienen que pegar lo que copiaron en la terminal.
# Debiera verse así
gh repo clone <su repo>
Ahora comprueben que funciona haciendo:
# Desde la carpeta de su repo
git status
git branch nombreDeLaBranch
Ahora, para trasladarse a la branch creada, decimos:
git checkout nombreDeLaBranch
Para saber en qué rama están actualmente, pueden utilizar el comando git status, y la primera línea les indicará el nombre de la branch en la que se encuentran.
Para esto vean las instrucciones de aquí
Para esto vean las instrucciones de aquí
Para esto vean las instrucciones de aquí
La diferencia es que nunca debieras usar cmd. Hablo en serio.
Pero hablando en serio, cmd es una herramienta de 1987 (y la versión actual es de 1993), Powershell (PS) es una herramienta publicada el 2006 (con actualizaciones hasta la actualidad). Un error común es creer que los comandos de cmd no pueden usarse desde PS, esto es mentira. La mayoría de los comandos de cmd pueden ejecutarse directamente desde PS o tienen versiones equivalentes en PS, por ejemplo:
REM En cmd podemos "limpiar" la consola con el siguiente comando
cls
# El mismo comando puede ser usado desde PS
cls
# Ahora si hacemos:
cls -?
Obtenemos:
NAME
Clear-Host
...
Esto nos indica que en PS cls
es un alias de Clear-Host
, esto hace que podamos usar uno o el
otro indistintamente (aunque en PS se recomienda que no se use el alias en scripts para mejorar la
legibilidad del código).
Por otro lado, tenemos comandos que no tienen un equivalente en PS como robocopy
(Robust Copy), de nuevo, aquí no hay problemas porque podemos usar robocopy
desde PS de la
misma forma que lo haríamos en cmd
robocopy /help
Hay otras diferencias que pueden ver en el cuadro de abajo, pero en general PS es mejor que cmd en todos los sentidos.