Używaj punktów kontrolnych do eksploracji
Szybkie iteracje, próbowanie różnych podejść, tymczasowe eksperymenty
Punkty kontrolne w Cursor są jak commity Git dla twojego rozwoju wspomaganego przez AI—ale szybsze i bardziej płynne. Umożliwiają odważne eksperymentowanie, pozwalając próbować śmiałe podejścia refaktoryzacyjne, wiedząc, że możesz natychmiast się wycofać, jeśli coś pójdzie nie tak.
W przeciwieństwie do Git, który wymaga jawnych commitów, Cursor automatycznie tworzy lekkie migawki twojego kodu w kluczowych momentach. Pomyśl o tym jako o inteligentnym systemie “cofnij”, który rozumie semantyczne granice twoich zmian.
Cursor tworzy punkty kontrolne automatycznie gdy:
Możesz również tworzyć punkty kontrolne ręcznie:
// W czacie, po prostu zapytaj:"Stwórz punkt kontrolny przed rozpoczęciem refaktoryzacji"
// Lub użyj przycisku punktu kontrolnego w interfejsie// Znajduje się w obszarze wprowadzania czatu przy przeglądaniu poprzednich wiadomościGdy próbujesz wielu podejść do rozwiązania problemu:
Stwórz podstawowy punkt kontrolny
"Stwórz punkt kontrolny - będziemy próbować trzech różnychpodejść do optymalizacji tego algorytmu"Wypróbuj podejście 1
"Zaimplementuj optymalizację używając memoizacji"Punkt kontrolny i reset
"Stwórz punkt kontrolny. Teraz przywróć do podstawy i wypróbuj podejście 2"Wypróbuj podejście 2
"Zaimplementuj optymalizację używając programowania dynamicznego"Porównaj i wybierz Przejrzyj obie implementacje, wybierz najlepszą, przywróć do niej
Dla refaktoryzacji na dużą skalę używaj punktów kontrolnych jako kamieni milowych:
Używaj punktów kontrolnych jako ubezpieczenia dla ryzykownych operacji:
// Przed złożoną migracją bazy danych"Stwórz punkt kontrolny: stan przed migracją"
// Przed aktualizacją głównych zależności"Punkt kontrolny przed aktualizacją do React 19"
// Przed zastosowaniem automatycznych poprawek"Punkt kontrolny, następnie napraw wszystkie błędy ESLint automatycznie"Gdy budujesz funkcję z wieloma współzależnymi częściami:
Używaj punktów kontrolnych do eksploracji równoległych ścieżek implementacji:
// Punkt kontrolny: podstawa"Zaimplementuj zarządzanie użytkownikami jako REST API"
// Praca postępuje...// Punkt kontrolny: implementacja REST ukończona// Przywróć do: podstawa"Zaimplementuj zarządzanie użytkownikami jako GraphQL API"
// Praca postępuje...// Punkt kontrolny: implementacja GraphQL ukończona// Porównaj obie implementacje"Pokaż mi różnice między implementacjami RESTi GraphQL"
// Podejmij decyzję i kontynuuj wybraną ścieżkąDodawaj znaczące opisy do swoich punktów kontrolnych:
// Dobre praktyki punktów kontrolnych"Punkt kontrolny: system uwierzytelniania działa - wszystkie testy przechodzą""Punkt kontrolny: linia bazowa przed optymalizacją (obecne: odpowiedź 250ms)""Punkt kontrolny: funkcja ukończona, wymaga przeglądu kodu"
// Unikaj niejasnych punktów kontrolnych"Punkt kontrolny" // Zbyt ogólne"Zapisz" // NieopisoweUżywaj punktów kontrolnych do eksploracji
Szybkie iteracje, próbowanie różnych podejść, tymczasowe eksperymenty
Używaj Git do kamieni milowych
Ukończone funkcje, stabilne stany, współpraca zespołowa
Zacznij od czystego stanu Git
git status # Upewnij się, że katalog roboczy jest czystyUżywaj punktów kontrolnych podczas rozwoju
Skonsoliduj w commity Git
# Po osiągnięciu dobrego stanu przez punkty kontrolnegit add -Agit commit -m "feat: implement user authentication"Wyczyść historię punktów kontrolnych
Starszy deweloper użył punktów kontrolnych do izolacji błędu wydajności:
// Punkt kontrolny 1: linia bazowa (błąd obecny)"Punkt kontrolny: linia bazowa błędu wydajności - strona ładuje się 3s"
// Punkt kontrolny 2: dodane logowanie"Dodaj logowanie wydajności do wszystkich zapytań bazy danych"// Odkryto problem zapytania N+1
// Punkt kontrolny 3: pierwsza próba naprawy"Zaimplementuj eager loading dla relacji user.posts"// Zmniejszono do 1.5s, ale nie wystarczająco
// Punkt kontrolny 4: zoptymalizowane zapytanie"Przepisz zapytanie, aby używało pojedynczego JOIN"// Sukces! Czas ładowania 200ms
// Finalne: wyczyść logowanie i zatwierdź"Usuń logowanie debugowania, zachowaj zoptymalizowane zapytanie"Migracja z REST do GraphQL przy zachowaniu kompatybilności wstecznej:
// Punkt kontrolny: stabilne REST API"Stwórz resolvery GraphQL, które wywołują istniejące kontrolery REST"
// To pozwala obu API działać jednocześnie// Punkt kontrolny: wsparcie podwójnego API// Punkt kontrolny: rozpocznij migrację kontrolera"Przenieś logikę biznesową z kontrolerów REST do warstwy serwisu"
// Oba API używają teraz tej samej warstwy serwisu// Punkt kontrolny: wspólna logika biznesowa// Punkt kontrolny: dodaj ostrzeżenia o wycofaniu"Dodaj nagłówki wycofania do punktów końcowych REST"
// Monitoruj użycie i zaplanuj wygaszenie// Punkt kontrolny: REST wycofaneAktualizacja dużej aplikacji z Next.js 13 do 14:
// Strategiczne rozmieszczenie punktów kontrolnychcheckpoints = [ "Przed aktualizacją: wszystkie testy przechodzą", "Zależności zaktualizowane", "Rozpoczęta migracja katalogu app", "Strony skonwertowane na router app", "Middleware zaktualizowane", "Budowa pomyślna", "Testy zaktualizowane i przechodzą", "Benchmarki wydajności ukończone"]
// Każdy punkt kontrolny reprezentuje stabilny, odwracalny stanDobre praktyki:
Efektywne poruszanie się między punktami kontrolnymi:
// Wyświetl historię punktów kontrolnych"Pokaż mi wszystkie punkty kontrolne z tej sesji"
// Przywróć konkretny punkt kontrolny"Przywróć do punktu kontrolnego: 'system uwierzytelniania działa'"
// Porównaj punkty kontrolne"Co się zmieniło między punktami kontrolnymi 'REST API' i 'GraphQL API'?"Podczas pracy z zespołem:
| Operacja | Czas | Użycie dysku |
|---|---|---|
| Tworzenie punktu kontrolnego | poniżej 100ms | ~Rozmiar zmienionych plików |
| Przywracanie punktu kontrolnego | poniżej 500ms | Brak dodatkowego |
| Listowanie punktów kontrolnych | poniżej 50ms | Brak dodatkowego |
| Automatyczne czyszczenie | W tle | Zwalnia miejsce |
Dla dużych baz kodu:
Selektywne punkty kontrolne
// Zamiast punktu kontrolnego całego projektu"Stwórz punkt kontrolny tylko dla src/auth/*"Punkt kontrolny przed ciężkimi operacjami
// Przed operacjami dotykającymi wielu plików"Punkt kontrolny, następnie zaktualizuj wszystkie instrukcje importu"Regularne commity Git
Punkt kontrolny niedostępny
Problem: Nie można przywrócić do starego punktu kontrolnego Rozwiązanie: Punkty kontrolne wygasają. Używaj Git dla trwałej historii
Konflikty przywracania
Problem: Przywracanie nie udaje się z powodu konfliktów Rozwiązanie: Zatwierdź obecne zmiany najpierw, następnie przywróć
Degradacja wydajności
Problem: Punkty kontrolne spowalniają Cursor Rozwiązanie: Uruchom ponownie Cursor, aby wyzwolić czyszczenie
Używaj punktów kontrolnych podczas implementacji przeglądu kodu:
Używaj punktów kontrolnych hojnie podczas rozwoju - Są tanie i szybkie
Twórz semantyczne granice - Punkt kontrolny w znaczących punktach, nie losowo
Kombinuj z Git inteligentnie - Punkty kontrolne do eksploracji, Git do konserwacji
Wykorzystuj do nauki - Wypróbuj wiele podejść, aby znaleźć najlepsze rozwiązanie
Czyść regularnie - Pozwól Cursor zarządzać cyklem życia punktów kontrolnych automatycznie
Teraz, gdy opanowałeś punkty kontrolne:
Pamiętaj: punkty kontrolne czynią cię odważnym. Używaj ich do śmiałej eksploracji, szybkiego niepowodzenia i znajdowania optymalnych rozwiązań bez ryzyka. Najlepsi deweloperzy nie boją się eksperymentować—po prostu wiedzą, jak robić to bezpiecznie.