Jak pamiętasz, gdzie w kodzie chcesz kontynuować następnym razem? [Zamknięte]


18

Kiedy przerywasz pracę nad jakimś kodem (czy to dlatego, że musisz popracować nad czymś innym, czy jechać na wakacje, czy po prostu dlatego, że jest koniec dnia), kiedy zamkniesz ten projekt Visual Studio, jaki jest twój ulubiony sposób na zapamiętanie co chcesz zrobić, gdy ponownie zaczniesz pracę nad tym kodem.

Czy ustawiasz zakładkę Visual Studio lub zapisujesz coś takiego // TODO: continue here next time? Może masz specjalny tag jak // NEXT:? Czy umieszczasz karteczkę na monitorze? Czy korzystasz z fajnego narzędzia lub wtyczki Visual Studio, którą powinienem znać?

Czy masz jakąś osobistą sztuczkę, która pomoże Ci znaleźć miejsce w kodzie, w którym przerwałeś ostatnią pracę nad kodem?


3
Niektóre środowiska IDE można ustawić tak, aby zapamiętywały, że ostatnie pliki są otwarte, i przewijają je w tych plikach.
FrustratedWithFormsDesigner

8
// DOSTAJ TUTAJ. (Również, kto zamyka IDE?)
Alex Feinman,

2
Vim zapamięta, gdzie byłeś w każdym pliku, kiedy otrzymałeś odpowiedni kierunek~/.vimrc
alternatywnie

Eclipse otwiera wszystkie pliki, które miałem otwarte, kiedy je zamykałem, w tej samej pozycji. Jeśli to nie pomoże, git status git diff i git logjesteście przyjaciółmi.
Ingo

Emacs zrobi to, jeśli włączysz Save Place: emacswiki.org/emacs/SavePlace
Luke Girvin

Odpowiedzi:


17

Naprawiam które testy jednostkowe nie działają. Jeśli wszyscy przemijają, to piszę nowy.


1
Warto zwrócić uwagę na logiczną konsekwencję: celowe pozostawienie nieudanego testu po zakończeniu dnia jest dobrym sposobem na przypomnienie sobie tego, co chciałbyś pracować następnego dnia ...
Jules

9

Na początku każdego dnia mam plik tekstowy o nazwie Todays Goals.txt, a następnie każdego dnia dodaję taką datę.

Piątek 25.02.2011 Cele

Następnie zapisuję każdy projekt, nad którym pracuję, i to, co muszę dziś zrobić lub go ukończyć.

Pod koniec dnia zapisuję rzeczy do zrobienia jutro.

Ten codzienny proces pomaga mi zapamiętać dokładnie to, co muszę zrobić, i upewnić się, że każdy dzień jest dobrze zaplanowany.


2
Robię to samo, ale po prostu piszę ołówkiem w moim notatniku
Zachary K

Robię to również za pomocą notatnika i co tydzień pozbywam się starej strony i zaczynam nową.
konfigurator

1
Każdego dnia zachowuję wszystkie swoje cele, nadaje mi historyczny wygląd całej pracy, którą wykonałem, i chcę przejrzeć, co wnieśliśmy do firmy.
crosenblum

Dodatek Tomboy „Note of the Day” jest do tego bardzo dobry, możesz ustawić szablon z nagłówkiem „Today's todos”. Następnie możesz rozpocząć każdy dzień, przeglądając notatki z poprzedniego dnia. live.gnome.org/Tomboy/PluginList
Tim Abell

8

Zasadniczo nigdy nie zapominam nad czym pracuję. Visual Studio wyskakuje przy ostatnim pliku, nad którym i tak pracowałeś, albo nigdy nie zamykam Visual Studio i po prostu hibernuję.

I miejsce NotImplementedExceptions w abstrakcji / wdrożeń, które niekoniecznie są ważne dla dalszego rozwoju, co byłem w pracy.

W moim kodzie umieszczam wiele TODO , ale nie tak, jak powiedziałeś. Umieszczam je tam, gdzie wiem, że pewne podejście byłoby ładniejsze / bardziej wydajne, ale w tej chwili nie jest konieczne. Daje to miłą wskazówkę dla mnie i przyszłych programistów, gdzie jest miejsce na ulepszenia.

