Come ricordi dove vuoi continuare la prossima volta nel tuo codice? [chiuso]


18

Quando interrompi il lavoro su un codice (sia perché devi lavorare su qualcos'altro o andare in vacanza o semplicemente perché è la fine della giornata), una volta chiuso quel progetto di Visual Studio, qual è il tuo modo preferito di ricordare cosa vuoi fare dopo quando inizi a lavorare di nuovo su quel codice.

Imposti un segnalibro di Visual Studio o scrivi qualcosa del genere // TODO: continue here next time? Forse hai un tag speciale come // NEXT:? Metti una nota adesiva sul monitor? Usi uno strumento interessante o un plug-in di Visual Studio che dovrei sapere?

Hai qualche trucco personale che ti aiuta a trovare il posto nel tuo codice dove hai interrotto l'ultima volta che hai lavorato sul tuo codice?


3
Alcuni IDE possono essere impostati per ricordare che gli ultimi file aperti e la posizione di scorrimento in tali file.
FrustratedWithFormsDesigner,

8
// VAI QUI. (Inoltre, chi chiude il proprio IDE?)
Alex Feinman,

2
Vim ricorderà dove ti trovavi in ​​ogni file quando ti veniva data la direzione per farlo~/.vimrc
alternativa il

Eclipse apre tutti i file che avevo aperto quando l'ho chiuso, nella stessa posizione. Se questo non aiuta, git status git diff` e git logsono i tuoi amici.
Ingo,

Emacs lo farà se abiliti Save Place: emacswiki.org/emacs/SavePlace
Luke Girvin

Risposte:


17

Risolvo qualunque unit test non funziona. Se stanno passando tutti, allora ne scrivo uno nuovo.


1
Vale la pena sottolineare la conseguenza logica: lasciare intenzionalmente un test fallito quando finisci la giornata è un buon modo per ricordare a te stesso cosa volevi lavorare il giorno successivo ...
Jules

9

All'inizio di ogni giorno, ho un file di testo chiamato Todays Goals.txt, e poi ogni giorno aggiungo la data in questo modo.

Venerdì 25/02/2011 Gol

Poi scrivo ogni progetto a cui sto lavorando e cosa devo fare oggi o per completarlo.

Alla fine, scrivo le cose da fare domani.

Questo processo quotidiano mi aiuta a ricordare esattamente cosa devo fare e assicurarsi che ogni giorno sia ben pianificato.


2
Faccio lo stesso, ma lo scrivo sul mio blocco note con una matita
Zachary K,

Lo faccio anche con un blocco note e ogni settimana mi libero della vecchia pagina e ne inizio una nuova.
configuratore

1
Mantengo tutti i miei obiettivi per ogni giorno, mi dà uno sguardo storico su tutto il lavoro che ho svolto e rivediamo ciò che ho contribuito alla società.
crosenblum,

L'addome maschiaccio "Note del giorno" è molto buono per questo, puoi impostare un modello con un'intestazione come "I todos di oggi". È quindi possibile iniziare ogni giorno guardando le note del giorno precedente. live.gnome.org/Tomboy/PluginList
Tim Abell,

8

Fondamentalmente non dimentico mai a cosa sto lavorando. Visual Studio si apre all'ultimo file su cui stavi lavorando comunque, oppure non ho mai chiuso Visual Studio e sono solo in letargo.

Ho posto NotImplementedExceptions a astrazioni / implementazioni che non sono necessariamente importante continuare a sviluppare quello che stavo lavorando.

Metto molti TODO nel mio codice, ma non come hai affermato. Li metto dove so che un certo approccio sarebbe più bello / più performante, ma al momento non necessario. Questo dà una buona indicazione per me e per i futuri sviluppatori su dove c'è spazio per miglioramenti.

Utilizzando l'Elenco attività di Visual Studio, puoi visualizzare facilmente tutti i luoghi in cui hai lasciato queste indicazioni e puoi anche aggiungerne di personalizzati.

AGGIORNARE:

" HACK :" è anche bello quando scrivi qualcosa che funziona, ma non sei affatto contento.


E se smettessi di lavorare al progetto (per un periodo più lungo) perché dovevi lavorare su qualche altro progetto.
Bitbonk,

1
@bitbonk: non smetterei di lavorare su un progetto, proprio nel mezzo dell'implementazione di una determinata funzione. Probabilmente nemmeno una lezione, quindi non c'è "qui".
Steven Jeuris,

Bene, sei fortunato! :)
bitbonk,

5

Alla fine di ogni giorno, scrivo nella mia cartella di lavoro ciò che ho realizzato quel giorno, ciò che mi aspetto di realizzare il giorno successivo e le cose che restano da fare.

All'inizio di ogni giorno, mi riferisco ai miei appunti del precedente per rinfrescarmi con ciò che devo fare. Quindi, dedico qualche altro minuto a prendere più appunti in base a ciò che è accaduto da quando sono partito per capire cos'altro devo fare e quali sono le mie priorità.

