A pesar de ser un tema fundamental en Java y una típica pregunta en entrevistas laborales, el contrato equals()-hashCode() muchas veces es ignorado por programadores con cierta experiencia en el lenguaje. Creo que esto se debe a que el impacto de no respetar esta condición sólo se hace visible si utilizamos los contenedores HashMap y HashSet o alguna biblioteca de terceros cuya lógica se base en este contrato. Fuera de eso nuestra clase “puede andar por la vida” sin enterarse de que no está cumpliendo el contrato ya que no verá consecuencias.
En la primera nota sobre expresiones regulares vimos cómo podemos escribir una regex que coincida caracteres específicos (o grupos de caracteres) en ciertas posiciones. De manera que es múy fácil crear una regex que encuentra una x seguida de un espacio en blanco, seguida de una y. Pero qué si necesitamos encontrar una a seguida de entre cuatro y seis dígitos, seguidos de una b. Esto es posible y vamos a ver cómo se hace.
¡No es chiste! Los desarrolladores le temen a las expresiones regulares. Y sí, lo entiendo. Se ven horrible. Pero son poderosas.
Y es mucho más difícil leerlas que escribirlas. Lo que no es ideal. Pero al menos te podés beneficiar escribiendo regex aquí y allá. Posiblemente sea buena idea documentarlas con un comentario significativo en el código para tu futuro yo. Aprender a escribir algunas regex simples y, aún así, poderosas no es imposible y estoy escribiendo este artículo para probarlo.
Cualquiera que haya estado trabajando un poco en el área de sistemas u otras tareas fuertemente asistidas por computadora ha tenido la necesidad de renombrar muchos archivos con un criterio único. Y sin una herramienta que facilite el trabajo se trata de un proceso manual, monótono y aburrido.
Cuando tenemos un conjunto de archivos que tienen una parte en común, ya sea prefijo, sufijo o incluso una sección en medio del nombre, es posible que necesitemos cambiar esa parte común en todos ellos.
Quien necesita subir un proyecto a GitHub puede encontrase en distintas situaciones, y eso podría variar el procedimiento a seguir. A continuación describo la secuencia de pasos que más se adapta a las variantes típicas. Por lo tanto algunos de los pasos enumerados pueden no ser necesarios. Por ejemplo, si ya tenemos instalado el cliente de Git, saltearemos el paso que explica cómo instalarlo. También hay variaciones dependiendo del sistema operativo.