Korzystając z Listy zadań Visual Studio, możesz łatwo przeglądać wszystkie miejsca, w których pozostawiłeś te wskazania, a nawet dodawać własne.

AKTUALIZACJA:

HACK :” jest również miłe, gdy piszesz coś, co działa, ale wcale nie jesteś zadowolony.


Ale co, jeśli przestaniesz pracować nad projektem (na dłużej), ponieważ musisz pracować nad innym projektem.
bitbonk

1
@bitbonk: Nie przestałbym pracować nad projektem w trakcie wdrażania pewnej funkcji. Prawdopodobnie nawet klasa, więc nie ma tu „tutaj”.
Steven Jeuris,

Cóż, mam szczęście! :)
bitbonk

5

Na koniec każdego dnia piszę w zeszycie ćwiczeń o tym, co osiągnąłem tego dnia, o tym, czego oczekuję następnego dnia i co pozostało do zrobienia.

Na początku każdego dnia odnoszę się do moich notatek z poprzedniego, aby odświeżyć się tym, co muszę zrobić. Następnie spędzam kilka minut, robiąc więcej notatek na podstawie tego, co się wydarzyło, odkąd odszedłem, aby dowiedzieć się, co jeszcze muszę zrobić i jakie są moje priorytety.

Uważam, że to pomaga mi się zrelaksować i puścić pod koniec dnia i przyspieszyć na początku. Ponadto, gdy przychodzi czas na coroczne lub kwartalne recenzje, muszę po prostu odwołać się do mojego skoroszytu, aby ustalić, co robiłem w okresie przeglądu.



1

W jednym z wywiadów w „The Masterminds of Programming” (myślę, że to Guido van Rossum, twórca Pythona), rozmówca powiedział, że dodał //HIERpodobny komentarz w miejscu, w którym skończył ostatni raz. „HIER” jest tutaj niderlandzki (?) I wybrał go, ponieważ podczas wyszukiwania tego ciągu jest mało prawdopodobne, aby znaleźć inne wystąpienia


„HIER” (niemiecki)
bitbonk

„HIER” również w języku holenderskim, nie „HEIR”
Steven Jeuris,

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

@Mason: Wyszukiwanie „tylko całe słowo” pozwoli uniknąć tego problemu.
dan04

1

Zdecydowanie moją ulubioną drogą jest TDD. To oczywiste, gdzie jesteś, gdy twój zestaw testów zawiedzie.

Ale nie wszystkie projekty pozwalają na TDD, więc mam tendencję do łamania kodu bez komentarza, gdzie przerwałem.

// Some Comment

Becomes Some Comment // Which Produces Some Fatal Error

Ten błąd krytyczny zapewnia, że ​​nie pozostawiam tego kodu nietkniętego przed jego opublikowaniem.

Wreszcie, zawsze mogę sprawdzić moje vcs, aby zobaczyć, co zostało zmienione od czasu ostatniego zatwierdzenia, a to da mi dobry pomysł, gdzie powinienem iść dalej ...


1

Używam dwóch bardzo wyrafinowanych nowoczesnych technik o bardzo stromej krzywej uczenia się:

  • Nie wyłączaj komputera . Po prostu idź do domu, a następnego ranka zobaczysz na ekranie dokładne miejsce, w którym wczoraj przestałeś hakować. Ale ryzyko utraty punktu kontrolnego jest znacznie wyższe, jeśli wyjeżdżasz na wakacje.
  • Pozostaw błąd kompilacji i sprawdź w innym oddziale. Twój, powiedzmy, kod C ++ wyglądałby tak:

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

    W ten sposób projekt nie będzie się budował po włączeniu komputera lub powrocie do oddziału, w którym aktywnie pracowałeś. Twój kompilator pokaże dokładną linię i plik, w którym napotkał twoje ranty.

Techniki te pomogły mi rozpoznać miejsce, w którym porzuciłem rozwój, a także poparte wszechstronnymi badaniami i doświadczeniem wielu programistów na całym świecie. Proponuję je wypróbować.


