¿Cómo recuerda en qué parte del código desea continuar la próxima vez? [cerrado]


18

Cuando interrumpe el trabajo en algún código (ya sea porque tiene que trabajar en otra cosa o irse de vacaciones o simplemente porque es el final del día), una vez que cierra ese proyecto de Visual Studio, ¿cuál es su forma preferida de recordar? qué desea hacer a continuación cuando comience a trabajar en ese código nuevamente.

¿Establece un marcador de Visual Studio o escribe algo como // TODO: continue here next time? Tal vez tienes una etiqueta especial como // NEXT:? ¿Pones una nota adhesiva en tu monitor? ¿Utiliza una herramienta genial o un complemento de Visual Studio que debería saber?

¿Tiene algún truco personal que lo ayude a encontrar el lugar en su código donde lo dejó la última vez que trabajó en su código?


3
Algunos IDE se pueden configurar para recordar que se abren los últimos archivos y la posición de desplazamiento en esos archivos.
FrustratedWithFormsDesigner

8
// CONSEGUÍ AQUÍ. (Además, ¿quién cierra su IDE?)
Alex Feinman

2
Vim recordará dónde se encontraba en cada archivo cuando se le indique la dirección para hacerlo~/.vimrc
alternativa del

Eclipse abre todos los archivos que tenía abiertos cuando lo cerré, en la misma posición. Si eso no ayuda, git status git diff` y git logson tus amigos.
Ingo

Emacs hará esto si habilita Guardar lugar: emacswiki.org/emacs/SavePlace
Luke Girvin

Respuestas:


17

Arreglo las pruebas unitarias que no funcionan. Si todos pasan, entonces escribo uno nuevo.


1
Vale la pena señalar la consecuencia lógica: dejar una prueba fallida intencionalmente cuando termine el día es una buena manera de recordarse a sí mismo lo que quería trabajar al día siguiente ...
Jules

9

Al comienzo de cada día, tengo un archivo de texto llamado Hoyys Goals.txt, y luego, cada día, agrego la fecha como esta.

Viernes 25/02/2011 Goles

Luego escribo cada proyecto en el que estoy trabajando y lo que tengo que hacer hoy o completarlo.

Luego, al final del día, escribo cosas para hacer mañana.

Este proceso diario me ayuda a recordar exactamente lo que necesito hacer y a asegurarme de que cada día esté bien planificado.


2
Hago lo mismo, pero solo lo escribo en mi bloc de notas con un lápiz
Zachary K

Lo hago también con un bloc de notas, y cada semana me deshago de la página anterior y comienzo una nueva.
Configurador

1
Mantengo todos mis objetivos para cada día, me da un aspecto histórico de todo el trabajo que he realizado y me permite revisar lo que he contribuido a la empresa.
crosenblum

El complemento de Tomboy "Nota del día" es muy bueno para esto, puede configurar una plantilla con un título como "Todos de hoy". Luego puede comenzar cada día mirando las notas del día anterior. live.gnome.org/Tomboy/PluginList
Tim Abell

8

Básicamente nunca olvido en lo que estoy trabajando. De todos modos, Visual Studio se abre en el último archivo en el que estaba trabajando, o nunca cierro Visual Studio y solo hiberno.

Pongo NotImplementedExceptions en abstracciones / implementaciones que no son necesariamente importante continuar desarrollando lo que estaba trabajando.

Coloco muchos TODO en mi código, pero no como usted dijo. Los coloco donde sé que cierto enfoque sería mejor / más eficaz, pero no necesario en este momento. Esto nos da una buena indicación para mí y para futuros desarrolladores sobre dónde hay margen de mejora.

Con la Lista de tareas de Visual Studio, puede ver fácilmente todos los lugares donde dejó estas indicaciones e incluso puede agregar otras personalizadas.

ACTUALIZAR:

" HACK :" también es bueno cuando escribes algo que funciona, pero no estás contento en absoluto.


Pero, ¿qué pasaría si dejaras de trabajar en el proyecto (por más tiempo) porque tuviste que trabajar en otro proyecto?
bitbonk

1
@bitbonk: No dejaría de trabajar en un proyecto, justo en el medio de implementar una determinada función. Probablemente ni siquiera una clase, así que no hay "aquí".
Steven Jeuris

Bueno, que suerte! :)
bitbonk

5

Al final de cada día, escribo en mi libro de trabajo sobre lo que he logrado ese día, lo que espero lograr al día siguiente y las cosas que quedan por hacer.

Al comienzo de cada día, me refiero a mis notas del anterior para refrescarme con lo que necesito hacer. Luego, paso unos minutos más haciendo más notas basadas en lo que ha sucedido desde que me fui para averiguar qué más tengo que hacer y cuáles son mis prioridades.

Encuentro que esto me ayuda a relajarme y soltarme al final del día y aumentar al comienzo. Además, cuando llega el momento de las revisiones anuales o trimestrales, solo tengo que consultar mi libro de trabajo para determinar lo que he estado haciendo durante el período de revisión.



1

En una de las entrevistas en "The Masterminds of Programming" (creo que fue Guido van Rossum, creador de Python), el entrevistado dijo que agregó un //HIERcomentario similar en el lugar donde terminó la última vez. "HIER" es holandés (?) Para aquí y lo elige porque si busca esa cadena es poco probable que encuentre otras ocurrencias


"HIER" (alemán)
bitbonk

"HIER" también en holandés, no "HEIR"
Steven Jeuris

3
//HIERARCHY DOCUMENTATION... ¡Uy!
Mason Wheeler

@Mason: una búsqueda de "solo palabras completas" evitará ese problema.
dan04

1

De lejos, mi forma favorita es a través de TDD. Es bastante obvio dónde está cuando falla su conjunto de pruebas.

Pero, no todos los proyectos permiten TDD, por lo que tiendo a romper el código con un comentario no comentado de dónde lo dejé.

// Some Comment

Becomes Some Comment // Which Produces Some Fatal Error

Ese error fatal asegura que no deje ese código intacto antes de liberarlo.

Por último, siempre puedo verificar mis archivos vcs para ver qué ha cambiado desde mi última confirmación y eso me dará una buena idea de a dónde debería ir a continuación ...


1

Utilizo dos técnicas modernas muy sofisticadas con una curva de aprendizaje muy pronunciada:

  • No apague su computadora . Solo ve a casa y a la mañana siguiente verás en la pantalla el lugar exacto donde dejaste de hackear ayer. Pero los riesgos de perder su punto de control son mucho mayores si se va de vacaciones.
  • Deja un error de compilación y echa un vistazo a otra rama. Entonces, su código C ++ se vería así:

    for (i=0; i<N; i++){
      int j = i + oh, no, my boss wants me to fix text on the front page!
      why? why should I do it?  Jimmy could have done it faster, but
      of course, my office is closer to the boss', and he doesn't want to
      take longer walks, that lazy fat bastard...
    

    De esta manera, el proyecto no se compilará cuando encienda su computadora o regrese a la sucursal donde realizaba el desarrollo activo. Su compilador mostrará la línea y el archivo exactos donde encontró sus desvaríos.

Estas técnicas me ayudaron a reconocer el lugar en el que dejé el desarrollo, y están respaldadas por estudios exhaustivos y la experiencia de muchos programadores de todo el mundo. Te sugiero que las pruebes.


1

Esta es ahora una característica integrada en Visual Studio 2012 donde puede suspender y reanudar su espacio de trabajo. Suspender tomará una instantánea de sus archivos abiertos, puntos de interrupción, lista de observación, elementos de trabajo, etc. y la reanudación lo recuperará. Básicamente todo su contexto de trabajo se guarda y se reanudará exactamente como lo dejó.
http://msdn.microsoft.com/en-us/library/ms181403.aspx

Un video corto que muestra la función está aquí
http://channel9.msdn.com/Series/Visual-Studio-2012-Premium-and-Ultimate-Overview/Visual-Studio-Ultimate-2012-How-to-multi-task- con mi trabajo


0

Mi preferido actualmente es la // NEXT:etiqueta especial . Junto con el explorador TODO de ReSharper , es muy fácil de descubrir y mantener.


0

Mantengo un registro de desarrollo para cada iteración en un subproyecto de documentos no construido en Visual Studio; La última línea en el registro es siempre la siguiente tarea.

Tampoco cierro Visual Studio muy a menudo, solo pon la computadora en modo de espera


0

Para encontrar a qué necesito volver de inmediato, generalmente pongo un comentario en:

//TODO: figure out why the widget doesn't unfrob properly

Lo rodeo con líneas en blanco, y llama mi atención fácilmente cuando lo veo de nuevo. Para problemas a largo plazo a los que tendré que volver eventualmente, utilizo una directiva del compilador Delphi que le permite emitir mensajes mientras compila:

{$MESSAGE WARN 'This method is not yet implemented'}

No estoy seguro si otros idiomas pueden hacer eso ...


En c, #error llena la misma necesidad. Java no lo admite de forma inmediata, pero puede agregar una anotación procesada en tiempo de compilación a su proyecto: es un poco difícil de configurar, pero relativamente simple de usar una vez que lo haya hecho. Estoy seguro de que hay enfoques similares para otros idiomas ...
Jules

0

Las listas TODO no funcionan cuando hablamos de volver a un proyecto de meses anteriores. Los comentarios en el código no funcionan bien para mí, es demasiado fácil de ignorar o recordar si terminé por completo el proyecto X y debo buscar todos primero. Y si tienes un equipo más grande con cada persona que tiene su propia frase TODO ... ugh.

Dado que mi día comienza con la actualización / fusión / compilación, algo que he intentado ocasionalmente es poner un error de compilación intencional en un archivo (pero no registrarlo). Desafortunadamente, dejé de hacer esto después de tener una visita improvisada a la oficina que quería ver una demostración de algo en lo que trabajé la semana anterior. "Aquí, déjame abrir esto ... espera ... qué significa eso ... ok entonces ..."

Entonces, pasé de eso a escribir un caso de prueba fallando intencionalmente.


0

Dejo emacs con el código en el que estaba trabajando en pantalla para el día siguiente.

A veces escribo una nota no compilable en el código diciéndome qué hacer a continuación.

Para un widget realmente complicado donde es probable que me confundan las cosas, me escribiré notas en un cuaderno o como comentario.


0

Si es solo para mantener mi lugar en un archivo mientras hago el seguimiento de una búsqueda, a veces abuso de los puntos de interrupción.

Para realizar un seguimiento durante el fin de semana de dónde estaba, me dejo una nota con el número del problema del rastreador de errores.


0

¿Estás utilizando un sistema de control de versiones? En caso afirmativo, debe confirmar sus cambios al final del día y describir lo que hizo y lo que debe hacer a continuación en el comentario. Y si no, ¿por qué no lo estás?


2
-1 ¡Nunca te comprometas solo a cometer! ¿Y si no hubieras terminado con lo que estabas haciendo? Incluso si está utilizando DVCS, sigue siendo una molestia. Comprometerse en función del cambio lógico, no del día.
alternativa

Respetuosamente no estoy de acuerdo. Debes comprometerte con frecuencia. Si no ha terminado, debe crear una rama temporal y comprometerse a eso, para no romper el tronco. Más tarde, cuando haya terminado, fusionará su rama nuevamente. Comprometerse al final del día también crea una copia de seguridad de su trabajo, en caso de que su computadora falle.
Dima

Pero incluir lo que pretende ser al día siguiente es un abuso de los mensajes de confirmación. Recuerde que se supone que esos mensajes forman un registro de meses útiles en el futuro.
Ben Voigt

@Ben Voigt: como dije, si tienes que detener tu trabajo en medio de una tarea, entonces haz una rama separada. Entonces su mensaje de confirmación solo estará en esa rama, y ​​no en la troncal principal. Además, lo que piensa hacer al día siguiente es una muy buena descripción del estado actual de su código. Puede que sean meses útiles en el futuro.
Dima


0

Soy uno de los pocos que se reinicia todas las noches (todavía en Win XP en el trabajo y siento que funciona mejor), así que creo una tarea de perspectiva con un recordatorio establecido para la mañana siguiente. Puedo poner el nombre del archivo, una copia de la línea de código o una nota suficiente para hacerme saber lo que estaba haciendo.


0

Varias cosas ayudan:

  • Busco el texto "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" que tiene los beneficios que el código no puede ejecutar (ya sea un código compilado o interpretado), por lo que no puedo perderlo. Además, esa etiqueta es de color rojo brillante para mí gracias a la sinestesia , por lo que es muy fácil detectarla incluso en una gran porción de código.

  • El IDE vuelve a abrir los archivos en el lugar donde cada uno estaba abierto (y qué líneas estaban resaltadas / puntos de interrupción), para que pueda recordar rápidamente lo que estaba haciendo.

  • Puedo ver en mi lista de tareas pendientes qué problema estaba intentando resolver / característica para implementar.


+1: Me encantó esto: "Además, esa etiqueta es de color rojo brillante para mí gracias a la sinestesia ..."
Peter Rowell

0

Como no dijo que necesita codificar para compilar realmente tanto en depuración como en versión, un truco que suelo hacer es:

#if DEBUG
#error "YOU LEFT OFF HERE"
#endif

Muy difícil olvidar eso. De lo contrario, pondría una advertencia #pragma en el código para que aparezca cada vez que compile.


0

Yo uso varios trucos:

  • Coloque @@ en los comentarios de código o en un documento para las cosas que deben hacerse en la iteración actual pero no de inmediato. Ningún código o documento sale de mi máquina si contiene @@.

  • Ese lugar específico que necesito para trabajar mañana por la mañana lo marco con @@ AQUÍ. Esto rara vez es necesario porque mi IDE se abrirá donde cierro antes, e incluso puede decirle a Word que lo haga .

  • Todas las cosas que deberían arreglarse / agregarse más tarde van a un sistema de seguimiento de errores adecuado o están en documentos de diseño.

¿Y está seguro de que su Visual Studio no puede recordar la última ubicación en la que estaba trabajando? "Suspender el trabajo con Visual Studio 2012" dice que se puede hacer en 2012 (Google for Visual Studio comienza "se dejó" )

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.