Zamknij menu
Brain Design
    Najnowsze
    Złożony obraz zbliżenia znacznika nawigacyjnego

    Jak skutecznie usunąć firmę z Google Maps – metody i najczęstsze błędy

    2026-11-07
    Efektywne obliczanie i analizowanie zysków za pomocą rejestrów finansowych i sztabek złota

    Jak rozpocząć biznes za 500 tys. złotych – możliwości inwestycyjne i planowanie

    2026-10-30
    Skoncentrowana bizneswoman przeciwko pokojowi z dużym oknem pokazującym miasto

    Jak sprawdzić upadłość firmy i zabezpieczyć swoje interesy?

    2026-10-28
    Facebook X (Twitter) Instagram
    Brain Design
    • Biznes
      Złożony obraz zbliżenia znacznika nawigacyjnego

      Jak skutecznie usunąć firmę z Google Maps – metody i najczęstsze błędy

      2026-11-07
      Efektywne obliczanie i analizowanie zysków za pomocą rejestrów finansowych i sztabek złota

      Jak rozpocząć biznes za 500 tys. złotych – możliwości inwestycyjne i planowanie

      2026-10-30
      Skoncentrowana bizneswoman przeciwko pokojowi z dużym oknem pokazującym miasto

      Jak sprawdzić upadłość firmy i zabezpieczyć swoje interesy?

      2026-10-28
      Tablet ze stroną schematu

      Jak efektywnie zaplanować budżet i koszty reklamy na TikToku – CPM, CPC oraz modele rozliczeniowe

      2026-10-22
      A large industrial printer feeding a long pink banner with printed text

      Wydruk próbny w pracy projektanta – jak trafić w kolor i nie przepalić budżetu na materiały

      2026-10-06
    • Finanse
      Efektywne obliczanie i analizowanie zysków za pomocą rejestrów finansowych i sztabek złota

      Jak rozpocząć biznes za 500 tys. złotych – możliwości inwestycyjne i planowanie

      2026-10-30
      Skoncentrowana bizneswoman przeciwko pokojowi z dużym oknem pokazującym miasto

      Jak sprawdzić upadłość firmy i zabezpieczyć swoje interesy?

      2026-10-28
      Młoda ładna blondynka smutna, przygnębiona, nieszczęśliwa, trzymając literę R alfabetu, aby utworzyć słowo lub zdanie.

      Jaki wskaźnik najlepiej charakteryzuje rentowność firmy – zrozum ROS, ROA i ROI

      2026-09-26
      przedsiębiorca MSP otrzymuje zlecenie klienta i pracuje z internetowym rynkiem dostawy opakowań sortujących

      Jak skutecznie przelać środki z konta VAT na firmowe: procedury i korzyści

      2026-09-19
      Środkowa sekcja biznesmena analizującego wykres na biurku

      Jaką formę opodatkowania wybrać dla firmy jednoosobowej – zasady ogólne, podatek liniowy czy ryczałt?

      2026-08-29
    • Marketing
      Tablet ze stroną schematu

      Jak efektywnie zaplanować budżet i koszty reklamy na TikToku – CPM, CPC oraz modele rozliczeniowe

      2026-10-22
      Młoda kobieta używająca telefonu komórkowego na stole

      Affiliate marketing co to jest i jak działa – zalety, zagrożenia oraz jak zacząć

      2026-04-19
      osoba biznesowa w przypadkowym trzymaniu znaku drogowego

      Jak marketing automation zwiększa efektywność kampanii i personalizuje komunikację

      2026-04-12
      GEO

      Strategia GEO dla e-commerce: Jak opinie klientów budują widoczność w AI?

      2026-04-08
      person holding gray remote control

      Ile kosztuje reklama w TV? Czynniki wpływające na ceny i strategie oszczędzania

      2026-02-06
    • Social media
      Złożony obraz zbliżenia znacznika nawigacyjnego

      Jak skutecznie usunąć firmę z Google Maps – metody i najczęstsze błędy

      2026-11-07
      Tablet ze stroną schematu

      Jak efektywnie zaplanować budżet i koszty reklamy na TikToku – CPM, CPC oraz modele rozliczeniowe

      2026-10-22
      Złożony obraz zbliżenia znacznika nawigacyjnego

      Jak dodać firmę do Google Maps – krok po kroku z Google Moja Firma

      2026-06-13
      computer screen displaying 4.7k

      Jak skutecznie reklamować firmę na FB? Strategie, darmowe metody i zalety Facebook Ads

      2025-10-03
      person using both laptop and smartphone

      Jak założyć i skonfigurować konto firmowe na Facebooku? Krok po kroku

      2025-08-29
    • Technologia
      Ręką dotykającą witryn słownych na pasku wyszukiwania na ekranie tabletu na zmiętych papierach

      Co to jest Sticky menu i jak wpływa na doświadczenie użytkownika oraz SEO?

      2026-10-13
      Polityka zarządzania środowiskowego ESG dla modnych biznesów, aby ustanowić standard w celu osiągnięcia wysokiego wyniku ESG

      Core Web Vitals – co to jest i jak wpływa na pozycjonowanie stron?

      2026-10-07
      A large industrial printer feeding a long pink banner with printed text

      Wydruk próbny w pracy projektanta – jak trafić w kolor i nie przepalić budżetu na materiały

      2026-10-06
      an office with a wooden floor and blue and orange chairs

      CRM w małej firmie: inwestycja czy zbędny wydatek?

      2026-09-24
      Akronim HTML, napis na drewnianych kostkach.

      Co to są nagłówki HTML (H1-H6) i jak wpływają na strukturę strony oraz SEO?

      2026-09-16
    • Poradniki
    • Po godzinach
    Brain Design
    Główna»Poradniki»Co to jest refaktoryzacja kodu? Techniki i korzyści dla jakości oraz skalowalności aplikacji
    Poradniki

    Co to jest refaktoryzacja kodu? Techniki i korzyści dla jakości oraz skalowalności aplikacji

    Paweł KmieciakPaweł Kmieciak2026-02-1308 min. czyt.
    Udostępnij Facebook Twitter Pinterest Kopiuj link LinkedIn Tumblr E-mail Telegram WhatsApp
    Obserwuj
    RSS
    black and white striped textile
    Udostępnij
    Facebook Twitter LinkedIn Pinterest E-mail Kopiuj link

    Refaktoryzacja kodu to kluczowy proces poprawy jakości i czytelności kodu, który wpływa na utrzymanie oraz skalowalność aplikacji. Odkryj techniki i korzyści tego działania.

    Co to jest refaktoryzacja kodu?

    Refaktoryzacja kodu odgrywa istotną rolę w programowaniu, koncentrując się na poprawie jakości i czytelności istniejącego kodu źródłowego. Dzięki refaktoryzacji można skorygować i uporządkować kod bez ingerencji w jego zewnętrzne działanie, co oznacza, że aplikacja działa tak samo jak wcześniej. Proces ten dotyczy głównie wewnętrznej struktury i organizacji kodu. Efektem jest łatwiejsze utrzymanie oraz zwiększona wydajność i elastyczność rozbudowy.

    Celem refaktoryzacji jest eliminacja zbędnych elementów, uproszczenie złożonych fragmentów oraz ułatwienie dalszego rozwoju i testowania oprogramowania. Poprawiona czytelność sprawia, że programiści mogą szybciej zrozumieć i modyfikować kod w przyszłości. Jest to kluczowe dla długotrwałego utrzymania systemów informatycznych, ponieważ pozwala unikać gromadzenia długu technicznego.

    Refaktoryzacja wpływa również pozytywnie na zarządzanie projektami:

    • zapewnia większą spójność – pozwala na bardziej zorganizowaną pracę zespołów deweloperskich;
    • zwiększa efektywność pracy – umożliwia szybsze wykrywanie błędów i redukuje koszty ich naprawy;
    • ulepszona struktura kodu – ułatwia dodawanie nowych funkcji oraz adaptację do zmieniających się wymagań biznesowych.

    Dlaczego refaktoryzacja kodu jest ważna?

    Refaktoryzacja kodu odgrywa kluczową rolę w procesie tworzenia oprogramowania. Jej głównym zadaniem jest ulepszenie jakości i przejrzystości kodu, co przekłada się na zwiększoną efektywność pracy zespołu programistycznego oraz wspiera rozwój projektu w dłuższej perspektywie. Dzięki optymalizacji, zmniejsza się ryzyko pojawienia się błędów, co z kolei poprawia stabilność całego systemu.

    Proces ten również pomaga zarządzać długiem technicznym, umożliwiając jego stopniowe redukowanie. Jest to bardziej ekonomiczne rozwiązanie niż całkowite przepisywanie istniejącego kodu. Lepsza struktura ułatwia implementację nowych funkcjonalności oraz dostosowywanie się do dynamicznie zmieniających się wymagań biznesowych.

    Korzyści z refaktoryzacji obejmują:

    • lepszą współpracę między programistami dzięki czytelnemu i dobrze zorganizowanemu kodowi,
    • skalowalność i wydajność aplikacji,
    • udostępnienie przyszłych rozbudów oraz poprawę wydajności systemu,
    • oszczędność czasu i środków finansowych poprzez minimalizację błędów w trakcie rozwoju aplikacji.

    Korzyści z refaktoryzacji kodu

    Refaktoryzacja kodu przynosi liczne korzyści, które istotnie podnoszą jakość oraz wydajność oprogramowania. Przede wszystkim zwiększa czytelność, co ułatwia programistom jego zrozumienie i modyfikacje. Dzięki temu utrzymanie staje się prostsze, a błędy są szybciej wykrywane i korygowane.

    Ponadto refaktoryzacja zwiększa elastyczność aplikacji:

    • umożliwia łatwe wprowadzanie nowych funkcji,
    • dostosowywanie do zmieniających się wymagań biznesowych,
    • bez konieczności gruntownych zmian w architekturze.

    Optymalizacja kodu przekłada się również na lepszą wydajność systemu, co jest kluczowe dla aplikacji obsługujących duże ilości danych.

    Proces ten podnosi także jakość finalnego produktu i zadowolenie użytkowników. Wyższa jakość oznacza mniej błędów i awarii, co zapewnia niezawodne działanie aplikacji. Zredukowana złożoność struktury kodu sprawia też, że testowanie staje się bardziej efektywne, minimalizując ryzyko przy wdrażaniu nowych wersji.

    Ostatecznie refaktoryzacja obniża ryzyko techniczne poprzez eliminację długu technicznego i uniknięcie skomplikowanych zależności w systemie. Regularne doskonalenie struktury kodu wspiera lepszą współpracę zespołu deweloperów oraz przewidywalne koszty utrzymania oprogramowania w przyszłości.

    Kiedy refaktoryzacja kodu jest konieczna?

    Kiedy kod źródłowy staje się trudny do zrozumienia lub jego utrzymanie sprawia problemy, niezbędna jest jego refaktoryzacja. Dzieje się tak w momencie, gdy złożoność kodu osiąga poziom utrudniający pracę programistów oraz zwiększający ryzyko pojawienia się błędów. Jeśli struktura nie spełnia obecnych standardów czy wymagań biznesowych, konieczne staje się jej zoptymalizowanie. W takich przypadkach refaktoryzacja znacząco poprawia jakość i przejrzystość aplikacji.

    Kiedy natomiast kod trudno rozbudować lub dostosować do nowych funkcji, refaktoryzacja okazuje się kluczowa dla przyszłego rozwoju oprogramowania. Regularne usprawnianie struktury pozwala uniknąć długu technicznego i zmniejsza koszty związane z utrzymaniem. Optymalizacja skutkuje większą elastycznością i wydajnością systemu, co jest szczególnie istotne dla aplikacji przetwarzających duże zasoby danych.

    W kontekście zmian technologicznych lub konieczności adaptacji do nowych narzędzi, warto zadbać o dopasowanie istniejącego projektu. Refaktoryzacja w takich sytuacjach umożliwia zgodność z nowymi standardami oraz ułatwia integrację nowoczesnych rozwiązań technologicznych. Dzięki niej można efektywnie zarządzać projektem i zapobiegać komplikacjom podczas jego dalszego rozwoju.

    Techniki refaktoryzacji kodu

    Techniki refaktoryzacji kodu znacząco podnoszą jakość oraz czytelność kodu źródłowego, nie wpływając przy tym na jego zewnętrzne działanie. Jedną z głównych metod jest nadawanie zmiennym bardziej szczegółowych nazw, co ułatwia ich zrozumienie i użycie. Dodatkowo, dzielenie dużych klas na mniejsze fragmenty sprzyja porządkowi i pomaga w szybkim wykrywaniu błędów.

    Istotne jest również usuwanie powtarzających się elementów w kodzie. Zduplikowane części można zastąpić wspólnymi funkcjami lub metodami, co upraszcza konserwację i minimalizuje ryzyko pomyłek podczas wprowadzania zmian.

    Spójny styl kodowania według określonych standardów także odgrywa ważną rolę. Dzięki temu cały zespół programistyczny działa sprawniej, a nowi członkowie mogą łatwiej wdrożyć się w projekt. Refaktoryzacja polega również na systematycznym odświeżaniu niewielkich partii kodu, zapewniając stabilność działania całego systemu.

    W rezultacie te techniki prowadzą do stworzenia lepiej uporządkowanego i klarownego systemu informatycznego, co zdecydowanie ułatwia jego rozwój oraz dalsze utrzymanie.

    • Nadawanie zmiennym szczegółowych nazw – ułatwia zrozumienie i użycie zmiennych;
    • Dzielenie dużych klas na mniejsze fragmenty – sprzyja porządkowi i szybkiemu wykrywaniu błędów;
    • Usuwanie powtarzających się elementów – zastępowanie ich wspólnymi funkcjami minimalizuje ryzyko pomyłek;
    • Spójny styl kodowania – według określonych standardów, pomaga w sprawnym działaniu zespołu.

    Jak przeprowadzić efektywną refaktoryzację kodu?

    Aby skutecznie zrefaktoryzować kod, warto podejść do tego zadania w sposób przemyślany i systematyczny. Na początek dobrze jest dokładnie zrozumieć cały projekt i zidentyfikować obszary wymagające ulepszeń. Kluczowe jest również ustalenie priorytetów działań: co potrzebuje natychmiastowej uwagi, a co może zostać odłożone na później.

    Przed rozpoczęciem refaktoryzacji należy upewnić się, że dysponujemy kompletnymi testami jednostkowymi. Takie przygotowanie ułatwia identyfikację ewentualnych błędów po wprowadzeniu zmian. Testy odgrywają istotną rolę, ponieważ pozwalają śledzić wpływ modyfikacji na funkcjonowanie aplikacji.

    W trakcie refaktoryzacji warto stosować sprawdzone praktyki programistyczne, takie jak:

    • rozbijanie dużych funkcji na mniejsze fragmenty,
    • eliminowanie powtarzalności poprzez tworzenie wspólnych modułów czy funkcji,
    • stosowanie standardów kodowania dla ujednolicenia stylu.

    Te techniki nie tylko upraszczają kod, ale także znacznie ułatwiają jego późniejsze utrzymanie.

    Nie można zapominać o znaczeniu współpracy w zespole. Regularne konsultacje z innymi programistami mogą dostarczyć cennych wskazówek i pomóc unikać potencjalnych problemów. Dokumentowanie każdego etapu pracy wspiera kontrolę nad postępem projektu oraz zachowuje jego spójność.

    Jakie problemy można napotkać podczas refaktoryzacji kodu?

    Refaktoryzacja kodu odgrywa kluczową rolę w poprawie jakości oraz czytelności oprogramowania, ale nie jest wolna od wyzwań.

    Jednym z nich może być niewłaściwe zidentyfikowanie fragmentów do modyfikacji, co zamiast uprościć, może skomplikować strukturę kodu. Na przykład, zmiana struktury danych lub metod bez dogłębnego zrozumienia ich funkcjonowania może prowadzić do nowych błędów.

    Kolejnym problemem jest brak testów jednostkowych przed rozpoczęciem refaktoryzacji. Bez tych testów trudno stwierdzić, czy wprowadzone zmiany nie wpłynęły negatywnie na działanie aplikacji. Przy optymalizacji kodu istotne jest zachowanie istniejącej funkcjonalności, co wymaga precyzyjnego podejścia i doświadczenia.

    Niektóre refaktoryzacje mogą prowadzić do napięć w zespołach deweloperskich. Dzieje się tak szczególnie w sytuacjach, gdy brakuje jednolitych standardów kodowania bądź komunikacji dotyczącej celów zmian. Ustanowienie wspólnych zasad oraz regularne konsultacje mogą temu zapobiec.

    Proces ten bywa również czasochłonny, co potrafi opóźniać inne ważne projekty. Dlatego kluczowe jest staranne planowanie i ustalanie priorytetów działań. Wszystkie te elementy wymagają uwagi programistów, aby refaktoryzacja była efektywna i przynosiła oczekiwane rezultaty.

    Jak refaktoryzacja kodu wpływa na dług techniczny?

    Refaktoryzacja kodu odgrywa kluczową rolę w zarządzaniu długiem technicznym, który pojawia się, gdy programiści wybierają szybkie rozwiązania kosztem jakości. Takie podejście prowadzi do przyszłych błędów i problemów. Poprzez refaktoring poprawia się struktura i czytelność kodu bez zmiany jego funkcjonalności. To ułatwia programistom identyfikację i naprawę usterek, co zmniejsza szansę na powstawanie nowych błędów.

    Regularne eliminowanie długu technicznego za pomocą refaktoryzacji obniża koszty utrzymania oprogramowania. Wyższa jakość kodu sprzyja późniejszym modyfikacjom oraz adaptacji do nowych wymagań biznesowych. W miarę upływu czasu projekty informatyczne stają się bardziej stabilne i prostsze w rozbudowie – jest to niezwykle istotne dla firm planujących długoterminowy rozwój swoich produktów.

    Proces ten nie tylko redukuje obecny dług techniczny, ale także zapobiega jego narastaniu w przyszłości. Systematyczna refaktoryzacja zwiększa spójność projektu oraz ułatwia wdrażanie nowych technologii i narzędzi, pozwalając zespołom deweloperskim skoncentrować się na innowacjach zamiast ciągłego rozwiązywania dawnych problemów strukturalnych.

    Jak refaktoryzacja kodu wpływa na wydajność i skalowalność?

    Refaktoryzacja kodu ma istotny wpływ na efektywność i zdolność do rozbudowy systemów IT. Dzięki optymalizacji struktury programów, aplikacje zyskują na szybkości działania. Uproszczenie skomplikowanych elementów oraz eliminacja zbędnych fragmentów umożliwia lepsze wykorzystanie mocy obliczeniowej, co jest kluczowe dla osiągnięcia wysokiej wydajności.

    Proces ten również korzystnie wpływa na skalowalność systemu. Przejrzystość kodu sprawia, że dodawanie nowych funkcji i dostosowywanie się do wzrastających wymagań użytkowników staje się prostsze. W rezultacie:

    • systemy mogą obsługiwać większą liczbę użytkowników,
    • przetwarzać więcej danych,
    • działać bez drastycznych zmian w architekturze.

    Optymalizacja poprzez refaktoryzację ułatwia zarządzanie zasobami serwerowymi i pozwala zmniejszyć koszty związane z infrastrukturą IT. Oznacza to także mniejsze ryzyko wystąpienia awarii oraz płynne działanie nawet pod dużym obciążeniem.

    Refaktoryzacja kodu a testowanie i utrzymanie aplikacji

    Refaktoryzacja kodu odgrywa kluczową rolę w testowaniu i utrzymaniu aplikacji. Ułatwia tworzenie testów jednostkowych oraz automatycznych testów integracyjnych, co jest niezbędne dla zapewnienia wysokiej jakości oprogramowania. Dzięki poprawie struktury i czytelności kodu, proces testowania staje się bardziej efektywny, a wykrywanie błędów szybsze.

    Dodatkowo, refaktoryzacja upraszcza zarządzanie kodem. Lepsza organizacja pozwala programistom szybciej zrozumieć logikę programu, co ułatwia wprowadzanie poprawek i aktualizacji. W dłuższej perspektywie prowadzi to do redukcji kosztów utrzymania aplikacji oraz zmniejszenia ryzyka wystąpienia awarii.

    Z uporządkowaną bazą kodową łatwiej jest integrować nowe funkcje:

    • eliminując zbędne zależności,
    • refaktoryzacja upraszcza modyfikacje,
    • zwiększa elastyczność systemu wobec zmiennych wymagań biznesowych.

    Takie działania wpływają na stabilność oprogramowania oraz jego zdolność do adaptacji w szybko ewoluującym środowisku technologicznym.

    Udostępnij Facebook Twitter Pinterest LinkedIn Tumblr E-mail Kopiuj link
    Paweł Kmieciak
    • WWW

    Absolwent Zarządzania i Marketingu na Uniwersytecie Ekonomicznym w Poznaniu. Certyfikowany specjalista Google Ads oraz Meta Blueprint z doświadczeniem w prowadzeniu kampanii digitalowych dla ponad 25 firm z sektora MŚP. Współtwórca serwisu Brain Design i konsultant w StartUp Hub Poznań. Specjalizuje się w strategiach marketingowych w mediach społecznościowych oraz analityce biznesowej opartej na danych, posiadając certyfikaty Google Analytics 4 i HubSpot Inbound Marketing.

    Polecane artykuły

    Złożony obraz zbliżenia znacznika nawigacyjnego

    Jak skutecznie usunąć firmę z Google Maps – metody i najczęstsze błędy

    7 min. czyt.
    Efektywne obliczanie i analizowanie zysków za pomocą rejestrów finansowych i sztabek złota

    Jak rozpocząć biznes za 500 tys. złotych – możliwości inwestycyjne i planowanie

    12 min. czyt.
    Skoncentrowana bizneswoman przeciwko pokojowi z dużym oknem pokazującym miasto

    Jak sprawdzić upadłość firmy i zabezpieczyć swoje interesy?

    10 min. czyt.
    Dodaj komentarz
    Odpowiedz Anuluj


    Polecane
    Złożony wizerunek młodej blondynki biznesowej kobiety wskazywać

    Jakie biznesy można otworzyć za 100 tys. zł – rentowne pomysły, potencjał zysku i zarządzanie finansami

    2026-08-2631
    Kobieta trzymająca w ręku smartfon z skrótem IPV4 nowoczesna koncepcja technologiczna

    Co to jest PWA i jak wpływa na przyszłość aplikacji internetowych?

    2026-08-1019
    Pracownik zespołu pokazuje się na ekranie. Lider zespołu słucha nowych propozycji

    Co to jest PrestaShop i jak wspiera Twój sklep internetowy?

    2026-07-0713
    Pracownik zespołu pokazuje się na ekranie. Lider zespołu słucha nowych propozycji

    Co to jest WooCommerce i jak przekształcić witrynę w sklep e-commerce?

    2026-06-2613
    Wielokrotna ekspozycja stołu z hologramem komputerowym i rysunkowym SEO Koncepcja optymalizacji wyszukiwania

    Co to jest TTFB i jak wpływa na szybkość ładowania strony oraz SEO?

    2026-04-0325
    Śliczna blond dama spędza czas rozmawiając przez telefon w pobliżu laptopa, podczas gdy brunetka mężczyzna pisze w notatniku

    Co to jest GUI – jak działa i jakie ma zastosowanie w codziennym życiu?

    2026-03-2841
    woman in red sweater and blue denim jeans sitting on yellow couch

    Co to jest Magento i jak wybrać wersję dla swojego biznesu e-commerce?

    2025-08-2216
    a blue and white wordpress logo

    Co to jest WordPress? Poznaj funkcje, bezpieczeństwo i SEO w popularnym CMS

    2025-08-1517
    MacBook Pro with images of computer language codes

    Co to jest PostgreSQL? Zaawansowany system zarządzania relacyjnymi bazami danych

    2025-03-2524
    Brain Design
    Brain Design

    Brain Design to źródło praktycznej wiedzy dla przedsiębiorców i specjalistów, oferujące eksperckie poradniki z zakresu biznesu, finansów, marketingu i technologii. Dostarczamy sprawdzone rozwiązania i inspirujące treści, które wspierają rozwój Twojej firmy i pomagają podejmować trafne decyzje biznesowe.

    RSS
    Najnowsze
    Złożony obraz zbliżenia znacznika nawigacyjnego

    Jak skutecznie usunąć firmę z Google Maps – metody i najczęstsze błędy

    7 min. czyt.
    Efektywne obliczanie i analizowanie zysków za pomocą rejestrów finansowych i sztabek złota

    Jak rozpocząć biznes za 500 tys. złotych – możliwości inwestycyjne i planowanie

    12 min. czyt.
    Menu i strony
    • Strona główna
    • O Brain Design
    • Reklama i współpraca
    • Patronaty Brain Design
    • Polityka prywatności
    • Mapa strony
    • Kontakt
    RSS
    © 2026 Brain Design. Wszelkie prawa zastrzeżone.

    Type above and press Enter to search. Press Esc to cancel.