1

Jest to teraz zintegrowana funkcja programu Visual Studio 2012, w której można zawiesić i wznowić obszar roboczy. Zawieszenie spowoduje wykonanie migawki twoich otwartych plików, punktów przerwania, listy obserwowanej, elementów pracy itp. I wznowienie przywróci je. Zasadniczo cały kontekst pracy jest zapisywany i zostanie wznowiony dokładnie tak, jak opuściłeś.
http://msdn.microsoft.com/en-us/library/ms181403.aspx

Krótki film pokazujący tę funkcję znajduje się tutaj
http://channel9.msdn.com/Series/Visual-Studio-2012-Premium-and-Ultimate-Overview/Visual-Studio-Ultimate-2012-How-to-multi-task- with-My-Work


0

Mój obecny preferowany sposób to specjalny // NEXT:tag. Wraz z ReSharper „s TODO Explorer to jest bardzo łatwe do odkrycia i utrzymaniu.


0

Prowadzę dziennik rozwoju dla każdej iteracji w nieskompilowanym podprojekcie Dokumenty w Visual Studio; ostatni wiersz w dzienniku jest zawsze kolejnym zadaniem.

Nie zamykam też zbyt często studia wizualnego, zamiast tego przełączam komputer w tryb gotowości


0

Aby znaleźć to, do czego muszę natychmiast wrócić, zazwyczaj umieszczam komentarz w:

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

Otaczam go pustymi liniami i łatwo przyciąga moją uwagę, gdy znów go widzę. W przypadku problemów długoterminowych, do których muszę w końcu wrócić, korzystam z dyrektywy kompilatora Delphi, która umożliwia wysyłanie wiadomości podczas kompilacji:

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

Nie jestem pewien, czy inne języki to potrafią ...


W c #error spełnia tę samą potrzebę. Java nie obsługuje go od razu po wyjęciu z pudełka, ale możesz dodać adnotację przetwarzaną w czasie kompilacji do swojego projektu: konfiguracja jest trochę pracochłonna, ale po zakończeniu jest stosunkowo prosta. Jestem pewien, że istnieją inne podejścia do innych języków ...
Jules

0

Listy TODO nie działają, gdy mówimy o powrocie do projektu sprzed miesięcy. Komentarze w kodzie nie działają dla mnie dobrze, po prostu zbyt łatwo je zignorować lub zapamiętać, czy całkowicie ukończyłem projekt X i najpierw powinienem szukać todos. A jeśli masz większy zespół, w którym każda osoba ma swoje zdanie DO ZROBIENIA ... ugh.

Ponieważ mój dzień zaczyna się od aktualizacji / scalenia / kompilacji, czasami próbowałem umieścić celowy błąd kompilacji w pliku (ale go nie sprawdzać). Niestety przestałem to robić po zaimprowizowanym przyjęciu do biura, które chciało zobaczyć demo czegoś, nad czym pracowałem tydzień wcześniej. „Proszę, pozwól mi to otworzyć ... poczekaj… co to znaczy… ok, więc…”

Więc przeszedłem od pisania do celowo nieudanej próby testowej.


0

Zostawiam emacsa z kodem, nad którym pracowałem na ekranie na następny dzień.

Czasami piszę w kodzie notatkę, której nie można skompilować, mówiąc, co mam dalej robić.

W przypadku naprawdę skomplikowanego widżetu, w którym mogę się mylić, napiszę sobie notatki w notatniku lub jako komentarz.


0

Jeśli chcę po prostu zachować swoje miejsce w pliku podczas wyszukiwania, czasami nadużywam punktów przerwania.

Aby śledzić weekend, w którym byłem, zostawiam notatkę z numerem problemu z funkcją śledzenia błędów.


0

Czy używasz systemu kontroli wersji? Jeśli tak, to powinieneś zatwierdzić swoje zmiany na koniec dnia i opisać, co zrobiłeś i co musisz zrobić w komentarzu. A jeśli nie, to czemu nie jesteś?