Trovo che questo mi aiuti a rilassarmi e lasciarmi andare alla fine della giornata e accelerare all'inizio. Inoltre, quando arriva il momento delle revisioni annuali o trimestrali, devo solo fare riferimento alla mia cartella di lavoro per determinare cosa ho fatto durante il periodo di revisione.



1

In una delle interviste in "The Masterminds of Programming", (penso che sia stato Guido van Rossum, creatore di Python), l'intervistato ha detto che ha aggiunto un //HIERcommento simile nel luogo in cui ha terminato l'ultima volta. "HIER" è olandese (?) Per qui e lo sceglie perché se si cerca quella stringa è improbabile trovare altre occorrenze


"HIER" (tedesco)
bitbonk,

"HIER" anche in olandese, non "HEIR"
Steven Jeuris,

3
//HIERARCHY DOCUMENTATION... oops!
Mason Wheeler,

@ Mason: una ricerca "solo parole intere" eviterà questo problema.
dan04,

1

Di gran lunga il mio modo preferito è attraverso TDD. È abbastanza ovvio dove ti trovi quando la tua suite di test fallisce.

Ma non tutti i progetti consentono TDD, quindi tendo a rompere il codice con un commento non commentato di dove avevo interrotto.

// Some Comment

Becomes Some Comment // Which Produces Some Fatal Error

Questo errore fatale mi assicura di non lasciare intatto quel codice prima di rilasciarlo.

Infine, posso sempre controllare il mio vcs per vedere cosa è stato cambiato dal mio ultimo commit e questo mi darà una buona idea di dove dovrei andare dopo ...


1

Uso due tecniche moderne molto sofisticate con una curva di apprendimento molto ripida:

  • Non spegnere il computer . Torna a casa e la mattina dopo vedrai sullo schermo il punto esatto in cui ieri hai smesso di hackerare. Ma i rischi di perdere il checkpoint sono molto più alti se parti per una vacanza.
  • Lascia un errore di compilazione e vai a un altro ramo. Quindi, diciamo, il tuo codice C ++ sarebbe simile al seguente:

    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...
    

    In questo modo il progetto non verrà compilato quando si accende il computer o non si torna al ramo in cui si stava eseguendo lo sviluppo attivo. Il compilatore mostrerà la riga e il file esatti in cui ha incontrato i tuoi rant.

Queste tecniche mi hanno aiutato a riconoscere il luogo in cui ho lasciato lo sviluppo, oltre a essere supportato da studi completi ed esperienza di molti programmatori in tutto il mondo. Ti consiglio di provarli.


1

Questa è ora una funzionalità integrata in Visual Studio 2012 in cui è possibile sospendere e riprendere l'area di lavoro. Suspend farà un'istantanea dei file aperti, punti di interruzione, lista di controllo, elementi di lavoro ecc. E riprenderà lo riporterà. Fondamentalmente l'intero contesto di lavoro viene salvato e riprenderà esattamente come te ne sei andato.
http://msdn.microsoft.com/en-us/library/ms181403.aspx

Un breve video che mostra la funzione è qui
http://channel9.msdn.com/Series/Visual-Studio-2012-Premium-and-Ultimate-Overview/Visual-Studio-Ultimate-2012-How-to-multi-task- con-My-Work


0

La mia preferita preferita è il // NEXT:tag speciale . Insieme all'esploratore TODO di ReSharper , è molto facile da scoprire e mantenere.


0

Conservo un registro di sviluppo per ogni iterazione in un sottoprogetto di documenti non incorporato in Visual Studio; l'ultima riga nel registro è sempre l'attività successiva.

inoltre non chiudo molto spesso Visual Studio, ma metto il computer in standby


0

Per trovare ciò di cui ho bisogno per tornare immediatamente, di solito inserisco un commento in:

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

Lo circondo con linee vuote e attira facilmente la mia attenzione quando lo vedo di nuovo. Per problemi a più lungo termine che dovrò eventualmente tornare alla fine, utilizzo una direttiva del compilatore Delphi che consente di emettere messaggi durante la compilazione:

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

Non sono sicuro che altre lingue possano farlo ...


In c, #error soddisfa lo stesso bisogno. Java non lo supporta immediatamente, ma puoi aggiungere un'annotazione elaborata in fase di compilazione al tuo progetto: è un po 'di lavoro da configurare, ma relativamente semplice da usare dopo averlo fatto. Sono sicuro che ci sono approcci simili per altre lingue ...
Jules

0

Gli elenchi TODO non funzionano quando stiamo parlando di tornare a un progetto da mesi prima. I commenti nel codice non funzionano bene per me, è semplicemente troppo facile ignorare o ricordare se ho completamente finito il progetto X e dovrei cercare prima i todos. E se hai una squadra più grande con ogni persona che ha la propria frase TODO ... ugh.

