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ści
Gdy 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" // Nieopisowe
Uż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 czysty
Uż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 wycofane
Aktualizacja 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 stan
Dobre 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.