2
-1 Nigdy nie zobowiązuj się tylko do zobowiązania! Co jeśli nie skończyłeś z tym, co robiłeś? Nawet jeśli korzystasz z DVCS, nadal jest to uciążliwe. Zatwierdź na podstawie logicznej zmiany, a nie dnia.
alternatywnie

Z szacunkiem się nie zgadzam. Powinieneś często popełniać. Jeśli nie zostało to zrobione, powinieneś utworzyć tymczasową gałąź i zobowiązać się do tego, aby nie złamać pnia. Później, kiedy skończysz, scalasz swój oddział z powrotem. Podjęcie decyzji pod koniec dnia powoduje również utworzenie kopii zapasowej pracy na wypadek śmierci komputera.
Dima

Ale uwzględnienie tego, czym zamierzasz być następnego dnia, jest nadużyciem wiadomości zatwierdzających. Pamiętaj, że te wiadomości powinny tworzyć dziennik przydatne miesiące później.
Ben Voigt

@Ben Voigt: jak powiedziałem, jeśli musisz przerwać pracę w trakcie zadania, uczyń z niego oddzielną gałąź. Wtedy wiadomość zatwierdzenia będzie tylko w tej gałęzi, a nie w głównej linii głównej. Poza tym to, co zamierzasz zrobić następnego dnia, to bardzo dobry opis bieżącego stanu twojego kodu. Może to być przydatne kilka miesięcy później.
Dima


0

Jestem jednym z niewielu, którzy restartują się co noc (wciąż pracuję na Win XP w pracy i po prostu czuję, że działa lepiej.), Więc tworzę zadanie prognostyczne z zestawem przypomnień na następny poranek. Mogę podać nazwę pliku, kopię wiersza kodu lub wystarczającą notatkę, aby poinformować mnie, co robię.


0

Pomaga kilka rzeczy:

  • Szukam tekstu „AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA”, który ma zalety, których kod nie może uruchomić (niezależnie od tego, czy jest to kod skompilowany czy zinterpretowany), więc nie mogę go przegapić. Ponadto ten znacznik jest dla mnie jaskrawoczerwony dzięki synestezji , więc naprawdę łatwo go zauważyć nawet w dużej części kodu.

  • IDE ponownie otwiera pliki w miejscu, gdzie każdy był otwarty (i które linie zostały podświetlone / wartości graniczne), więc mogę szybko przypomnieć sobie, co robię.

  • Widzę na mojej liście rzeczy do zrobienia, jaki problem próbowałem rozwiązać / funkcję do wdrożenia.


+1: Bardzo mi się podobało: „Poza tym synestezja jest dla mnie jasnoczerwona ...”
Peter Rowell,

0

Ponieważ nie powiedziałeś, że musisz kodować, aby kompilować zarówno w debugowaniu, jak i wydaniu, jedną sztuczką, którą często robię, jest:

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

Bardzo trudno o tym zapomnieć. W przeciwnym razie wstawiłbym ostrzeżenie #pragma w kodzie, aby pojawiało się ono przy każdej kompilacji.


0

Używam kilku sztuczek:

  • Umieść @@ w komentarzach do kodu lub w dokumencie dla rzeczy, które należy zrobić w bieżącej iteracji, ale nie natychmiast. Mój kod lub dokument nie opuszcza mojego komputera, jeśli zawiera @@.

  • To jedno szczególne miejsce, które muszę kontynuować jutro rano, oznaczam @@ TUTAJ. Rzadko jest to konieczne, ponieważ moje IDE otworzy się tam, gdzie wcześniej zamykam, i możesz nawet powiedzieć Wordowi, aby to zrobiło .

  • Wszystkie rzeczy, które powinny zostać naprawione / dodane później, trafiają do odpowiedniego systemu śledzenia błędów lub znajdują się w dokumentach projektowych.

I czy jesteś pewien, że Visual Studio nie pamięta ostatniej lokalizacji, nad którą pracowałeś? „Zawieszanie pracy z Visual Studio 2012” mówi, że można to zrobić w 2012 r. (Google dla Visual Studio start „przerwano” )

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.