Poiché la mia giornata inizia con update / merge / build, qualcosa che ho provato a volte è quello di inserire un errore di compilazione intenzionale in un file (ma non archiviarlo). Sfortunatamente, ho smesso di farlo dopo aver avuto un drop-in improvvisato in ufficio che voleva vedere una demo di qualcosa su cui ho lavorato la settimana prima. "Ecco, lasciami solo aprire questo ... aspetta ... cosa significa ... ok allora ..."

Quindi, sono passato da quello a scrivere un caso di test intenzionalmente fallito.


0

Lascio a emacs il codice su cui stavo lavorando sullo schermo per il giorno successivo.

A volte scrivo una nota non compilabile nel codice che mi dice cosa fare dopo.

Per un widget davvero complicato in cui rischia di essere confuso sulle cose, scriverò delle note su un taccuino o come commento.


0

Se è solo per mantenere il mio posto in un file mentre seguo una ricerca, a volte abuso dei punti di interruzione.

Per tenere traccia del fine settimana in cui mi trovavo, mi lascio una nota con il numero del problema del bug tracker.


0

Stai utilizzando un sistema di controllo versione? Se sì, allora dovresti impegnare le tue modifiche alla fine della giornata e descrivere cosa hai fatto e cosa devi fare dopo nel commento. E se no, allora perché non lo sei?


2
-1 Non impegnarti mai solo per impegnarti! E se non avessi finito con quello che stavi facendo? Anche se stai usando DVCS, è comunque un fastidio. Commettere in base al cambiamento logico, non al giorno.
alternativa il

Rispetto rispettosamente. Dovresti impegnarti spesso. Se non lo hai fatto, allora dovresti creare un ramo temporaneo e impegnarti a farlo, in modo da non rompere il tronco. Più tardi, quando hai finito, unisci nuovamente il tuo ramo. Commettere alla fine della giornata crea anche un backup del tuo lavoro, nel caso in cui il tuo computer muoia.
Dima,

Ma includere ciò che intendi essere il giorno successivo è un abuso dei messaggi di commit. Ricorda che quei messaggi dovrebbero formare un registro utile mesi lungo la linea.
Ben Voigt,

@Ben Voigt: come ho detto, se devi interrompere il tuo lavoro nel mezzo di un'attività, rendila un ramo separato. Quindi il tuo messaggio di commit sarà solo su quel ramo e non sul trunk principale. Inoltre, ciò che intendi fare il giorno successivo è un'ottima descrizione dello stato corrente del tuo codice. Potrebbero essere utili mesi in futuro.
Dima

0

Non chiudo Visual Studio e metto in letargo Windows alla fine della giornata.


0

Sono uno dei pochi che si riavvia di notte (sempre su Win XP al lavoro e sento solo che funziona meglio), quindi creo un'attività di Outlook con un promemoria impostato per la mattina successiva. Potrei mettere il nome del file, una copia della riga di codice o abbastanza di una nota per farmi sapere cosa stavo facendo.


0

Diverse cose aiutano:

  • Cerco il testo "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" che presenta i vantaggi che il codice non può essere eseguito (sia esso compilato o interpretato), quindi non posso perderlo. Inoltre, quel tag è rosso vivo per me grazie a sinestesia , quindi è davvero facile individuarlo anche in una grande porzione di codice.

  • Il IDE riapre i file nella posizione in cui ciascuno era aperto (e quali linee erano evidenziate / punti di interruzione), così posso ricordare rapidamente cosa stavo facendo.

  • Posso vedere nella mia lista delle cose da fare quale problema stavo tentando di risolvere / caratteristica da implementare.


+1: Mi è piaciuto moltissimo: "Inoltre, quel tag è rosso vivo per me grazie alla sinestesia ..."
Peter Rowell,

0

Dal momento che non hai detto che è necessario codificare per compilare effettivamente sia il debug che la versione, un trucco che faccio spesso è:

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

Molto difficile dimenticarlo. Altrimenti, inserirei un avviso #pragma nel codice in modo che appaia ogni volta che lo compili.


0

Uso diversi trucchi:

  • Inserisci @@ nei commenti di codice o in un documento per le cose che devono essere fatte nell'iterazione corrente ma non immediatamente. Nessun codice o documento lascia la mia macchina se contiene @@.

  • Quel posto specifico che devo continuare a lavorare domani mattina segnalo con @@ QUI. Questo è raramente necessario perché il mio IDE si aprirà dove chiudo prima e puoi persino dire a Word di farlo .

  • Tutte le cose che dovrebbero essere riparate / aggiunte successivamente vanno in un sistema di tracciamento dei bug adeguato o sono nei documenti di progettazione.

E sei sicuro che Visual Studio non ricordi l'ultima posizione su cui stavi lavorando? "Sospendere il lavoro con Visual Studio 2012" afferma che è possibile farlo nel 2012 (l' avvio di Google per Visual Studio "lasciato fuori" )

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.