En una aplicación de escritorio soberana con deshacer/rehacer de varios niveles (es decir, Photoshop, Word, etc.), ¿sería bueno o malo poder guardar y restaurar el historial de deshacer de un archivo con el propio archivo? Mi reacción inicial es "buena", sin embargo, descubrí que ocasionalmente mantengo Control + Z hasta que deja de funcionar para volver a una versión anterior. ¿Algún estudio o experiencia con esto?
Un ejemplo de dicha aplicación es IntelliJ IDEA (y algunos otros entornos de programación). Además del habitual externo específico del proyecto control de revisión , IDEA tiene un específico de usuario historial local que guarda una revisión de cada archivo en cada guardado (el historial se almacena dentro del directorio de inicio del usuario). Las revisiones antiguas se almacenan de forma predeterminada durante 3 días hábiles activos, después de lo cual se eliminan las revisiones anteriores. Junto con la función de guardar automáticamente todos los archivos cada pocos segundos (mi la preferencia es después de estar inactivo durante 5 segundos), esto significa que nunca tendrá que pensar en guardar archivos, y siempre puede recuperar los datos antiguos. Es un verdadero salvavidas al programar. (A veces también lo uso para averiguar cómo Muchas horas he trabajado en un proyecto, para registrar mis horas de trabajo, porque el historial local muestra la fecha y la hora de cada cambio).
Todavía se necesita un control de revisión externo, pero para otras necesidades: allí comprometerá los cambios generalmente cuando realice un trabajo consistente, al menos una vez cada 1-2 horas, y también es una forma de distribuir sus cambios a otro equipo miembros y hacer copias de seguridad. El historial local, por otro lado, es para recuperarse de percances unos segundos o minutos después de que sucedió.
Creo que muchos otros programas se beneficiarían de una historia local similar. Me encantaría que mi Office Suite lo tuviera, porque deshacer/rehacer y guardar manualmente los archivos son formas muy primitivas de recuperar datos perdidos (no permiten la recuperación selectiva y no sobreviven al reiniciar el programa). También recuerdo haber visto una aplicación de edición de imágenes (no recuerdo el nombre, creo que fue solo para Mac), donde todas las ediciones se realizaron como transformaciones de la imagen original, y en cualquier momento podría volver a cambiar cualquiera de Las ediciones anteriores. Entonces, tal historia es posible incluso con la edición de imágenes.
No creo que quisiera que el historial se almacene dentro del archivo que se está editando; de lo contrario, sería muy grande (una revisión cada dos segundos; mi historial local para proyectos de programación en los que he trabajado en un año es 370 MB) y podría causar un problema de seguridad al filtrar datos que creía haber eliminado, pero un historial por usuario sería excelente.
de vez en cuando desearía que Photoshop o Word tuvieran tanta funcionalidad. Por otro lado, como dijiste, a menudo presiono control-z hasta que se detiene.
Otro problema es el rendimiento. Piense en un borrador de documento de Word que se pasa y edita durante semanas. ¡Sería enorme! y tardan una eternidad en cargar.
Otro problema es la privacidad. No quiero que la gente vea qué pasos tomé para pintar la imagen en Photoshop, o cuál fue mi propuesta anterior para el tablero.
En conclusión, creo que puede ser agradable, pero tendrías que tener una manera de purgar la historia por motivos de rendimiento y privacidad, y quizás si una persona presiona ctrl-z deberías detenerte cuando llegues al estado en que se encontraba el documento cuando se abrió por última vez y pregunte si está seguro de que quiere continuar.
Me parece que no desea deshacer/rehacer, sino versiones de archivos, o control de revisión . (No sé acerca de Photoshop, pero Word tiene esta función, deshabilitada de manera predeterminada).
¿Quizás un tiempo de espera para deshacer que se establece por defecto en 5 minutos (y puede o no ser un tiempo de espera editable)? Abordaría las preocupaciones muy válidas que las personas tienen aquí sobre el valor de deshacer datos días/semanas/meses después. Y abordaría el problema planteado aquí de cerrar accidentalmente una aplicación y perder los datos de deshacer. Y mantendría el valor de mantener presionadas las teclas Ctrl + Z para borrar todos los cambios durante la "sesión" (donde ahora una "sesión" significa cualquier uso que tenga inactividad menos de 5 minutos a la vez)
Me gusta mucho, para proyectos pequeños y grandes.
Google Chrome cuando restaura una pestaña que cerró accidentalmente, vendrá con un historial completo, lo cual es increíble por derecho propio.
Algunas aplicaciones productivas construyen sus artefactos a partir de una pila de acciones, como el modelado 3D en el que aplica operaciones en una pila sin fin y luego puede entrar y cambiar operaciones anteriores y hacer que ese cambio se propague a través de la pila hasta el modificador actual. El formato del archivo se basa en el flujo de acciones, no en un resultado final.
Sin embargo, cualquier aplicación donde no sea obvio "publicar" una versión final o pública de un artefacto incurriría en un gran riesgo. Por ejemplo, si envía un documento de Word con un historial completo de cambios que ofendería al receptor (como una oferta en la que ha cambiado el nombre del cliente de otro cliente o no).
Personalmente creo que es malo. Un sistema de control de versiones sería mejor para esto. No creo que los usuarios esperen que deshacer funcione de esta manera. No veo cómo pueden recordar lo que hay en su pila de deshacer varios días atrás. Y, potencialmente, esto puede consumir mucho espacio en disco y memoria en su aplicación. Me refiero a que los usuarios esencialmente nunca se deshacen de los datos. ¿Cómo maneja los casos de uso en los que los usuarios desean liberar espacio en su disco duro porque se están agotando?
Mi sensación es que esta es la herramienta incorrecta para el trabajo. Deshacer y rehacer trata sobre las acciones dentro de este proceso, para que pueda deshacer/rehacer una acción antes de guardar y continuar. Guardar en las sesiones me parece un requisito diferente, el control de versiones es más el estilo. Puedo ver que hay un lugar para mantener la pila de rehacer con una versión guardada de un archivo/aplicación, lo que significa que puede abrir una versión e inmediatamente deshacer las acciones anteriores, pero cuando comienza a hacer más acciones, pierde esto: la pila se reinicia.
Puedo ver que sería útil, puedo ver algunas veces que me gustaría, pero sigo pensando que no es el uso correcto de esta instalación.