Esta web utiliza cookies propias y de terceros que nos permiten optimizar tu experiencia en el sitio web, evaluar su rendimiento, generar estadísticas de uso y mejorar y añadir nuevas funcionalidades. Mediante el análisis de tus hábitos de navegación podemos mostrar contenidos más relevantes y medir las interacciones con la web.
Puede obtener más información aquí.
Una cookie es un fichero que se descarga en tu ordenador al acceder a determinadas páginas web.Las cookies permiten a una página web, entre otras cosas, almacenar y recuperar información sobre los hábitos de navegación de un usuario o de su equipo, gestionar el acceso de usuarios a zonas restringidas de la web, etc.Tipo de cookies utiliza esta página web:
Este tipo de cookies permiten al usuario la navegación a través de una página web, plataforma o aplicación y la utilización de las diferentes opciones o servicios que en ella existan como, por ejemplo, controlar el tráfico y la comunicación de datos, identificar la sesión, acceder a partes de acceso restringido, seleccionar el idioma, o compartir contenidos a través de redes sociales.
| Nombre | Descripcion | Duración | Habilitado |
|---|---|---|---|
| ID de tu sesión. Te identifica en este navegador y nos permite gestionar tus cookies o almacenar tu cesta de la compra. | 8760 horas | ||
| Indica qué cookies has aceptado. | 8760 horas | ||
| Una cookie PHPSESSID es una cookie de sesión que se utiliza para identificar la sesión de un usuario en un sitio web. | 8760 horas |
Son aquéllas que posibilitan el seguimiento y análisis del comportamiento de los usuarios en nuestra página. La información recogida se utiliza para la medición de la actividad de los usuarios en la web y la elaboración de perfiles de navegación de los usuarios, con la finalidad de mejorar la web, así como los productos y servicios ofertados.
| Nombre | Descripcion | Duración | Habilitado |
|---|---|---|---|
| Es un servicio de analítica web que utiliza cookies de análisis. | 8760 horas |
Estas cookies pueden ser establecidas a través de nuestro sitio por nuestros socios publicitarios. Pueden ser utilizadas por esas empresas para crear un perfil de sus intereses y mostrarle anuncios relevantes en otros sitios. No almacenan directamente información personal, sino que se basan en la identificación única de su navegador y dispositivo de Internet. Si no permite utilizar estas cookies, verá menos publicidad dirigida.
| Nombre | Descripcion | Duración | Habilitado |
|---|
Una cookie es un fichero que se almacena en el dispositivo con que el usuario accede a una página web (Ordenador, Smartphone, Tablet, etc.), guardando información relativa a los datos de navegación.
Las cookies permiten a un sitio web, entre otras cosas, almacenar y recuperar información sobre los hábitos de navegación de un usuario o de su equipo, gestionar el acceso de usuarios, personalizar el idioma de la web, conocer el número de usuarios simultáneos y la reincidencia de las visitas, etc.
Política de Privacidad
Puedes consultar los datos del Responsable del tratamiento, las finalidades del tratamiento, las bases legitimadoras, el plazo de conservación, etc. en nuestra página de "Política de Privacidad".
¿Qué tipos de cookies utiliza esta página web?
Las cookies que utilizamos en nuestro sitio web, se suelen clasificar en tres categorías distintas.
Clasificación según entidad que la gestiona
Según la entidad que las gestione distinguiremos entre cookies propias y de terceros.
Cookies propias
Las cookies propias son las implementadas por el propietario de la web, como pueden ser las cookies de sesión y personalización.
Cookies de terceros
Las cookies de terceros, son creadas por una empresa externa, como suelen ser las cookies de análisis, por ejemplo las de Google Analytics.
Clasificación según la duración
Si las clasificamos por el tiempo que permanecen en el equipo con el que se accede a la web (Ordenador, Smartphone, Tablet, etc.), podremos distinguir entre cookies de sesión y cookies persistentes.
Cookies de sesión
Las cookies de sesión, solo existen mientras se tiene la página web abierta en el navegador, se suelen usar para almacenar información necesaria para la prestación del servicio, como puede ser el nombre de usuario o la lista de la cesta de la compra.
Cookies persistentes
Las cookies persistentes, permanecen en el equipo una vez cerrada la página web.
Como ejemplo de cookies de tipo persistente, es la cookie que almacena la respuesta al mensaje de cookies, la cual se usa para evitar que se muestre el mensaje de cookies cada vez que el usuario abre la web.
Clasificación según el tipo de información que almacenan
Según el tipo de información que gestionan podemos clasificarlas en cookies de análisis, cookies técnicas y cookies de personalización.
Cookies de Análisis
Son aquéllas que posibilitan el seguimiento y análisis del comportamiento de los usuarios en nuestra página.
La información recogida se utiliza para la medición de la actividad de los usuarios en la web, con la finalidad de mejorar la web, así como los productos y servicios ofertados.
Cookies Técnicas
Este tipo de cookies permiten al usuario la navegación a través de una página web y la utilización de las diferentes opciones o servicios que en ella existen como, por ejemplo, identificar la sesión, acceder a partes de acceso restringido, o la gestión de la cesta de la compra.
Estas cookies son las únicas que no se pueden desactivar, ya que consideramos que son imprescindibles para el correcto funcionamiento del sitio web.
Cookies de Personalización
Son aquéllas que permiten adaptar la navegación en nuestra página web a tus preferencias, como pueden ser Idioma, navegador utilizado, etc.
Listado de cookies
A continuación se muestra una tabla con las cookies que utiliza nuestra página web.
| Nombre | Propia / Terceros | Duración | Descripción | Propietario |
| _gat | Terceros | 1 minuto | Se usa para limitar el porcentaje de solicitudes. | Google Analytics |
| _ga | Terceros | 2 años | Se usa para distinguir a los usuarios. | Google Analytics |
| _gid | Terceros | 24 horas | Se usa para distinguir a los usuarios. | Google Analytics |
| PHPSESSID | Propia | Sesion | Cookie de Sesion, desaparece cuando se cierra la web. | Arnoia |
| COOKIE_CONSENT | Propia | 1 mes | Cookie de personalización. | Arnoia |
| SESS_ID | Propia | 10 días | Cookie de Sesion. | Arnoia |
¿Quién utiliza las cookies?
Las cookies empleadas en esta página web, son utilizadas por el responsable legal de esta página web y por los siguientes servicios o proveedores de servicios:
- Google Analytics: Es un servicio de analítica web que utiliza cookies de análisis. Puede consultar la política de privacidad de este servicio en esta dirección web. https://policies.google.com/privacy?gl=ES&hl=es
¿Cómo puedo desactivar o eliminar las cookies?
Se pueden permitir, bloquear o eliminar las cookies mediante el mensaje de cookies de la página web o a través la configuración de las opciones del navegador instalado en su dispositivo.
Configuración de privacidad mediante mensaje de cookies
Puedes configurar los tipos de cookies que deseas permitir en nuestro sitio web desde el mensaje de cookies.
El mensaje de cookies se mostrará la primera vez que accedas al sitio web y, debido a que la cookie ALLOW_COOKIES tiene una duración determinada, el mensaje se volverá a mostrar cuando esta Cookie caduque.
Es posible forzar la aparición del mensaje de cookies eliminando manualmente la cookie ALLOW_COOKIES.
Configuración de privacidad en navegadores
A continuación indicamos los pasos para acceder a la configuración de privacidad en los principales navegadores.
Microsoft Internet Explorer: Herramientas -> Opciones de Internet -> Privacidad -> Configuración.
Microsoft Edge: Herramientas -> Configuración -> Privacidad, búsqueda y servicios.
Firefox: Herramientas -> Ajustes -> Privacidad & Seguridad.
Chrome: Herramientas -> Configuración -> Seguridad y privacidad -> Cookies y otros datos de sitios.
Safari: Preferencias -> Seguridad.
Opera: Herramientas -> Privacidad y seguridad.
Debido a que la configuración de cada navegador es distinta y con las nuevas versiones pueden sufrir cambios, recomendamos consultar la información sobre cookies que ofrecen los principales navegadores de internet en su ayuda o en la web de soporte correspondiente.
En los siguientes enlaces podrás encontrar información adicional sobre las opciones de configuración de las cookies en los principales navegadores.
– Internet Explorer: https://support.microsoft.com/es-es/windows/eliminar-y-administrar-cookies-168dab11-0753-043d-7c16-ede5947fc64d
– Microsoft Edge: https://support.microsoft.com/es-es/microsoft-edge/eliminar-las-cookies-en-microsoft-edge-63947406-40ac-c3b8-57b9-2a946a29ae09
– Google Chrome Escritorio: https://support.google.com/chrome/answer/95647?co=GENIE.Platform%3DDesktop&oco=1
– Google Chrome Android: https://support.google.com/chrome/answer/95647?co=GENIE.Platform%3DAndroid&oco=1
– Firefox: https://support.mozilla.org/es/kb/cookies-informacion-que-los-sitios-web-guardan-en-
– Safari Escritorio: https://support.apple.com/es-es/guide/safari/sfri11471/mac
– Safari iPhone, iPad o iPod touch: https://support.apple.com/es-es/HT201265
– Opera: https://help.opera.com/en/latest/web-preferences/#cookies
Cada año, se invierten innumerables horas y se pierden numerosos recursos debido a código mal escrito, ralentizando el desarrollo, disminuyendo la productividad, generando graves fallos e incluso pudiendo acabar con la organización o empresa. El reconocido experto de software Robert C. Martin, junto con sus colegas de Object Mentor, nos presentan sus óptimas técnicas y metodologías ágiles para limpiar el código sobre la marcha y crearlo de forma correcta, de este modo mejorará como programador. Esta obra se divide en tres partes. La primera describe los principios, patrones y prácticas para crear código limpio. La segunda incluye varios casos de estudio cuya complejidad va aumentando. Cada ejemplo es un ejercicio de limpieza y transformación de código con problemas. La tercera parte del libro contiene una lista de heurística y síntomas de código erróneo (smells) confeccionada al crear los casos prácticos. El resultado es una base de conocimientos que describe cómo pensamos cuando creamos, leemos y limpiamos código. Imprescindible para cualquier desarrollador, ingeniero de software, director de proyectos, jefe de equipo o analista de sistemas interesado en crear código de mejor calidad. ¡El libro que todo programador debe leer!Prólogo Introducción Sobre la imagen de cubierta 1. Código limpio Hágase el código Código incorrecto El coste total de un desastre El gran cambio de diseño Actitud El enigma ¿El arte del código limpio? Concepto de código limpio Escuelas de pensamiento Somos autores La regla del Boy Scout Precuela y principios Conclusión Bibliografía 2. Nombres con sentido Introducción Usar nombres que revelen las intenciones Evitar la desinformación Realizar distinciones con sentido Usar nombres que se puedan pronunciar Usar nombres que se puedan buscar Evitar codificaciones Notación húngara Prefijos de miembros Interfaces e implementaciones Evitar asignaciones mentales Nombres de clases Nombres de métodos No se exceda con el atractivo Una palabra por concepto No haga juegos de palabras Usar nombres de dominios de soluciones Usar nombres de dominios de problemas Añadir contexto con sentido No añadir contextos innecesarios Conclusión 3. Funciones Tamaño reducido Bloques y sangrado Hacer una cosa Secciones en funciones Un nivel de abstracción por función Leer código de arriba a abajo: la regla descendente Instrucciones Switch Usar nombres descriptivos Argumentos de funciones Formas monádicas habituales Argumentos de indicador Funciones diádicas Triadas Objeto de argumento Listas de argumentos Verbos y palabras clave Sin efectos secundarios Argumentos de salida Separación de consultas de comando Mejor excepciones que devolver códigos de error Extraer bloques Try/Catch El procesamiento de errores es una cosa El imán de dependencias Error.java No repetirse Programación estructurada Cómo crear este tipo de funciones Conclusión SetupTeardownIncluder Bibliografía 4. Comentarios Los comentarios no compensan el código incorrecto Explicarse en el código Comentarios de calidad Comentarios legales Comentarios informativos Explicar la intención Clarificación Advertir de las consecuencias Comentarios TODO Amplificación Javadoc en API públicas Comentarios incorrectos Balbucear Comentarios redundantes Comentarios confusos Comentarios obligatorios Comentarios periódicos Comentarios sobrantes Comentarios sobrantes espeluznantes No usar comentarios si se puede usar una función o una variable Marcadores de posición Comentarios de llave de cierre Asignaciones y menciones Código comentado Comentarios HTML Información no local Demasiada información Conexiones no evidentes Encabezados de función Javadocs en código no público Ejemplo Bibliografía 5. Formato La función del formato Formato vertical La metáfora del periódico Apertura vertical entre conceptos Densidad vertical Distancia vertical Declaraciones de variables Variables de instancia Funciones dependientes Afinidad conceptual Orden vertical Formato horizontal Apertura y densidad horizontal Alineación horizontal Sangrado Romper el sangrado Ambitos ficticios Reglas de equipo Reglas de formato de Uncle Bob 6. Objetos y estructuras de datos Abstracción de datos Antisimetría de datos y objetos La ley de Demeter Choque de trenes Híbridos Ocultar la estructura Objetos de transferencia de datos Registro activo Conclusión Bibliografía 7. Procesar errores Usar excepciones en lugar de códigos devueltos Crear primero la instrucción try-catch-finally Usar excepciones sin comprobar Ofrecer contexto junto a las excepciones Definir clases de excepción de acuerdo a las necesidades del invocador Definir el flujo normal No devolver Null No pasar Null Conclusión Bibliografía 8. Límites Utilizar código de terceros Explorar y aprender límites Aprender log4j Las pruebas de aprendizaje son algo más que gratuitas Usar código que todavía no existe Límites limpios Bibliografía 9. Pruebas de unidad Las tres leyes del DGP Realizar pruebas limpias Las pruebas propician posibilidades Pruebas limpias Lenguaje de pruebas específico del dominio Un estándar dual Una afirmación por prueba Un solo concepto por prueba F.I.R.S.T. Conclusión Bibliografía 10. Clases Organización de clases Encapsulación Las clases deben ser de tamaño reducido El Principio de responsabilidad única Cohesión Mantener resultados consistentes en muchas clases de tamaño reducido Organizar los cambios Aislarnos de los cambios Bibliografía 11. Sistemas Cómo construir una ciudad Separar la construcción de un sistema de su uso Separar Main Factorías Inyectar dependencias Evolucionar Aspectos transversales Proxies de Java Estructuras AOP Java puras Aspectos de AspectJ Pruebas de unidad de la arquitectura del sistema Optimizar la toma de decisiones Usar estándares cuando añadan un valor demostrable Los sistemas necesitan lenguajes específicos del dominio Conclusión Bibliografía 12. Emergencia Limpieza a través de diseños emergentes Primera regla del diseño sencillo: Ejecutar todas las pruebas Reglas 2 a 4 del diseño sencillo: Refactorizar Eliminar duplicados Expresividad Clases y métodos mínimos Conclusión Bibliografía 13. Concurrencia ¿Por qué concurrencia? Mitos e imprecisiones Desafíos Principios de defensa de la concurrencia Principio de responsabilidad única (SRP) Corolario: Limitar el ámbito de los datos Corolario: Usar copias de datos Corolario: Los procesos deben ser independientes Conocer las bibliotecas Colecciones compatibles con procesos Conocer los modelos de ejecución Productor-Consumidor Lectores-Escritores La cena de los filosofos Dependencias entre métodos sincronizados Reducir el tamaño de las secciones sincronizadas Crear código de cierre correcto es complicado Probar código con procesos Considerar los fallos como posibles problemas de los procesos Conseguir que primero funcione el código sin procesos El código con procesos se debe poder conectar a otros elementos El código con procesos debe ser modificable Ejecutar con más procesos que procesadores Ejecutar en diferentes plataformas Diseñar el código para probar y forzar fallos Manual Automática Conclusión Bibliografía 14. Refinamiento sucesivo Implementación de Args Cómo se ha realizado Args: El primer borrador Entonces me detuve Sobre el incrementalismo Argumentos de cadena Conclusión 15. Aspectos internos de JUnit La estructura JUnit Conclusión 16. Refactorización de SerialDate Primero, conseguir que funcione Hacer que sea correcta Conclusión Bibliografía 17. Síntomas y heurística Comentarios C1: Información inapropiada C2: Comentario obsoleto C3: Comentario redu